本技術(shù)涉及計算機(jī),尤其涉及一種測試用例選擇方法、計算設(shè)備和計算機(jī)程序產(chǎn)品。
背景技術(shù):
1、軟件安全測試中,通過手工或業(yè)務(wù)自動化觸發(fā)代碼執(zhí)行,監(jiān)控代碼執(zhí)行情況,建立測試用例與代碼函數(shù)的對應(yīng)關(guān)系,后續(xù)如果有哪個代碼函數(shù)變更,則能反向關(guān)聯(lián)出受影響的測試用例,通過自動化或手工執(zhí)行關(guān)聯(lián)出來的測試用例進(jìn)行執(zhí)行。
2、但是,在代碼函數(shù)變更較大時,可能會出現(xiàn)無法匹配到測試用例的問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例提供了一種測試用例選擇方法、計算設(shè)備和計算機(jī)程序產(chǎn)品,將測試用例關(guān)聯(lián)的代碼函數(shù)替換為測試標(biāo)簽,測試標(biāo)簽用于概括測試用例的測試內(nèi)容,考慮測試內(nèi)容和待測試代碼的適配度,無需考慮代碼函數(shù)變更對選擇測試用例的影響,降低無法匹配到測試用例的可能性。
2、第一方面,本技術(shù)實(shí)施例提供了一種測試用例選擇方法,應(yīng)用于計算設(shè)備,包括:
3、確定待測試代碼;從多個測試標(biāo)簽中,確定待測試代碼的功能匹配的至少一個測試標(biāo)簽;基于待測試代碼的功能匹配的至少一個測試標(biāo)簽,確定用于對待測試代碼進(jìn)行測試的測試用例;其中,每個測試標(biāo)簽關(guān)聯(lián)至少一個測試用例,測試標(biāo)簽用于指示關(guān)聯(lián)的至少一個測試用例的測試內(nèi)容。
4、本方案中,將測試用例關(guān)聯(lián)的代碼函數(shù)替換為測試標(biāo)簽,測試標(biāo)簽用于概括測試用例的測試內(nèi)容,考慮測試內(nèi)容和待測試代碼的適配度,無需考慮代碼函數(shù)變更對選擇測試用例的影響,降低無法匹配到測試用例的可能性。
5、在一種可能的實(shí)現(xiàn)方式中,從多個測試標(biāo)簽中,確定待測試代碼的功能匹配的至少一個測試標(biāo)簽,包括:
6、基于待測試代碼,確定至少一個問題,至少一個問題用于詢問待測試代碼匹配的測試標(biāo)簽;將至少一個問題分別輸入到ai模型中,得到ai模型輸出的至少一個問題的答案;基于至少一個問題的答案,確定待測試代碼匹配的至少一個測試標(biāo)簽。
7、本方案中,通過問答的方式,使得ai模型能夠分析待測試代碼和測試標(biāo)簽之間的關(guān)系,可更加方便快速準(zhǔn)確的確定待測試代碼匹配的測試標(biāo)簽。
8、在一種可能的實(shí)現(xiàn)方式中,基于待測試代碼,確定至少一個問題,包括:
9、基于待測試代碼、多個測試標(biāo)簽和多個測試標(biāo)簽中每個測試標(biāo)簽的補(bǔ)充說明內(nèi)容,確定至少一個問題;補(bǔ)充說明內(nèi)容用于說明對每個測試標(biāo)簽的解釋。
10、本方案中,確定問題的過程考慮到了測試標(biāo)簽的補(bǔ)充說明,使得問題更為明確,提高ai模型輸出的問題的答案的參考價值。
11、在一種可能的實(shí)現(xiàn)方式中,至少一個問題包括第一問題;第一問題用于詢問第一填充字段的第一填充內(nèi)容匹配的測試標(biāo)簽,第一填充內(nèi)容為待測試代碼;和/或,
12、至少一個問題包括多個測試標(biāo)簽中每個測試標(biāo)簽對應(yīng)的第二問題,第二問題用于詢問第一填充字段的第一填充內(nèi)容是否匹配第二填充字段的第二填充內(nèi)容,第二填充內(nèi)容為第二問題對應(yīng)的測試標(biāo)簽和/或第二問題對應(yīng)的測試標(biāo)簽的補(bǔ)充說明內(nèi)容;
13、至少一個問題包括多個測試標(biāo)簽中每個測試標(biāo)簽對應(yīng)的第三問題,第三問題用于詢問第一填充字段的第一填充內(nèi)容是否未匹配第三填充字段的第三填充內(nèi)容,第三填充內(nèi)容為第三問題對應(yīng)的測試標(biāo)簽和/或第三問題對應(yīng)的測試標(biāo)簽的補(bǔ)充說明內(nèi)容。
14、本方案中,通過構(gòu)造多種問題,使得ai模型輸出的多種問題的答案,提高ai模型輸出的問題的答案的參考價值。
15、在一種可能的實(shí)現(xiàn)方式中,測試標(biāo)簽用于指示安全風(fēng)險,補(bǔ)充說明內(nèi)容用于說明每個測試標(biāo)簽的安全風(fēng)險分類,第一問題用于詢問第一填充字段的第一填充內(nèi)容匹配的測試標(biāo)簽和安全風(fēng)險分類。
16、本方案中,在問題中增加安全風(fēng)險分類,提高ai模型輸出的第一問題的答案的參考價值。
17、在一種可能的實(shí)現(xiàn)方式中,基于至少一個問題的答案,確定待測試代碼匹配的至少一個測試標(biāo)簽,包括:
18、對于多個測試標(biāo)簽中的每個測試標(biāo)簽,在第一問題的答案至少用于指示測試標(biāo)簽,測試標(biāo)簽對應(yīng)的第二問題的答案為是,測試標(biāo)簽對應(yīng)的第三問題的答案為否的情況下,確定待測試代碼和測試標(biāo)簽匹配。
19、本方案中,在多種問題的答案一致認(rèn)為匹配測試標(biāo)簽時,確定待測試代碼和測試標(biāo)簽匹配,提高待測試代碼匹配的測試標(biāo)簽的參考價值。
20、在一種可能的實(shí)現(xiàn)方式中,方法還包括:
21、獲取待關(guān)聯(lián)的測試用例,提取待關(guān)聯(lián)的測試用例中的至少一個關(guān)鍵詞;將至少一個關(guān)鍵詞和多個測試標(biāo)簽匹配,得到待關(guān)聯(lián)的測試用例關(guān)聯(lián)的至少一個測試標(biāo)簽。
22、本方案中,通過提取待測試用例中的關(guān)鍵詞,并對關(guān)鍵詞和測試標(biāo)簽匹配,從而提高測試用例和測試標(biāo)簽的適配度。
23、在一種可能的實(shí)現(xiàn)方式中,待測試代碼匹配的至少一個測試標(biāo)簽用于說明使用待測試代碼的功能產(chǎn)生的安全風(fēng)險。
24、在一種可能的實(shí)現(xiàn)方式中,待測試代碼用于指示應(yīng)用版本變更后改變的代碼。
25、在一種可能的實(shí)現(xiàn)方式中,待測試代碼為應(yīng)用代碼中的函數(shù)。
26、第二方面,本技術(shù)實(shí)施例提供了一種測試用例選擇裝置,測試用例選擇裝置包括若干個模塊,各個模塊用于執(zhí)行本技術(shù)實(shí)施例第一方面提供的測試用例選擇方法中的各個步驟,關(guān)于模塊的劃分在此不做限制。該測試用例選擇裝置各個模塊所執(zhí)行的具體功能及達(dá)到的有益效果請參考本技術(shù)實(shí)施例第一方面提供的測試用例選擇方法的各個步驟的功能,在此不再贅述。
27、示例地,測試用例選擇裝置,包括:
28、代碼確定模塊,用于確定待測試代碼;
29、匹配模塊,用于從多個測試標(biāo)簽中,確定待測試代碼的功能匹配的至少一個測試標(biāo)簽;
30、選擇模塊,用于基于待測試代碼的功能匹配的至少一個測試標(biāo)簽,確定用于對待測試代碼進(jìn)行測試的測試用例;其中,每個測試標(biāo)簽關(guān)聯(lián)至少一個測試用例,測試標(biāo)簽用于指示關(guān)聯(lián)的至少一個測試用例的測試內(nèi)容。
31、本方案中,將測試用例關(guān)聯(lián)的代碼函數(shù)替換為測試標(biāo)簽,測試標(biāo)簽用于概括測試用例的測試內(nèi)容,考慮測試內(nèi)容和待測試代碼的適配度,無需考慮代碼函數(shù)變更對選擇測試用例的影響,降低無法匹配到測試用例的可能性。
32、在一種可能的實(shí)現(xiàn)方式中,匹配模塊,包括:問題確定單元、回答單元和匹配單元;其中,
33、問題確定單元,用于基于待測試代碼,確定至少一個問題,至少一個問題用于詢問待測試代碼匹配的測試標(biāo)簽;
34、回答單元,用于將至少一個問題分別輸入到ai模型中,得到ai模型輸出的至少一個問題的答案;
35、匹配單元,用于基于至少一個問題的答案,確定待測試代碼匹配的至少一個測試標(biāo)簽。
36、本方案中,通過問答的方式,使得ai模型能夠分析待測試代碼和測試標(biāo)簽之間的關(guān)系,可更加方便快速準(zhǔn)確的確定待測試代碼匹配的測試標(biāo)簽。
37、在一種可能的實(shí)現(xiàn)方式中,問題確定單元,用于基于待測試代碼、多個測試標(biāo)簽和多個測試標(biāo)簽中每個測試標(biāo)簽的補(bǔ)充說明內(nèi)容,確定至少一個問題;補(bǔ)充說明內(nèi)容用于說明對每個測試標(biāo)簽的解釋。
38、本方案中,確定問題的過程考慮到了測試標(biāo)簽的補(bǔ)充說明,使得問題更為明確,提高ai模型輸出的問題的答案的參考價值。
39、在一種可能的實(shí)現(xiàn)方式中,至少一個問題包括第一問題;第一問題用于詢問第一填充字段的第一填充內(nèi)容匹配的測試標(biāo)簽,第一填充內(nèi)容為待測試代碼;和/或,
40、至少一個問題包括多個測試標(biāo)簽中每個測試標(biāo)簽對應(yīng)的第二問題,第二問題用于詢問第一填充字段的第一填充內(nèi)容是否匹配第二填充字段的第二填充內(nèi)容,第二填充內(nèi)容為第二問題對應(yīng)的測試標(biāo)簽和/或第二問題對應(yīng)的測試標(biāo)簽的補(bǔ)充說明內(nèi)容;
41、至少一個問題包括多個測試標(biāo)簽中每個測試標(biāo)簽對應(yīng)的第三問題,第三問題用于詢問第一填充字段的第一填充內(nèi)容是否未匹配第三填充字段的第三填充內(nèi)容,第三填充內(nèi)容為第三問題對應(yīng)的測試標(biāo)簽和/或第三問題對應(yīng)的測試標(biāo)簽的補(bǔ)充說明內(nèi)容。
42、本方案中,通過構(gòu)造多種問題,使得ai模型輸出的多種問題的答案,提高ai模型輸出的問題的答案的參考價值。
43、在一種可能的實(shí)現(xiàn)方式中,測試標(biāo)簽用于指示安全風(fēng)險,補(bǔ)充說明內(nèi)容用于說明每個測試標(biāo)簽的安全風(fēng)險分類,第一問題用于詢問第一填充字段的第一填充內(nèi)容匹配的測試標(biāo)簽和安全風(fēng)險分類。
44、本方案中,在問題中增加安全風(fēng)險分類,提高ai模型輸出的第一問題的答案的參考價值。
45、在一種可能的實(shí)現(xiàn)方式中,匹配單元,用于對于多個測試標(biāo)簽中的每個測試標(biāo)簽,在第一問題的答案至少用于指示測試標(biāo)簽,測試標(biāo)簽對應(yīng)的第二問題的答案為是,測試標(biāo)簽對應(yīng)的第三問題的答案為否的情況下,確定待測試代碼和測試標(biāo)簽匹配。
46、本方案中,在多種問題的答案一致認(rèn)為匹配測試標(biāo)簽時,確定待測試代碼和測試標(biāo)簽匹配,提高待測試代碼匹配的測試標(biāo)簽的參考價值。
47、在一種可能的實(shí)現(xiàn)方式中,裝置還包括:
48、關(guān)聯(lián)模塊,用于獲取待關(guān)聯(lián)的測試用例,提取待關(guān)聯(lián)的測試用例中的至少一個關(guān)鍵詞;將至少一個關(guān)鍵詞和多個測試標(biāo)簽匹配,得到待關(guān)聯(lián)的測試用例關(guān)聯(lián)的至少一個測試標(biāo)簽。
49、本方案中,通過提取待測試用例中的關(guān)鍵詞,并對關(guān)鍵詞和測試標(biāo)簽匹配,從而提高測試用例和測試標(biāo)簽的適配度。
50、在一種可能的實(shí)現(xiàn)方式中,待測試代碼匹配的至少一個測試標(biāo)簽用于說明使用待測試代碼的功能產(chǎn)生的安全風(fēng)險。
51、在一種可能的實(shí)現(xiàn)方式中,待測試代碼用于指示應(yīng)用版本變更后改變的代碼。
52、在一種可能的實(shí)現(xiàn)方式中,待測試代碼為應(yīng)用代碼中的函數(shù)。
53、第三方面,本技術(shù)實(shí)施例提供了一種測試用例選擇裝置,包括:至少一個存儲器,用于存儲程序;至少一個處理器,用于執(zhí)行存儲器存儲的程序,當(dāng)存儲器存儲的程序被執(zhí)行時,處理器用于執(zhí)行第一方面中提供的方法。
54、第四方面,本技術(shù)實(shí)施例提供了一種測試用例選擇裝置,裝置運(yùn)行計算機(jī)程序指令,以執(zhí)行第一方面中所提供的方法。示例性的,該裝置可以為芯片,或處理器。
55、在一個例子中,該裝置可以包括處理器,該處理器可以與存儲器耦合,讀取存儲器中的指令并根據(jù)該指令執(zhí)行第一方面中所提供的方法。其中,該存儲器可以集成在芯片或處理器中,也可以獨(dú)立于芯片或處理器之外。
56、第五方面,本技術(shù)實(shí)施例提供了一種計算機(jī)存儲介質(zhì),計算機(jī)存儲介質(zhì)中存儲有指令,當(dāng)指令在計算機(jī)上運(yùn)行時,使得計算機(jī)執(zhí)行第一方面中所提供的方法。
57、第六方面,本技術(shù)實(shí)施例提供了一種包含指令的計算機(jī)程序產(chǎn)品,當(dāng)指令在計算機(jī)上運(yùn)行時,使得計算機(jī)執(zhí)行第一方面中所提供的方法。