本申請涉及測試技術(shù)領域,尤其涉及一種測試方法和裝置。
背景技術(shù):
研發(fā)過程中的測試階段,需要對各接口進行測試與驗證。測試用例(testcase)是為某個特殊目標而編制的一組測試輸入、執(zhí)行條件以及預期結(jié)果,以便測試某個程序路徑或核實是否滿足某個特定需求。
相關技術(shù)中,測試用例主要由準備組件、檢查組件和清理組件構(gòu)成,并且按照準備數(shù)據(jù)、執(zhí)行用例、檢查結(jié)果和清理數(shù)據(jù)的順序依次進行。由于組件及順序都是固定的,不能滿足研發(fā)人員的個性化需求。
技術(shù)實現(xiàn)要素:
本申請旨在至少在一定程度上解決相關技術(shù)中的技術(shù)問題之一。
為此,本申請的一個目的在于提出一種測試方法,該方法可以滿足用戶的個性化測試需求。
本申請的另一個目的在于提出一種測試裝置。
為達到上述目的,本申請第一方面實施例提出的測試方法,包括:在測試用例中調(diào)用預先生成的執(zhí)行模板,所述執(zhí)行模板是根據(jù)用戶選擇的測試組 件和執(zhí)行順序拼裝得到的;根據(jù)所述測試用例進行測試。
本申請第一方面實施例提出的測試方法,通過調(diào)用執(zhí)行模板,該執(zhí)行模板根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到,可以實現(xiàn)測試組件和執(zhí)行順序都是可選擇的,從而滿足用戶個性化測試需求。
為達到上述目的,本申請第二方面實施例提出的測試裝置,包括:調(diào)用模塊,用于在測試用例中調(diào)用預先生成的執(zhí)行模板,所述執(zhí)行模板是根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到的;測試模塊,用于根據(jù)所述測試用例進行測試。
本申請第二方面實施例提出的測試裝置,通過調(diào)用執(zhí)行模板,該執(zhí)行模板根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到,可以實現(xiàn)測試組件和執(zhí)行順序都是可選擇的,從而滿足用戶個性化測試需求。
本申請附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。
附圖說明
本申請上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是本申請一實施例提出的測試方法的流程示意圖;
圖2是本申請另一實施例提出的測試方法的流程示意圖;
圖3是本申請實施例對應的系統(tǒng)示意圖;
圖4是本申請實施例中生成執(zhí)行模板的示意圖;
圖5是本申請另一實施例提出的測試裝置的結(jié)構(gòu)示意圖;
圖6是本申請另一實施例提出的測試裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面詳細描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的模塊或具有相同或類似功能的模塊。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本申請,而不能理解為對本申請的限制。相反,本申請的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
圖1是本申請一實施例提出的測試方法的流程示意圖,該方法包括:
s11:在測試用例中調(diào)用預先生成的執(zhí)行模板,所述執(zhí)行模板是根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到的。
其中,可以在測試用例中根據(jù)模板標識調(diào)用執(zhí)行模板。
例如,預先為每個執(zhí)行模板分配唯一的標識,該標識假設用assembly-id表示,則可以根據(jù)assembly-id調(diào)用執(zhí)行模板。
本實施例中,用戶(如研發(fā)人員)可以根據(jù)測試場景或測試需求的不同,選擇自己需要的測試組件及執(zhí)行順序,從而實現(xiàn)測試組件是柔性的,且執(zhí)行順序也是柔性的,滿足用戶的個性化需求。
s12:根據(jù)所述測試用例進行測試。
在測試用例中調(diào)用需要的執(zhí)行模板后,可以根據(jù)該執(zhí)行模板中包含的測試組件按照相應的執(zhí)行順序進行執(zhí)行,完成研發(fā)測試。
本實施例中,通過調(diào)用執(zhí)行模板,該執(zhí)行模板根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到,可以實現(xiàn)測試組件和執(zhí)行順序都是可選擇的,從而滿足用戶個性化測試需求。
圖2是本申請另一實施例提出的測試方法的流程示意圖,該方法包括:
s21:獲取用戶選擇的測試組件和每個測試組件的執(zhí)行順序。
其中,可以預先生成各類測試組件,用戶可以根據(jù)自己需求在預先生成的組件中進行選擇。
例如,參見圖3,測試組件可以清理類組件和數(shù)據(jù)準備類組件,另外,根據(jù)用戶需求的不同,用戶還可以自身擴展組件類別。在用戶需要采用一個之前沒有的測試組件時,可以根據(jù)用戶編寫的代碼生成相應的測試組件。
另外,如圖3所示,每類組件還可以進一步細分為各子類組件,例如,清理類組件還可以進一步分為數(shù)據(jù)預清理組件、數(shù)據(jù)清理組件和數(shù)據(jù)后清理組件等。
s22:根據(jù)所述執(zhí)行順序?qū)λ鰷y試組件進行拼裝,生成執(zhí)行模板。
其中,可以為每個測試組件分配組件標識,例如,組件標識用component-idx表示。
另外,還可以根據(jù)執(zhí)行順序分配順序標識,例如,順序標識用sequence表示。
在確定選中的測試組件的組件標識和順序標識后,根據(jù)組件標識和順序標識組成執(zhí)行模板,例如,如圖4所示,其中,用于拼裝的模塊在圖4中用柔性拼裝倉庫表示。
另外,一個執(zhí)行模板中可以多次用到相同的測試組件,多次用到的相同的測試組件具有不同的執(zhí)行順序。
例如,參見圖4,在拼裝時,多次用到了componentid-id1組件,分別在第一位次序和第四位次序中用到。
另外,在生成執(zhí)行模板后,還可以為執(zhí)行模板分配模板標識,例如,分配的模板標識是assembly-id1。這樣測試用例在使用這個執(zhí)行模板時, 可根據(jù)assembly-id來選擇調(diào)用。另外,其他的測試用例也可以根據(jù)assembly-id調(diào)用該執(zhí)行模板,實現(xiàn)執(zhí)行模板的復用。
上述流程中用戶選擇的測試組件和執(zhí)行順序可以根據(jù)測試場景和測試需求確定,根據(jù)不同的測試場景和測試需求可以有不同的選擇。下面舉些簡單例子以便理解。
以杯子裝水的測試為例。
假設:一、目前已有的組件id及組件名如下:
1、清理組件
(1)數(shù)據(jù)預清理組件:
pre-clear-1:檢查前倒掉全部水
pre-clear-2:檢查前倒掉一半的水
(2)數(shù)據(jù)清理組件:
intro-clear-1:測試過程中倒全部的水
(3)數(shù)據(jù)后清理組件:
post-clear-1:檢查后倒掉全部水
2、數(shù)據(jù)準備組件
(1)數(shù)據(jù)預準備組件:
prepare-data-1:倒入500ml水
prepare-data-2:倒入1000ml水
(2)數(shù)據(jù)后準備組件:
prepare-check-1:這個杯子能裝1000ml水
prepare-check-2:這個杯子能裝500ml水
二、現(xiàn)在有兩個測試場景:
場景一:測試杯子一次性能裝500ml水
組件及順序:pre-clear-1→prepare-data-1→prepare-check-2→post-clear-1(這個拼裝之后的執(zhí)行模板id記為:assembly-id-1)
場景二:測試杯子能裝入1000ml水,且能重復裝水
組件及順序:pre-clear-1→prepare-data-2→intro-clear-1→prepare-data-2→prepare-check-1→post-clear-1(這個拼裝之后的執(zhí)行模板id記為:assembly-id-2)
s23:在測試用例中調(diào)用預先生成的執(zhí)行模板,所述執(zhí)行模板是根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到的。
在生成執(zhí)行模板后,在測試用例中可以根據(jù)模板標識(assembly-id)來調(diào)用需要的執(zhí)行模板。
s24:根據(jù)所述測試用例進行測試。
在調(diào)用需要的執(zhí)行模板后,可以根據(jù)執(zhí)行模板中的執(zhí)行順序依次執(zhí)行每個測試組件,完成測試。
本實施例中,通過調(diào)用執(zhí)行模板,該執(zhí)行模板根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到,可以實現(xiàn)測試組件和執(zhí)行順序都是可選擇的,從而滿足用戶個性化測試需求。進一步的,通過為執(zhí)行模板分配模板標識,可以實現(xiàn)執(zhí)行模板的調(diào)用和復用。
圖5是本申請另一實施例提出的測試裝置的結(jié)構(gòu)示意圖,該裝置50包括:調(diào)用模塊51和測試模塊52。
調(diào)用模塊51,用于在測試用例中調(diào)用預先生成的執(zhí)行模板,所述執(zhí)行模板是根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到的;
其中,可以在測試用例中根據(jù)模板標識調(diào)用執(zhí)行模板。
例如,預先為每個執(zhí)行模板分配唯一的標識,該標識假設用assembly-id表示,則可以根據(jù)assembly-id調(diào)用執(zhí)行模板。
本實施例中,用戶(如研發(fā)人員)可以根據(jù)測試場景或測試需求的不同,選擇自己需要的測試組件及執(zhí)行順序,從而實現(xiàn)測試組件是柔性的,且執(zhí)行順序也是柔性的,滿足用戶的個性化需求。
一些實施例中,參見圖6,該裝置還包括:
獲取模塊53,用于獲取用戶選擇的測試組件和每個測試組件的執(zhí)行順序;
其中,可以預先生成各類測試組件,用戶可以根據(jù)自己需求在預先生成的組件中進行選擇。
例如,參見圖3,測試組件可以清理類組件和數(shù)據(jù)準備類組件,另外,根據(jù)用戶需求的不同,用戶還可以自身擴展組件類別。在用戶需要采用一個之前沒有的測試組件時,可以根據(jù)用戶編寫的代碼生成相應的測試組件。
另外,如圖3所示,每類組件還可以進一步細分為各子類組件,例如,清理類組件還可以進一步分為數(shù)據(jù)預清理組件、數(shù)據(jù)清理組件和數(shù)據(jù)后清理組件等。
生成模塊54,用于根據(jù)所述執(zhí)行順序?qū)λ鰷y試組件進行拼裝,生成所述執(zhí)行模板。
可選的,所述生成模塊54具體用于:
為每個選擇的測試組件分配組件標識和順序標識;
根據(jù)所述組件標識和順序標識組成執(zhí)行模板。
一些實施例中,參見圖6,該裝置還包括:
分配模塊55,用于為所述執(zhí)行模板分配模板標識,以便在測試用例中通過所述模板標識調(diào)用對應的執(zhí)行模板,或者,以便其他的測試用例通過所述模板標識復用所述執(zhí)行模板。
一些實施例中,當所述執(zhí)行模板中包括相同的測試組件時,所述相同的測試組件具有不同的執(zhí)行順序。
其中,可以為每個測試組件分配組件標識,例如,組件標識用component-idx表示。
另外,還可以根據(jù)執(zhí)行順序分配順序標識,例如,順序標識用sequence表示。
在確定選中的測試組件的組件標識和順序標識后,根據(jù)組件標識和順序標識組成執(zhí)行模板,例如,如圖4所示。
另外,一個執(zhí)行模板中可以多次用到相同的測試組件,多次用到的相同的測試組件具有不同的執(zhí)行順序。
例如,參見圖4,在拼裝時,多次用到了componentid-id1組件,分別在第一位次序和第四位次序中用到。
另外,在生成執(zhí)行模板后,還可以為執(zhí)行模板分配模板標識,例如,分配的模板標識是assembly-id1。這樣測試用例在使用這個執(zhí)行模板時,可根據(jù)assembly-id來選擇調(diào)用。另外,其他的測試用例也可以根據(jù)assembly-id調(diào)用該執(zhí)行模板,實現(xiàn)執(zhí)行模板的復用。
具體的用戶選擇的測試組件及執(zhí)行順序可以參見方法實施例中的描述,在此不再贅述。
測試模塊52,用于根據(jù)所述測試用例進行測試。
在測試用例中調(diào)用需要的執(zhí)行模板后,可以根據(jù)該執(zhí)行模板中包含的 測試組件按照相應的執(zhí)行順序進行執(zhí)行,完成研發(fā)測試。
本實施例中,通過調(diào)用執(zhí)行模板,該執(zhí)行模板根據(jù)用戶選擇的測試組件和執(zhí)行順序拼裝得到,可以實現(xiàn)測試組件和執(zhí)行順序都是可選擇的,從而滿足用戶個性化測試需求。進一步的,通過為執(zhí)行模板分配模板標識,可以實現(xiàn)執(zhí)行模板的調(diào)用和復用。
需要說明的是,在本申請的描述中,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本申請的描述中,除非另有說明,“多個”的含義是指至少兩個。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本申請的實施例所屬技術(shù)領域的技術(shù)人員所理解。
應當理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場可編程門陣列(fpga)等。
本技術(shù)領域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種 計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
此外,在本申請各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。
上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領域的普通技術(shù)人員在本申請的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。