專利名稱:一種測試用例的執(zhí)行方法
技術領域:
本發(fā)明涉及一種測試方法,特別涉及一種測試用例的執(zhí)行方法。
背景技術:
在對邏輯的系統(tǒng)測試的過程中,通常有幾十個甚至幾百個測試用例需要執(zhí)行,而每個測試用例的執(zhí)行時間又大約為幾十分鐘到幾個小時不等。對于PC機來講,由于系統(tǒng)仿真所耗的計算機資源比較多,所以在計算機測試執(zhí)行的同時打開其他的任務會變得很慢而使工作效率降低。為了提高工作效率,一個常用的解決方法是把測試用例的執(zhí)行安排在晚上或周末等休息時間進行,而把寶貴的上班時間用來分析這些測試用例執(zhí)行的結果以及出現(xiàn)的問題。在這種情形下,就需要通過一個方法來定義需要執(zhí)行的測試用例集合,用以控制計算機,使其在沒有人為干預的情況下自動地、逐個地執(zhí)行這個集合中指定的測試用例。
現(xiàn)在普遍采用的方法是把需要執(zhí)行的測試用例逐個寫在一個批處理文件中,計算機逐行執(zhí)行該批處理文件,從而實現(xiàn)在沒有人為干預的情況下自動執(zhí)行多個測試用例的目的。
雖然這種方法在一定程度上解決了自動執(zhí)行多個測試用例的問題,但是對于有幾百個甚至上千個測試用例的測試工程來講,這種逐個定義的方法稍顯繁瑣,不夠簡捷和高效。
發(fā)明內容
本發(fā)明所要解決的技術問題在于為解決現(xiàn)有技術中自動執(zhí)行腳本繁瑣的不足,提供一種測試用例的執(zhí)行方法,可簡捷高效地處理多個測試用例的自動執(zhí)行過程。
為了解決上述技術問題,本發(fā)明采用的技術方案在于提供一種測試用例的執(zhí)行方法,其特征在于,包括如下步驟(a)建立關鍵詞列表,該關鍵詞列表中包含有至少一個關鍵詞;(b)搜索所有測試用例,并建立一個包含有所述測試用例的名稱的所有測試用例列表;(c)依次將所有測試用例列表中的測試用例名稱分別與關鍵詞列表中的每一關鍵詞進行比較,判斷該測試用例名稱是否包含有關鍵詞,如包含,則執(zhí)行該測試用例。
其中,步驟(c)進一步包括(c1)提取該關鍵詞的個數(shù)m,提取所有測試用例列表中的測試用例的個數(shù)n,并將測試用例索引i賦值1;(c2)取出當前測試用例索引i所指向的所有測試用例列表中的測試用例名稱;(c3)將關鍵詞索引j賦值1;(c4)取出當前關鍵詞索引j指向的關鍵詞列表中的關鍵詞;(c5)將當前測試用例索引i所指向的所有測試用例列表中的測試用例名稱與當前關鍵詞索引j所指向的關鍵詞列表中的關鍵詞相比較,判斷該測試用例名稱是否包含有該關鍵詞;(c6)如果該測試用例的名稱包含有該關鍵詞,則執(zhí)行該測試用例,執(zhí)行完畢后,則轉入步驟(c9);(c7)如果該測試用例的名稱未包含該關鍵詞,則在將當前關鍵詞索引j加1,并判斷j是否大于m;(c8)如果當前關鍵詞索引j小于m,則轉入步驟(c4);(c9)如果當前關鍵詞索引j大于m,將當前測試用例索引i加1,判斷當前測試用例索引i是否大于n;(c10)如果當前測試用例索引i小于n,則轉至步驟(c2);(c11)如果當前測試用例索引i大于n,則流程結束。
其中,所述關鍵詞列表中的關鍵詞至少包含在所有測試用例列表中的一個測試用例的名稱中。
本發(fā)明的有益效果在于在本發(fā)明中,通過定義關鍵詞列表,并采用自動將測試用例與該關鍵詞列表中的關鍵詞比較,以自動執(zhí)行需要執(zhí)行的測試用例。采用該方法,較直接逐條定義需要執(zhí)行的測試用例更簡單,效率更高,從而可提高測試的效率。
圖1是本發(fā)明一種測試用例的執(zhí)行方法的主流程圖。
具體實施例方式
對測試用例的命名一般都遵循一定的規(guī)律。例如,其可以反映該測試用例的測試目的。諸如下面的測試用例名tc20201_dn_arp、tc20202_dn_arp、tc20203_dn_arp、tc20501_dn_tcp、tc20502_dn_tcp、tc20503_dn_tcp、tc20504_dn_tcp、tc20601_dn_udp、tc20602_dn_udp、tc20603_dn_udp、tc20604_dn_udp、tc30201_up_arp、tc30202_up_arp、tc30203_up_arp、tc30501_up_tcp,其中“tc”是test case的縮寫,代表是一個測試用例;接下來在第一個下劃線之前的5位數(shù)字是一個測試用例的流水號;第一個下劃線后的“up”和“dn”分別代表上行處理(UP)和下行處理(DOWN),之后的第二個下劃線后的部分(如arp、tcp、udp)是表示該測試用例所測試的協(xié)議。上述的測試用例名稱僅用來進行舉例說明,也可以采用其他的方式來對測試用例進行命名。
在本發(fā)明中,首先要建立一個待執(zhí)行測試用例名稱包含的關鍵詞列表(下稱“關鍵詞列表”);然后再通過逐個比較每個測試用例的名稱和該“關鍵詞列表”中的關鍵詞是否匹配,如果匹配的話,則說明該測試用例需要執(zhí)行,故即可以確定所有需要執(zhí)行的測試用例。在測試執(zhí)行時只需在這個“關鍵詞列表”中填入待運行的測試用例所包含的關鍵詞即可。例如對于上文中所舉的各個測試用例,如果要運行全部測試用例,只需在這個“關鍵詞列表”中填入所有測試用例的關鍵詞“tc”即可;如果要運行所有的上行測試用例只需在這個“關鍵詞列表”中填入上行測試用例的關鍵詞“up”即可;同樣,如果想運行下行的udp和上行的arp測試用例,就需要在這個列表中加入兩個關鍵字“dn_udp”和“up_arp”。這種方法要比傳統(tǒng)的一條條列出所有測試用例的方法更方便。
再請結合圖1所示,具體說明本發(fā)明的流程圖。首先,在步驟S100中,選取待執(zhí)行的測試用例的關鍵詞,建立一個“關鍵詞列表”,在該關鍵詞列表中包含有該選取的關鍵詞,提取該關鍵詞的個數(shù)m,其中關鍵詞的選擇已在上文中進行了敘述。在步驟S105中,搜索測試用例目錄下的所有測試用例,建立一個“所有測試用例列表”,該所有測試用例列表中包含有這些所有測試用例的名稱,并求出這些測試用例的個數(shù),計為n;并將當前測試用例索引i賦值1;在步驟S110中,取出“所有測試用例列表”中當前測試用例索引i所指向的測試用例名稱,這里i為1,即首先取出“所有測試用例列表”的第一個測試用例。在步驟S120中,對當前關鍵詞索引j賦值1;在步驟S130中,取出當前關鍵詞索引j指向的“關鍵詞列表”中的關鍵詞。在步驟S140中,將當前測試用例索引i所指向的“所有測試用例列表”中的測試用例名稱與當前關鍵詞索引j指向的“關鍵詞列表”中的關鍵詞相比較,判斷該測試用例名稱是否包含有該關鍵詞。如果這個測試用例的名稱包含了“關鍵詞列表”中的該關鍵詞,則在步驟S150中,執(zhí)行該測試用例,執(zhí)行完畢后,則轉入步驟S180。如果這個測試用例的名稱未包含“關鍵詞列表”中的該關鍵詞,則在步驟S160中,將當前關鍵詞索引j加1,并在接下來的步驟S170中,判斷j是否大于m。如果此時j小于m,則并轉入步驟S130,重復步驟上述,即將該測試用例名稱與其他的關鍵詞進行比較。如果此時j大于m,說明已對“關鍵詞列表”中的所有關鍵詞都比較完成了,則在步驟S180中,將當前測試用例索引i加1。并在步驟S190中判斷此時i是否大于n。如果此時i小于n,說明在“所有測試用例列表”中尚有未進行比較的測試用例,則轉至步驟S110,再選取“所有測試用例列表”中的下一個測試用例繼續(xù)和“關鍵詞列表”中的各個關鍵詞相比較,并重復上述步驟。如果此時i大于n,則說明在“所有測試用例列表”中所有測試用例均進行了比較,并對需要執(zhí)行的測試用例執(zhí)行完成,這時流程結束。這樣就可以實現(xiàn)自動對“所有測試用例列表”中所有測試用例進行分析執(zhí)行。
在自動連續(xù)執(zhí)行測試用例等不涉及邏輯修改的情況下,重復執(zhí)行某個測試用例沒有任何意義。圖1中的流程圖可以很容易的避免這個問題。例如,如果“關鍵詞列表”中包含兩個關鍵詞“dn”和“tcp”,則所有的下行測試用例和所有的tcp測試用例(包括上行tcp和下行tcp)都被執(zhí)行,但下行的tcp測試用例并不會被重復執(zhí)行。
本發(fā)明通過定義“待執(zhí)行測試用例名稱包含的關鍵詞列表”,控制計算機自動執(zhí)行多個測試用例,較直接逐條定義需要執(zhí)行的測試用例更簡單,效率更高。所以采用本發(fā)明提供的測試用例批處理執(zhí)行方法可提高測試的效率。
權利要求
1.一種測試用例的執(zhí)行方法,其特征在于,包括如下步驟(a)建立關鍵詞列表,該關鍵詞列表中包含有至少一個關鍵詞;(b)搜索所有測試用例,并建立一個包含有所述測試用例的名稱的所有測試用例列表;(c)依次將所有測試用例列表中的測試用例名稱分別與關鍵詞列表中的每一關鍵詞進行比較,判斷該測試用例名稱是否包含有關鍵詞,如包含,則執(zhí)行該測試用例。
2.如權利要求1所述的測試用例的執(zhí)行方法,其特征在于,步驟(c)進一步包括(c1)提取該關鍵詞的個數(shù)m,提取所有測試用例列表中的測試用例的個數(shù)n,并將測試用例索引i賦值1;(c2)取出當前測試用例索引i所指向的所有測試用例列表中的測試用例名稱;(c3)將關鍵詞索引j賦值1;(c4)取出當前關鍵詞索引j指向的關鍵詞列表中的關鍵詞;(c5)將當前測試用例索引i所指向的所有測試用例列表中的測試用例名稱與當前關鍵詞索引j所指向的關鍵詞列表中的關鍵詞相比較,判斷該測試用例名稱是否包含有該關鍵詞;(c6)如果該測試用例的名稱包含有該關鍵詞,則執(zhí)行該測試用例,執(zhí)行完畢后,則轉入步驟(c9);(c7)如果該測試用例的名稱未包含該關鍵詞,則在將當前關鍵詞索引j加1,并判斷j是否大于m;(c8)如果當前關鍵詞索引j小于m,則轉入步驟(c4);(c9)如果當前關鍵詞索引j大于m,將當前測試用例索引i加1,并判斷當前測試用例索引i是否大于n;(c10)如果當前測試用例索引i小于n,則轉至步驟(c2);(c11)如果當前測試用例索引i大于n,則流程結束。
3.如權利要求1或2所述的測試用例的執(zhí)行方法,其特征在于,所述關鍵詞列表中的關鍵詞至少包含在所有測試用例列表中的一個測試用例的名稱中。
全文摘要
一種測試用例的執(zhí)行方法。包括(a)建立一個關鍵詞列表,該關鍵詞列表中包含有至少一個關鍵詞;(b)搜索所有測試用例,并建立一個包含有所述測試用例的名稱的所有測試用例列表;(c)依次將所有測試用例列表中的測試用例名稱分別與關鍵詞列表中的每一關鍵詞進行比較,判斷該測試用例名稱是否包含有關鍵詞,如包含,則執(zhí)行該測試用例。采用本發(fā)明所提供的方法,較直接逐條定義需要執(zhí)行的測試用例的方法更加簡單,效率更高,從而可提高測試的效率。
文檔編號G06F17/30GK1858716SQ20051003453
公開日2006年11月8日 申請日期2005年4月30日 優(yōu)先權日2005年4月30日
發(fā)明者麻遠聲 申請人:華為技術有限公司