軟體測試的方法和裝置製造方法
2023-10-04 00:37:04
軟體測試的方法和裝置製造方法
【專利摘要】本發明公開了一種軟體測試的方法和裝置,屬於計算機【技術領域】。所述方法包括:接收目標軟體的軟體測試請求,獲取軟體測試請求所使用的測試程序,如果測試程序中包含多層循環,則對於測試程序中的每個循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句,替代提取出的循環語句,運行修改後的測試程序,對目標軟體進行測試。採用本發明,可以提高對軟體測試的靈活性。
【專利說明】軟體測試的方法和裝置
【技術領域】
[0001] 本發明涉及計算機【技術領域】,特別涉及一種軟體測試的方法和裝置。
【背景技術】
[0002] 隨著計算機技術的不斷發展,軟體的種類越來越豐富,軟體質量的優劣變得越來 越重要,這樣,在軟體投入使用之前,就需要對軟體進行測試。
[0003] 在對軟體進行測試時,通常通過程式語言編寫測試程序(也可稱作測試套件),通 過測試程序對軟體的相關功能進行測試,例如,基於Robot Framework(自動化框架)編寫 測試程序,以對軟體進行測試,其中,測試程序中的測試語句中通常包括關鍵字和執行參數 等,因此上述測試方式也被稱為關鍵字驅動測試。
[0004] 在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
[0005] 由於通過自動化測試框架編寫的測試程序只支持單層循環操作,如果測試程序中 包含多層循環,則無法運行該測試程序,從而,使得對軟體進行測試的靈活性較差。
【發明內容】
[0006] 為了解決現有技術的問題,本發明實施例提供了一種軟體測試的方法和裝置。所 述技術方案如下:
[0007] 第一方面,提供了一種軟體測試的方法,所述方法包括:
[0008] 接收目標軟體的軟體測試請求,獲取所述軟體測試請求所使用的測試程序;
[0009] 如果所述測試程序中包含多層循環,則對於所述測試程序中的每個循環,提取循 環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用 程序單元的調用執行語句,替代提取出的循環語句;
[0010] 運行修改後的測試程序,對所述目標軟體進行測試。
[0011] 可選地,所述如果所述測試程序中包含多層循環,則對於所述測試程序中的每個 循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組 成的待調用程序單元的調用執行語句,替代提取出的循環語句,包括:
[0012] 如果所述測試程序中的第一循環開始語句與第二循環開始語句之間不包括循環 結束語句,則對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,並在提 取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句,替代提取 出的循環語句。
[0013] 可選地,所述如果所述測試程序中包含多層循環,則對於所述測試程序中的每個 循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組 成的待調用程序單元的調用執行語句,替代提取出的循環語句,包括:
[0014] 如果所述測試程序中包含多層循環,則從最內層循環開始逐層向外,對於所述測 試程序中的每個循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置 處,設置對應所組成的待調用程序單元的調用執行語句,替代提取出的循環語句。
[0015] 可選地,所述對於所述測試程序中的每個循環,提取循環語句組成待調用程序單 元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句, 替代提取出的循環語句,包括:
[0016] 對於所述測試程序中除最外層循環外的每個循環,提取循環語句組成待調用程序 單元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語 句,替代提取出的循環語句。
[0017] 可選地,所述對於所述測試程序中的每個循環,提取循環語句組成待調用程序單 元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句, 替代提取出的循環語句,包括:
[0018] 對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,設置對應 所組成的待調用程序單元的調用參數,並在提取的循環語句的原位置處,設置攜帶有所述 調用參數的調用執行語句,替代提取出的循環語句。
[0019] 第二方面,提供了一種軟體測試的裝置,所述裝置包括:
[0020] 獲取模塊,用於接收目標軟體的軟體測試請求,獲取所述軟體測試請求所使用的 測試程序;
[0021] 處理模塊,用於如果所述測試程序中包含多層循環,則對於所述測試程序中的每 個循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所 組成的待調用程序單元的調用執行語句,替代提取出的循環語句;
[0022] 測試模塊,用於運行修改後的測試程序,對所述目標軟體進行測試。
[0023] 可選地,所述處理模塊,用於:
[0024] 如果所述測試程序中的第一循環開始語句與第二循環開始語句之間不包括循環 結束語句,則對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,並在提 取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句,替代提取 出的循環語句。
[0025] 可選地,所述處理模塊,用於:
[0026] 如果所述測試程序中包含多層循環,則從最內層循環開始逐層向外,對於所述測 試程序中的每個循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置 處,設置對應所組成的待調用程序單元的調用執行語句,替代提取出的循環語句。
[0027] 可選地,所述處理模塊,用於:
[0028] 對於所述測試程序中除最外層循環外的每個循環,提取循環語句組成待調用程序 單元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語 句,替代提取出的循環語句。
[0029] 可選地,所述處理模塊,用於:
[0030] 對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,設置對應 所組成的待調用程序單元的調用參數,並在提取的循環語句的原位置處,設置攜帶有所述 調用參數的調用執行語句,替代提取出的循環語句。
[0031] 本發明實施例提供的技術方案帶來的有益效果是:
[0032] 本發明實施例中,接收目標軟體的軟體測試請求,獲取軟體測試請求所使用的測 試程序,如果測試程序中包含多層循環,則對於測試程序中的每個循環,提取循環語句組成 待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的 調用執行語句,替代提取出的循環語句,運行修改後的測試程序,對目標軟體進行測試,這 樣,將每個循環分別提取為獨立的程序單元,每個程序單元都執行單層循環,避免了多層循 環嵌套無法執行的問題,從而,可以提高對軟體測試的靈活性。
【專利附圖】
【附圖說明】
[0033] 為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於 本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他 的附圖。
[0034] 圖1是本發明實施例提供的一種軟體測試的方法流程圖;
[0035] 圖2是本發明實施例提供的一種軟體測試的應用程式的界面示例圖;
[0036] 圖3是本發明實施例提供的一種軟體測試的裝置結構示意圖;
[0037] 圖4是本發明實施例提供的一種終端的結構示意圖。
【具體實施方式】
[0038] 為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方 式作進一步地詳細描述。
[0039] 實施例一
[0040] 本發明實施例提供了一種軟體測試的方法,如圖1所示,該方法的處理流程可以 包括如下的步驟:
[0041] 步驟101,接收目標軟體的軟體測試請求,獲取軟體測試請求所使用的測試程序。
[0042] 步驟102,如果測試程序中包含多層循環,則對於測試程序中的每個循環,提取循 環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用 程序單元的調用執行語句,替代提取出的循環語句。
[0043] 步驟103,運行修改後的測試程序,對目標軟體進行測試。
[0044] 本發明實施例中,接收目標軟體的軟體測試請求,獲取軟體測試請求所使用的測 試程序,如果測試程序中包含多層循環,則對於測試程序中的每個循環,提取循環語句組成 待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的 調用執行語句,替代提取出的循環語句,運行修改後的測試程序,對目標軟體進行測試,這 樣,將每個循環分別提取為獨立的程序單元,每個程序單元都執行單層循環,避免了多層循 環嵌套無法執行的問題,從而,可以提高對軟體測試的靈活性。
[0045] 實施例二
[0046] 本發明實施例提供了一種軟體測試的方法,該方法可以由終端實現。其中的終端 可以是任意的終端,例如筆記本電腦、平板電腦等。
[0047] 下面將結合【具體實施方式】,對圖1所示的處理流程進行詳細的說明,內容可以如 下:
[0048] 步驟101,接收目標軟體的軟體測試請求,獲取軟體測試請求所使用的測試程序。
[0049] 其中,目標軟體可以是任意軟體,例如瀏覽器、即時通訊應用程式、網頁代碼等。測 試程序中可以是包含一個或多個測試語句,測試語句中可以包含關鍵字和執行參數等,關 鍵字用於表示對應的測試語句的性質,關鍵字可以包括循環開始關鍵字、循環結束關鍵字 等,例如可以使用ForRange表示循環開始關鍵字,ForEnd表示循環結束關鍵字等。
[0050] 在實施中,技術人員可以通過各種程式語言編寫測試程序,編寫的測試程序中可 以包括多層循環和/或單層循環,單層循環或多層循環的數目可以是一個,也可以是多個。 在實際的軟體測試系統中,測試程序可以稱作測試套件,通常,測試套件中包括測試用例, 測試用例中包括測試語句,該測試語句即可以為測試程序中的測試語句。技術人員完成測 試程序後,可以為該測試程序設置程序標識,例如套件A等,可以將程序標識與對應的測試 程序存儲在終端中。終端中可以安裝有用於進行軟體測試的應用程式,如圖2所示,當技術 人員需要對某軟體(即目標軟體)的某項功能進行測試時,技術人員可以啟動終端中安裝 的該應用程式,並在該應用程式提供的軟體目錄中選擇目標軟體的軟體標識,從而確定測 試目標,然後,可以針對軟體的不同功能選擇相應的測試程序,可以在該應用程式中選擇該 測試程序的程序標識,當技術人員點擊開始測試按鍵時,終端可以通過選擇的程序標識生 成軟體測試請求,終端可以接收目標軟體的軟體測試請求,並通過軟體測試請求中攜帶的 程序標識,確定與該程序標識對應的測試程序,可以將該測試程序獲取為軟體測試請求所 使用的測試程序。
[0051] 步驟102,如果測試程序中包含多層循環,則對於測試程序中的每個循環,提取循 環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用 程序單元的調用執行語句,替代提取出的循環語句。
[0052] 其中,調用執行語句用於調用相應的待調用程序單元,以執行待調用程序單元中 的循環語句。如果測試程序中不存在與某一個循環開始語句相匹配的循環結束語句,則可 以將該循環開始語句到測試程序的最後一個測試語句之間的所有測試語句,作為該循環開 始語句所屬的循環的循環語句。
[0053] 在實施中,終端可以對測試程序中的循環語句進行檢測,可以通過多種方式確定 測試程序中包含多層循環,例如可以查找測試程序中的循環開始語句和循環結束語句,並 進行匹配,當某個循環開始語句和與其相對應的循環結束語句之間還包含一個或者多個循 環開始語句,則可以確定測試程序中包含多層循環。以測試程序中的任一個循環為例,終端 可以提取出該循環的循環語句,組成待調用程序單元,同時,可以在測試程序中上述循環語 句所在的原位置處,設置一個對應上述待調用程序單元的調用執行語句,替換上述循環語 句。
[0054] 例如,如果測試程序中只包括一個三層循環,從最內層到最外層,三層循環可以依 次稱為第一循環、第二循環和第三循環,提取第一循環的循環語句組成第一待調用程序單 元,對應的調用執行語句可以稱為第一調用執行語句,提取第二循環的循環語句組成第二 待調用程序單元,對應的調用執行語句可以稱為第二調用執行語句,提取第三循環的循環 語句組成第三待調用程序單元,對應的調用執行語句可以稱為第三調用執行語句,則通過 上述步驟102的處理後,該測試程序中只包含第三調用執行語句,這樣,由於軟體測試的應 用程序無法執行多層循環操作,通過上述處理後,測試程序中不存在多層循環,因此,該應 用程序可以運行測試程序。其中,第三待調用程序單元中包括第二調用執行語句,第二待調 用程序單元中包括第一調用執行語句,第一待調用程序單元中包括第一循環的循環語句。
[0055] 可選地,上述確定測試程序中包含多層循環的處理方式可以多種多樣,以下提供 一種可行的處理方式,相應的上述步驟102的處理過程可以包括以下內容:如果測試程序 中的第一循環開始語句與第二循環開始語句之間不包括循環結束語句,則對於測試程序中 的每個循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對 應所組成的待調用程序單元的調用執行語句,替代提取出的循環語句。
[0056] 其中,第一循環開始語句可以是測試程序中的任一循環開始語句,第二循環開始 語句可以是測試程序中除第一循環開始語句外的任一循環開始語句,循環開始語句可以是 包括循環開始關鍵詞的語句,例如包含ForRange的語句,循環結束語句可以是包括循環結 束關鍵詞的語句,例如包含ForEnd的語句。
[0057] 在實施中,終端可以查找測試程序中的循環開始語句和循環結束語句,如果查找 到某一個循環開始語句(即第一循環開始語句)與另一個循環開始語句(即第二循環開始 語句)之間不包括循環結束語句,則可以確定測試程序中包括多層循環。然後,終端可以對 於測試程序中的每個循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原 位置處,設置對應所組成的待調用程序單元的調用執行語句,替代提取出的循環語句,具體 處理過程可以參見上述相關內容,在此不再贅述。
[0058] 可選地,對於提取測試程序中的循環語句的處理方式可以多種多樣,以下提供一 種可選的處理方式,相應的上述步驟102的處理過程可以包括以下內容:如果測試程序中 包含多層循環,則從最內層循環開始逐層向外,對於測試程序中的每個循環,提取循環語句 組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單 元的調用執行語句,替代提取出的循環語句。
[0059] 在實施中,如果終端確定測試程序中包含多層循環,則為了降低循環語句在提取 的過程中的出錯率,對於該多層循環,終端可以從最內層循環開始逐層向外,依次提取多層 循環中的每一層循環組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所 組成的待調用程序單元的調用執行語句,替代提取出的循環語句。
[0060] 可選地,為了簡化多層循環的處理過程,且考慮到現有的軟體測試機制中只能夠 處理單層循環,因此可以不對多層循環中的最外層循環進行任何處理,相應的上述步驟102 的處理過程可以包括以下內容:對於測試程序中除最外層循環外的每個循環,提取循環語 句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序 單元的調用執行語句,替代提取出的循環語句。
[0061] 在實施中,終端可以獲取多層循環中任一層循環的循環語句,並將判斷該層循環 是否為最外層循環,如果不是,則可以提取該層循環的循環語句組成待調用程序單元,並在 上述循環語句的原位置處,設置對應上述待調用程序單元的調用執行語句,替代上述循環 語句,如果是,終端可以不對最外層循環進行處理,以此類推,直到處理完成多層循環中每 一層循環。
[0062] 可選地,為了更加方便的對待調用程序單元中的循環語句進行調用執行,可以為 待調用程序單元設置調用參數,相應的上述步驟102的處理過程可以包括如下內容:對於 所述測試程序中的每個循環,提取循環語句組成待調用程序單元,設置對應所組成的待調 用程序單元的調用參數,並在提取的循環語句的原位置處,設置攜帶有所述調用參數的調 用執行語句,替代提取出的循環語句。
[0063] 在實施中,如果終端確定測試程序中包含多層循環,以多層循環中的任一個循環 為例,終端可以提取該循環的循環語句,組成待調用程序單元,可以為該待調用程序單元設 置一個調用參數,並在上述循環語句的原位置處,設置一個攜帶有該調用參數的調用執行 語句,替代上述循環語句。其中,調用執行語句中可以包括調用關鍵字和調用參數,調用關 鍵字和調用參數可以由技術人員預先在上述應用程式中設置,例如調用關鍵字可以為也可 以 ForRangeFold、ForRangeSuite 等,調用參數可以為 A、1 等。
[0064] 例如,測試程序可以表格的形式存儲,如表1所示。
[0065] 表 1
[0066]
[0067] 表/的測試程^中包括'層循環,即
【權利要求】
1. 一種軟體測試的方法,其特徵在於,所述方法包括: 接收目標軟體的軟體測試請求,獲取所述軟體測試請求所使用的測試程序; 如果所述測試程序中包含多層循環,則對於所述測試程序中的每個循環,提取循環語 句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序 單元的調用執行語句,替代提取出的循環語句; 運行修改後的測試程序,對所述目標軟體進行測試。
2. 根據權利要求1所述的方法,其特徵在於,所述如果所述測試程序中包含多層循環, 則對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,並在提取的循環 語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句,替代提取出的循環 語句,包括: 如果所述測試程序中的第一循環開始語句與第二循環開始語句之間不包括循環結束 語句,則對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,並在提取的 循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句,替代提取出的 循環語句。
3. 根據權利要求1所述的方法,其特徵在於,所述如果所述測試程序中包含多層循環, 則對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,並在提取的循環 語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句,替代提取出的循環 語句,包括: 如果所述測試程序中包含多層循環,則從最內層循環開始逐層向外,對於所述測試程 序中的每個循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設 置對應所組成的待調用程序單元的調用執行語句,替代提取出的循環語句。
4. 根據權利要求1所述的方法,其特徵在於,所述對於所述測試程序中的每個循環,提 取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待 調用程序單元的調用執行語句,替代提取出的循環語句,包括: 對於所述測試程序中除最外層循環外的每個循環,提取循環語句組成待調用程序單 元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句, 替代提取出的循環語句。
5. 根據權利要求1所述的方法,其特徵在於,對於所述測試程序中的每個循環,提取循 環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成的待調用 程序單元的調用執行語句,替代提取出的循環語句,包括: 對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,設置對應所組 成的待調用程序單元的調用參數,並在提取的循環語句的原位置處,設置攜帶有所述調用 參數的調用執行語句,替代提取出的循環語句。
6. -種軟體測試的裝置,其特徵在於,所述裝置包括: 獲取模塊,用於接收目標軟體的軟體測試請求,獲取所述軟體測試請求所使用的測試 程序; 處理模塊,用於如果所述測試程序中包含多層循環,則對於所述測試程序中的每個循 環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設置對應所組成 的待調用程序單元的調用執行語句,替代提取出的循環語句; 測試模塊,用於運行修改後的測試程序,對所述目標軟體進行測試。
7. 根據權利要求6所述的裝置,其特徵在於,所述處理模塊,用於: 如果所述測試程序中的第一循環開始語句與第二循環開始語句之間不包括循環結束 語句,則對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,並在提取的 循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句,替代提取出的 循環語句。
8. 根據權利要求6所述的裝置,其特徵在於,所述處理模塊,用於: 如果所述測試程序中包含多層循環,則從最內層循環開始逐層向外,對於所述測試程 序中的每個循環,提取循環語句組成待調用程序單元,並在提取的循環語句的原位置處,設 置對應所組成的待調用程序單元的調用執行語句,替代提取出的循環語句。
9. 根據權利要求6所述的裝置,其特徵在於,所述處理模塊,用於: 對於所述測試程序中除最外層循環外的每個循環,提取循環語句組成待調用程序單 元,並在提取的循環語句的原位置處,設置對應所組成的待調用程序單元的調用執行語句, 替代提取出的循環語句。
10. 根據權利要求6所述的裝置,其特徵在於,所述處理模塊,用於: 對於所述測試程序中的每個循環,提取循環語句組成待調用程序單元,設置對應所組 成的待調用程序單元的調用參數,並在提取的循環語句的原位置處,設置攜帶有所述調用 參數的調用執行語句,替代提取出的循環語句。
【文檔編號】G06F11/36GK104298600SQ201410572668
【公開日】2015年1月21日 申請日期:2014年10月23日 優先權日:2014年10月23日
【發明者】任方超 申請人:廣州華多網絡科技有限公司