本技術(shù)涉及軟件測試領(lǐng)域,并且更具體地,涉及一種批量生成測試用例的方法、裝置以及計(jì)算設(shè)備。
背景技術(shù):
1、測試用例是指對一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測試任務(wù)的描述,體現(xiàn)測試方案、方法、技術(shù)和策略。其內(nèi)容包括測試目標(biāo)、測試環(huán)境、輸入數(shù)據(jù)、測試步驟、預(yù)期結(jié)果、測試腳本等,最終形成文檔。測試用例主要包含四個內(nèi)容:用例標(biāo)題,前置條件,測試步驟和預(yù)期結(jié)果。其中,用例標(biāo)題主要描述某項(xiàng)需要測試的功能;前置條件是指執(zhí)行該測試用例的前置步驟;測試步驟主要描述測試用例在執(zhí)行時的操作步驟,其主要為了讓測試人員知道測試用例是如何操作的;預(yù)期結(jié)果指的是測試用例在執(zhí)行完之后想要得到的測試結(jié)果,其目的在于指導(dǎo)測試人員觀察測試是否通過。
2、隨著科技的發(fā)展,當(dāng)前產(chǎn)品的功能越來越復(fù)雜,在對產(chǎn)品的功能進(jìn)行測試時,所涉及的測試功能也就越來越多,如何保證測試用例的完備性,提升測試用例的生成效率變得亟不可待。
3、相關(guān)的生成測試用例的方案中,均是測試人員依據(jù)個人經(jīng)驗(yàn)一條一條的進(jìn)行編寫。該生成測試用例的過程中需要依賴測試人員的手工操作,一方面,測試人員在測試用例的設(shè)計(jì)過程中會投入大量的時間,而且無法清晰表達(dá)測試用例之間的相關(guān)性,使得生成測試用例的效率較低。另一方面,測試人員在測試用例的設(shè)計(jì)過程中還會出現(xiàn)漏測的問題。
4、因此,如何提高測試用例的生成效率成為亟需要解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種批量生成測試用例的方法、裝置以及計(jì)算設(shè)備,該方法一方面可以提高測試用例的生成效率,另一方面還可以避免測試用例在設(shè)計(jì)過程中的漏測問題。
2、第一方面,提供了一種批量生成測試用例的方法,該方法包括:獲取目標(biāo)軟件產(chǎn)品的待測功能;獲取與該待測功能對應(yīng)的動作因子以及數(shù)據(jù)因子,其中,該動作因子用于描述測試用例中的以下至少一種信息:前置條件、測試步驟、預(yù)期結(jié)果,該數(shù)據(jù)因子包括與該待測功能對應(yīng)的至少一個測試輸入?yún)?shù)以及每個測試輸入?yún)?shù)的多個取值;對至少一個測試輸入?yún)?shù)的多個取值進(jìn)行組合,得到多個數(shù)據(jù)組合結(jié)果;根據(jù)該動作因子以及該多個數(shù)據(jù)組合結(jié)果批量生成對應(yīng)的多個測試用例,該多個測試用例是用于對該目標(biāo)軟件產(chǎn)品的待測功能進(jìn)行測試;向用戶展示生成的該多個測試用例。
3、上述技術(shù)方案中,通過根據(jù)該動作因子以及該多個數(shù)據(jù)組合結(jié)果批量生成對應(yīng)的多個測試用例,一方面,可以避免測試人員(也可以稱為用戶)在目標(biāo)軟件產(chǎn)品的待測功能下一條一條復(fù)手動的編寫測試用例,從而顯著提升了測試用例生成的效率。另一方面,通過對至少一個測試輸入?yún)?shù)的多個取值進(jìn)行組合,得到多個數(shù)據(jù)組合結(jié)果,從而避免根據(jù)測試人員的經(jīng)驗(yàn)所造成的漏測、測試不全面等問題,提升待測系統(tǒng)的穩(wěn)定性。
4、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,從測試經(jīng)驗(yàn)庫中獲取與該待測功能對應(yīng)的動作因子以及數(shù)據(jù)因子。
5、上述技術(shù)方案中,通過從測試經(jīng)驗(yàn)庫來獲取動作因子和數(shù)據(jù)因子,可以避免依賴測試人員的個人經(jīng)驗(yàn),減少漏測、測試不全面等問題,提升待測系統(tǒng)的穩(wěn)定性。
6、作為示例,上述測試經(jīng)驗(yàn)庫通常由測試經(jīng)理等owner角色從正向和逆向視角,對測試設(shè)計(jì)中各相關(guān)要素進(jìn)行系統(tǒng)歸納提取后,形成的公共測試設(shè)計(jì)對象、模式、資產(chǎn)、定義或約束集合,確保測試設(shè)計(jì)更全面和精準(zhǔn)。測試因子則為對測試過程產(chǎn)生影響的公共要素,如測試條件及取值、測試操作等分別提取為動作因子,數(shù)據(jù)因子,實(shí)現(xiàn)數(shù)據(jù)與業(yè)務(wù)分層,促進(jìn)測試設(shè)計(jì)過程可重復(fù),降低測試設(shè)計(jì)難度,極大提高工作效率。
7、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,該方法還包括:獲取該用戶自定義的信息:該測試輸入?yún)?shù)的取值在該多個數(shù)據(jù)組合結(jié)果中所占的權(quán)重,多個該測試輸入?yún)?shù)的組合的取值在該多個數(shù)據(jù)組合結(jié)果中所占的權(quán)重,該測試輸入?yún)?shù)對應(yīng)的約束條件,或多個該測試輸入?yún)?shù)之間的關(guān)聯(lián)力度;根據(jù)該用戶自定義的信息中的至少一種,對至少一個測試輸入?yún)?shù)的多個取值進(jìn)行組合,得到該多個數(shù)據(jù)組合結(jié)果。
8、上述技術(shù)方案中,還可以在得到上述多個數(shù)據(jù)組合結(jié)果的過程中,結(jié)合用戶自己對數(shù)據(jù)的定義和/或約束,從而使得生成的測試用例更加貼合實(shí)際的待測場景。
9、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,該方法還包括:獲取該用戶選擇的組合算法;根據(jù)該組合算法,對至少一個測試輸入?yún)?shù)的多個取值進(jìn)行組合,得到多個數(shù)據(jù)組合結(jié)果。
10、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,該組合算法包括以下中的至少一種:全組合,單一選擇組合,基本選擇組合,或自定義的n-wise組合。
11、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,該多個測試用例是基于思維導(dǎo)圖的方式生成的。
12、上述技術(shù)方案中,通過思維導(dǎo)圖來設(shè)計(jì)測試用例,使得測試人員的測試設(shè)計(jì)過程更加直觀、便捷,有效提升了測試設(shè)計(jì)效率。
13、結(jié)合第一方面,在第一方面的某些實(shí)現(xiàn)方式中,該方法應(yīng)用于云管理平臺,該云管理平臺用于管理提供云服務(wù)的基礎(chǔ)設(shè)施,該基礎(chǔ)設(shè)施包括至少一個云數(shù)據(jù)中心,每個云數(shù)據(jù)中心設(shè)置有至少一個服務(wù)器。
14、第二方面,提供了一種批量生成測試用例的裝置,該裝置包括:獲取模塊,組合模塊,生成模塊,展示模塊。其中,獲取模塊用于獲取目標(biāo)軟件產(chǎn)品的待測功能;該獲取模塊還用于獲取與該待測功能對應(yīng)的動作因子以及數(shù)據(jù)因子,其中,該動作因子用于描述測試用例中的以下至少一種信息:前置條件、測試步驟、預(yù)期結(jié)果,該數(shù)據(jù)因子包括與該待測功能對應(yīng)的至少一個測試輸入?yún)?shù)以及每個測試輸入?yún)?shù)的多個取值;組合模塊用于對至少一個測試輸入?yún)?shù)的多個取值進(jìn)行組合,得到多個數(shù)據(jù)組合結(jié)果;生成模塊用于根據(jù)該動作因子以及該多個數(shù)據(jù)組合結(jié)果批量生成對應(yīng)的多個測試用例,該多個測試用例是用于對該目標(biāo)軟件產(chǎn)品的待測功能進(jìn)行測試;展示模塊用于向用戶展示生成的該多個測試用例。
15、結(jié)合第二方面,在第二方面的某些實(shí)現(xiàn)方式中,該獲取模塊具體用于:從測試經(jīng)驗(yàn)庫中獲取與該待測功能對應(yīng)的動作因子以及數(shù)據(jù)因子。
16、結(jié)合第二方面,在第二方面的某些實(shí)現(xiàn)方式中,該獲取模塊,還用于獲取該用戶自定義的信息:該測試輸入?yún)?shù)的取值在該多個數(shù)據(jù)組合結(jié)果中所占的權(quán)重,多個該測試輸入?yún)?shù)的組合的取值在該多個數(shù)據(jù)組合結(jié)果中所占的權(quán)重,該測試輸入?yún)?shù)對應(yīng)的約束條件,或多個該測試輸入?yún)?shù)之間的關(guān)聯(lián)力度;該組合模塊具體用于:根據(jù)該用戶自定義的信息中的至少一種,對至少一個測試輸入?yún)?shù)的多個取值進(jìn)行組合,得到該多個數(shù)據(jù)組合結(jié)果。
17、結(jié)合第二方面,在第二方面的某些實(shí)現(xiàn)方式中,該獲取模塊,還用于獲取該用戶選擇的組合算法;該組合模塊具體用于:根據(jù)該組合算法,對至少一個測試輸入?yún)?shù)的多個取值進(jìn)行組合,得到多個數(shù)據(jù)組合結(jié)果。
18、結(jié)合第二方面,在第二方面的某些實(shí)現(xiàn)方式中,該組合算法包括以下中的至少一種:全組合,單一選擇組合,基本選擇組合,或自定義的n-wise組合。
19、結(jié)合第二方面,在第二方面的某些實(shí)現(xiàn)方式中,該多個測試用例是基于思維導(dǎo)圖的方式生成的。
20、結(jié)合第二方面,在第二方面的某些實(shí)現(xiàn)方式中,該裝置應(yīng)用于云管理平臺,該云管理平臺用于管理提供云服務(wù)的基礎(chǔ)設(shè)施,該基礎(chǔ)設(shè)施包括至少一個云數(shù)據(jù)中心,每個云數(shù)據(jù)中心設(shè)置有至少一個服務(wù)器。
21、第三方面,提供了一種計(jì)算設(shè)備,包括處理器和存儲器,可選地,還包括輸入輸出接口。其中該處理器用于控制該輸入輸出接口收發(fā)信息,該存儲器用于存儲計(jì)算機(jī)程序,該處理器用于從存儲器中調(diào)用并運(yùn)行該計(jì)算機(jī)程序,使得該執(zhí)行第一方面或第一方面任意一種可能的實(shí)現(xiàn)方式中的方法。
22、可選地,該處理器可以是通用處理器,可以通過硬件來實(shí)現(xiàn)也可以通過軟件來實(shí)現(xiàn)。當(dāng)通過硬件實(shí)現(xiàn)時,該處理器可以是邏輯電路、集成電路等;當(dāng)通過軟件來實(shí)現(xiàn)時,該處理器可以是一個通用處理器,通過讀取存儲器中存儲的軟件代碼來實(shí)現(xiàn),該存儲器可以集成在處理器中,可以位于該處理器之外,獨(dú)立存在。
23、第四方面,提供了一種計(jì)算設(shè)備集群,包括至少一個計(jì)算設(shè)備,每個計(jì)算設(shè)備包括處理器和存儲器;該至少一個計(jì)算設(shè)備的處理器用于執(zhí)行該至少一個計(jì)算設(shè)備的存儲器中存儲的指令,以使得該計(jì)算設(shè)備集群執(zhí)行第一方面或第一方面任意一種可能的實(shí)現(xiàn)方式中的方法。
24、第五方面,提供了一種芯片,該芯片獲取指令并執(zhí)行該指令來實(shí)現(xiàn)上述第一方面以及第一方面的任意一種實(shí)現(xiàn)方式中的方法。
25、可選地,作為一種實(shí)現(xiàn)方式,該芯片包括處理器與數(shù)據(jù)接口,該處理器通過該數(shù)據(jù)接口讀取存儲器上存儲的指令,執(zhí)行上述第一方面以及第一方面的任意一種實(shí)現(xiàn)方式中的方法。
26、可選地,作為一種實(shí)現(xiàn)方式,該芯片還可以包括存儲器,該存儲器中存儲有指令,該處理器用于執(zhí)行該存儲器上存儲的指令,當(dāng)該指令被執(zhí)行時,該處理器用于執(zhí)行第一方面以及第一方面中的任意一種實(shí)現(xiàn)方式中的方法。
27、第六方面,提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)該指令被計(jì)算設(shè)備運(yùn)行時,使得該計(jì)算設(shè)備執(zhí)行如上述第一方面以及第一方面的任意一種實(shí)現(xiàn)方式中的方法。
28、第七方面,提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)該指令被計(jì)算設(shè)備集群運(yùn)行時,使得該計(jì)算設(shè)備集群執(zhí)行如上述第一方面以及第一方面的任意一種實(shí)現(xiàn)方式中的方法。
29、第八方面,提供了一種計(jì)算機(jī)可讀存儲介質(zhì),包括計(jì)算機(jī)程序指令,當(dāng)該計(jì)算機(jī)程序指令由計(jì)算設(shè)備執(zhí)行時,該計(jì)算設(shè)備執(zhí)行如上述第一方面以及第一方面的任意一種實(shí)現(xiàn)方式中的方法。
30、作為示例,這些計(jì)算機(jī)可讀存儲包括但不限于如下的一個或者多個:只讀存儲器(read-only?memory,rom)、可編程rom(programmable?rom,prom)、可擦除的prom(erasableprom,eprom)、flash存儲器、電eprom(electrically?eprom,eeprom)以及硬盤驅(qū)動器(harddrive)。
31、可選地,作為一種實(shí)現(xiàn)方式,上述存儲介質(zhì)具體可以是非易失性存儲介質(zhì)。
32、第九方面,提供了一種計(jì)算機(jī)可讀存儲介質(zhì),包括計(jì)算機(jī)程序指令,當(dāng)該計(jì)算機(jī)程序指令由計(jì)算設(shè)備集群執(zhí)行時,該計(jì)算設(shè)備集群執(zhí)行如上述第一方面以及第一方面的任意一種實(shí)現(xiàn)方式中的方法。
33、作為示例,這些計(jì)算機(jī)可讀存儲包括但不限于如下的一個或者多個:只讀存儲器(read-only?memory,rom)、可編程rom(programmable?rom,prom)、可擦除的prom(erasableprom,eprom)、flash存儲器、電eprom(electrically?eprom,eeprom)以及硬盤驅(qū)動器(harddrive)。
34、可選地,作為一種實(shí)現(xiàn)方式,上述存儲介質(zhì)具體可以是非易失性存儲介質(zhì)。