專利名稱:軟件自動化測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件測試技術(shù),特別是涉及一種軟件自動化測試方法。
背景技術(shù):
軟件自動化測試就是模擬手動測試步驟,執(zhí)行用某種程序設(shè)計語言編制的測試程序,控制被測軟件的執(zhí)行,完成軟件測試的過程。近年來隨著軟件自動化測試技術(shù)的發(fā)展特別是高效的自動化測試框架技術(shù)與優(yōu)秀的自動化測試工具出現(xiàn),已經(jīng)很大程度提高了自動化測試腳本的開發(fā)效率,掌握自動化測試腳本的開發(fā)能力已成為一個測試人員的一個基本技能。現(xiàn)有的自動化測試方法中測試用例的執(zhí)行是按照用戶設(shè)置測試任務(wù)的順序進行的。隨著自動化測試腳本的廣泛應(yīng)用,測試系統(tǒng)要執(zhí)行的自動化測試任務(wù)增多,而每個自動化測試任務(wù)將包含多個自動化測試用例,因此,相應(yīng)地,測試系統(tǒng)要執(zhí)行的自動化測試用例數(shù)量不斷增加,這樣,必將導(dǎo)致測試腳本的執(zhí)行效率開始下降。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種軟件自動化測試方法,該方法能有效提高自動化測試效率。為了達到上述目的,本發(fā)明提出的技術(shù)方案為—種軟件自動化測試方法,該方法包括以下步驟a、根據(jù)預(yù)設(shè)的優(yōu)先級確定策略,確定當(dāng)前需要執(zhí)行的各測試任務(wù)的優(yōu)先級;b、對于每個所述測試任務(wù),根據(jù)預(yù)設(shè)的用例組織優(yōu)化策略,對該測試任務(wù)包含的所有用例的數(shù)量和執(zhí)行順序進行優(yōu)化,得到該測試任務(wù)的用例優(yōu)化組合序列;C、按照所述各測試任務(wù)的優(yōu)先級降序,將所有測試任務(wù)進行排序;根據(jù)當(dāng)前的測試客戶端數(shù)量N和所述各測試任務(wù)間的關(guān)聯(lián)關(guān)系,按照任務(wù)均衡的原則將所述排序后的測試任務(wù)分為N個子隊列,各所述子隊列分別與不同的測試客戶端相對應(yīng),其中,不同子隊列的測試任務(wù)間無關(guān)聯(lián)關(guān)系,且各子隊列中測試任務(wù)的順序為所述優(yōu)先級的降序;d、對于各所述子隊列,將其所包含的各測試任務(wù)分別替換為對應(yīng)的所述用例優(yōu)化組合序列,得到該子隊列所對應(yīng)的用例隊列,并在該子隊列對應(yīng)的測試客戶端上依次執(zhí)行所述用例隊列中的各用例。綜上所述,本發(fā)明提出的軟件自動化測試方法,通過對自動化測試任務(wù)以及各自動化測試任務(wù)所包含的測試用例的執(zhí)行順序進行優(yōu)化排序,可以有效提高整個自動化測試過程的執(zhí)行效率。
圖1為本發(fā)明實施例一的流程示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對本發(fā)明作進一步地詳細描述。本發(fā)明的核心思想是考慮測試任務(wù)和用例的特性以及任務(wù)間或用例間的關(guān)聯(lián)程度等因素,對測試任務(wù)及用例的執(zhí)行順序和數(shù)量進行優(yōu)化,采用減少多個相同用例的重復(fù)運行等手段,提高自動化測試的整體執(zhí)行效率。圖1為本發(fā)明實施例一的流程示意圖,如圖1所示,該實施例包括步驟101、根據(jù)預(yù)設(shè)的優(yōu)先級確定策略,確定當(dāng)前需要執(zhí)行的各測試任務(wù)的優(yōu)先級。本步驟,對測試任務(wù)的優(yōu)先級進行確定,將有利于在后續(xù)步驟中基于此對任務(wù)的執(zhí)行順序進行優(yōu)化,以提高任務(wù)的執(zhí)行效率。這里,所述優(yōu)先級確定策略可以根據(jù)實際需要預(yù)先設(shè)置。較佳地,可以包括如果所述測試任務(wù)在當(dāng)前的測試系統(tǒng)中保存有相同測試任務(wù)的經(jīng)驗值,則根據(jù)該經(jīng)驗值以及預(yù)設(shè)的經(jīng)驗值與優(yōu)先級映射關(guān)系,確定該測試任務(wù)的優(yōu)先級,否則,根據(jù)當(dāng)前預(yù)設(shè)的優(yōu)先級動態(tài)生成規(guī)則,確定該測試任務(wù)的優(yōu)先級,如果當(dāng)前沒有所述優(yōu)先級動態(tài)生成規(guī)則,則將測試人員輸入該測試任務(wù)時指定的初始優(yōu)先級作為該測試任務(wù)的優(yōu)先級,如果該測試任務(wù)沒有初始優(yōu)先級,則將預(yù)設(shè)的缺省優(yōu)先級設(shè)置為該測試任務(wù)的優(yōu)先級。所述經(jīng)驗值可以為測試系統(tǒng)中所記錄的相同測試任務(wù)最近一次執(zhí)行時所需的時間或最近一次執(zhí)行時的優(yōu)先級。在實際應(yīng)用中,所述優(yōu)先級動態(tài)生成規(guī)則可以由測試人員通過用戶界面進行預(yù)先設(shè)置,具體設(shè)置規(guī)則時可考慮下述幾個因素測試任務(wù)所屬類型,測試任務(wù)包含的用例數(shù)量,與其他測試任務(wù)的關(guān)聯(lián)程度以及測試任務(wù)的缺省優(yōu)先級大小,測試人員可根據(jù)實際需要選擇上述一個或多個因素的組合制定合適的優(yōu)先級動態(tài)生成規(guī)則。另外,當(dāng)考慮測試任務(wù)所屬類型時,具體可從下述幾種類型考慮1)是用戶接收測試還是普通模塊測試幻是功能測試還是性能測試幻是前臺還是后臺測試任務(wù)4)是簡單業(yè)務(wù)還是復(fù)雜業(yè)務(wù)。較佳地,上述幾種類型中前者的優(yōu)先級可以設(shè)置的比后者的高,以提高任務(wù)的整體執(zhí)行效率。在實際應(yīng)用中可依上述次序根據(jù)測試任務(wù)所屬類型確定優(yōu)先級, 例如,當(dāng)一測試任務(wù)無法確定是用戶接收測試還是普通模塊測試則根據(jù)其是功能測試還是性能測試來確定優(yōu)先級。較佳地,為了進一步提高任務(wù)的執(zhí)行效率,可以對較大任務(wù)進行拆分,這樣,可以確保不同任務(wù)的執(zhí)行時間差異不是太大,進而可以確保此后將優(yōu)化后的任務(wù)隊列依次配置在各測試客戶端上后,各測試客戶端的任務(wù)執(zhí)行時間不會因不同任務(wù)包含的用例個數(shù)差異較大而存在較大的差異。在具體實現(xiàn)上述思想時,可對于包含用例的數(shù)量大于預(yù)設(shè)閾值M的測試任務(wù),進行拆分,使拆分后的測試任務(wù)所包含的用例數(shù)量不超過所述閾值M。這里,對于閾值M,M設(shè)置的越小,需要拆分的任務(wù)數(shù)也會越多,相應(yīng)地算法復(fù)雜度也會增加,但是,任務(wù)在各測試客戶端上進行優(yōu)化分配的準(zhǔn)確性也會提高,反之,M設(shè)置的越大,提高任務(wù)的整體執(zhí)行效率的效果會越小。具體地,本領(lǐng)域技術(shù)人員,可根據(jù)實際需要設(shè)置合適的M取值。
步驟102、對于每個所述測試任務(wù),根據(jù)預(yù)設(shè)的用例組織優(yōu)化策略,對該測試任務(wù)包含的所有用例的數(shù)量和執(zhí)行順序進行優(yōu)化,得到該測試任務(wù)的用例優(yōu)化組合序列。這里,利用所述用例組織優(yōu)化策略,對各測試任務(wù)的用例進行優(yōu)化,可以提高測試任務(wù)的執(zhí)行效率。較佳地,所述用例組織優(yōu)化策略可以包括對于相同的兩個以上的用例,只保留排在首位的用例;根據(jù)用例間的關(guān)聯(lián)關(guān)系,將需要先執(zhí)行的用例排列在相應(yīng)的需要后執(zhí)行的用例之前。在上述用例組織優(yōu)化策略中,對于相同的兩個以上的用例,只保留排在首位的用例,即只保留所有相同用例中序號最小的一個,比如,用例序列為A1、B2、A3、C4、A5、D6、A7、E8經(jīng)過執(zhí)行優(yōu)化處理后,變?yōu)锳1、B2、C3、D4、E5,因此減少了三個用例的執(zhí)行。(注 A、B...為用例的標(biāo)識號,后面數(shù)值為用例在隊列中的序號)步驟103、按照所述各測試任務(wù)的優(yōu)先級降序,將所有測試任務(wù)進行排序;根據(jù)當(dāng)前的測試客戶端數(shù)量N和所述各測試任務(wù)間的關(guān)聯(lián)關(guān)系,按照任務(wù)均衡的原則將所述排序后的測試任務(wù)分為N個子隊列,各所述子隊列分別與不同的測試客戶端相對應(yīng),其中,不同子隊列的測試任務(wù)間無關(guān)聯(lián)關(guān)系,且各子隊列中測試任務(wù)的順序為所述優(yōu)先級的降序。這里,在進行N個子隊列的劃分時需要遵守各子隊列任務(wù)均衡的原則,以確保各子隊列的執(zhí)行時間均衡,從而可以提高測試任務(wù)的整體執(zhí)行效率。下面對本步驟的具體實現(xiàn)進行舉例說明。首先,讀取要執(zhí)行測試任務(wù)的優(yōu)先級,如標(biāo)識號ID為T1、T2、T3、T4、T5、T6的測試任務(wù)的優(yōu)先級分別是1、3、2、2、3、1。然后,將高優(yōu)先級的測試任務(wù)排在前面生成一個新的自動化執(zhí)行隊列就是Τ1、 Τ6、Τ3、Τ4、Τ2、Τ5。接下來,再根據(jù)客戶端的數(shù)量和任務(wù)關(guān)聯(lián)程度數(shù)據(jù)情況對上述隊列(Tl、Τ6、Τ3、 Τ4.Τ2.Τ5)進行子隊列的劃分。假如,測試客戶端資源ID為C1、C2、C3,任務(wù)關(guān)聯(lián)程度數(shù)據(jù)表明T2必須等T3執(zhí)行完成才執(zhí)行、T4與T5與其它任務(wù)沒有關(guān)聯(lián)關(guān)系,經(jīng)過優(yōu)化與分解后得到的三個子隊列如下C1:T1、T4C2:T6、T5C3:T3、T2步驟104、對于各所述子隊列,將其所包含的各測試任務(wù)分別替換為對應(yīng)的所述用例優(yōu)化組合序列,得到該子隊列所對應(yīng)的用例隊列,并在該子隊列對應(yīng)的測試客戶端上依次執(zhí)行所述用例隊列中的各用例。進一步地,為了提高自動化測試的靈活性,本步驟中得到子隊列所對應(yīng)的用例隊列后,測試人員可根據(jù)實際需要對排序好的用例隊列進行調(diào)整。具體地,測試系統(tǒng)可通過測試管理界面,將所述子隊列的用例隊列以及其中各用例所屬的測試任務(wù),通知給測試人員, 所述測試人員根據(jù)當(dāng)前的測試需要對所述用例隊列進行修訂。然后,測試客戶端再基于修訂后的用例隊列進行執(zhí)行即可。具體測試客戶端執(zhí)行用例的方法與現(xiàn)有系統(tǒng)相同,在此不再贅述。
進一步地,還可以統(tǒng)計各所述測試任務(wù)本次執(zhí)行時所需要的時間并保存在測試系統(tǒng)中,以便下次相同測試任務(wù)執(zhí)行時,作為經(jīng)驗值提供給該測試任務(wù),以助其確認(rèn)優(yōu)先級。綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。 凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種軟件自動化測試方法,其特征在于,該方法包括以下步驟a、根據(jù)預(yù)設(shè)的優(yōu)先級確定策略,確定當(dāng)前需要執(zhí)行的各測試任務(wù)的優(yōu)先級;b、對于每個所述測試任務(wù),根據(jù)預(yù)設(shè)的用例組織優(yōu)化策略,對該測試任務(wù)包含的所有用例的數(shù)量和執(zhí)行順序進行優(yōu)化,得到該測試任務(wù)的用例優(yōu)化組合序列;C、按照所述各測試任務(wù)的優(yōu)先級降序,將所有測試任務(wù)進行排序;根據(jù)當(dāng)前的測試客戶端數(shù)量N和所述各測試任務(wù)間的關(guān)聯(lián)關(guān)系,按照任務(wù)均衡的原則將所述排序后的測試任務(wù)分為N個子隊列,各所述子隊列分別與不同的測試客戶端相對應(yīng),其中,不同子隊列的測試任務(wù)間無關(guān)聯(lián)關(guān)系,且各子隊列中測試任務(wù)的順序為所述優(yōu)先級的降序;d、對于各所述子隊列,將其所包含的各測試任務(wù)分別替換為對應(yīng)的所述用例優(yōu)化組合序列,得到該子隊列所對應(yīng)的用例隊列,并在該子隊列對應(yīng)的測試客戶端上依次執(zhí)行所述用例隊列中的各用例。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟a之前所述方法進一步包括 對于包含用例的數(shù)量大于預(yù)設(shè)閾值M的測試任務(wù),進行拆分,使拆分后的測試任務(wù)所包含的用例數(shù)量不超過所述閾值M。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟a中所述優(yōu)先級確定策略包括 如果所述測試任務(wù)在當(dāng)前的測試系統(tǒng)中保存有相同測試任務(wù)的經(jīng)驗值,則根據(jù)該經(jīng)驗值以及預(yù)設(shè)的經(jīng)驗值與優(yōu)先級映射關(guān)系,確定該測試任務(wù)的優(yōu)先級,否則,根據(jù)當(dāng)前預(yù)設(shè)的優(yōu)先級動態(tài)生成規(guī)則,確定該測試任務(wù)的優(yōu)先級,如果當(dāng)前沒有所述優(yōu)先級動態(tài)生成規(guī)則, 則將測試人員輸入該測試任務(wù)時指定的初始優(yōu)先級作為該測試任務(wù)的優(yōu)先級,如果該測試任務(wù)沒有初始優(yōu)先級,則將預(yù)設(shè)的缺省優(yōu)先級設(shè)置為該測試任務(wù)的優(yōu)先級。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟a中所述經(jīng)驗值為最近一次執(zhí)行時所需的時間或最近一次執(zhí)行時的優(yōu)先級。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟b中所述用例組織優(yōu)化策略包括 對于相同的兩個以上的用例,只保留排在首位的用例;根據(jù)用例間的關(guān)聯(lián)關(guān)系,將需要先執(zhí)行的用例排列在相應(yīng)的需要后執(zhí)行的用例之前。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟d中進行所述執(zhí)行之前進一步包括通過測試管理界面,將所述子隊列的用例隊列以及其中各用例所屬的測試任務(wù),通知給測試人員,所述測試人員根據(jù)當(dāng)前的測試需要對所述用例隊列進行修訂。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟d中進行所述執(zhí)行時進一步包括統(tǒng)計各所述測試任務(wù)本次執(zhí)行時所需要的時間并保存。
全文摘要
本發(fā)明提供了一種軟件自動化測試方法,通過對自動化測試任務(wù)以及各自動化測試任務(wù)所包含的測試用例的執(zhí)行順序進行優(yōu)化排序,可以有效提高整個自動化測試過程的執(zhí)行效率。
文檔編號G06F11/36GK102495804SQ20111044399
公開日2012年6月13日 申請日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者王慶豐 申請人:創(chuàng)新科存儲技術(shù)(深圳)有限公司, 創(chuàng)新科軟件技術(shù)(深圳)有限公司