本發(fā)明涉及軟件測(cè)試,尤其涉及一種測(cè)試用例生成方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)軟件系統(tǒng)的開發(fā)過(guò)程也趨向于規(guī)范化,軟件系統(tǒng)開發(fā)的流程一般包括總體結(jié)構(gòu)設(shè)計(jì)和模塊設(shè)計(jì)、編碼和調(diào)試、程序聯(lián)調(diào)和測(cè)試以及編寫、提交程序等一系列操作。其中,軟件測(cè)試是指描述一種用來(lái)促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過(guò)程。
2、軟件系統(tǒng)的測(cè)試一般由人工根據(jù)經(jīng)驗(yàn)來(lái)完成,由測(cè)試人員親自操作應(yīng)用程序,來(lái)記錄從應(yīng)用程序的一個(gè)場(chǎng)景到另一個(gè)場(chǎng)景的多條路徑,并將這些路徑寫成測(cè)試用例。然而這種方法生成測(cè)試用例的效率較低。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的主要目的在于提供一種測(cè)試用例生成方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),旨在解決現(xiàn)有技術(shù)生成測(cè)試用例的效率低的技術(shù)問(wèn)題。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種測(cè)試用例生成方法,所述方法包括以下步驟:
3、基于測(cè)試用例生成請(qǐng)求獲取待測(cè)試程序的場(chǎng)景頁(yè)面,得到場(chǎng)景頁(yè)面集合;
4、確定所述場(chǎng)景頁(yè)面集合中的各場(chǎng)景頁(yè)面之間的切換關(guān)系;
5、基于所述切換關(guān)系對(duì)所述場(chǎng)景頁(yè)面集合進(jìn)行分組,得到分組后的場(chǎng)景頁(yè)面集合;
6、基于所述分組后的場(chǎng)景頁(yè)面集合構(gòu)建語(yǔ)法樹,并根據(jù)所述語(yǔ)法樹確定測(cè)試用例路徑;
7、基于所述測(cè)試用例路徑生成測(cè)試用例。
8、可選地,所述基于所述切換關(guān)系對(duì)所述場(chǎng)景頁(yè)面集合進(jìn)行分組,得到分組后的場(chǎng)景頁(yè)面集合,包括:
9、基于所述切換關(guān)系確定所述場(chǎng)景頁(yè)面集合中的場(chǎng)景頁(yè)面的切換路徑;
10、確定所述場(chǎng)景頁(yè)面集合中的場(chǎng)景頁(yè)面是否正常切換;
11、在所述場(chǎng)景頁(yè)面集合中的場(chǎng)景頁(yè)面均正常切換時(shí),基于切換路徑進(jìn)行分組,得到分組后的場(chǎng)景頁(yè)面集合,其中,分組后的場(chǎng)景頁(yè)面集合中的每個(gè)分組中的場(chǎng)景頁(yè)面同屬一條切換路徑。
12、可選地,所述確定所述場(chǎng)景頁(yè)面集合中的場(chǎng)景頁(yè)面是否正常切換之后,還包括:
13、在所述場(chǎng)景頁(yè)面集合中的場(chǎng)景頁(yè)面存在無(wú)法正常切換的場(chǎng)景頁(yè)面時(shí),確定無(wú)法正常切換的場(chǎng)景頁(yè)面的類型;
14、在所述無(wú)法正常切換的場(chǎng)景頁(yè)面為第一場(chǎng)景頁(yè)面時(shí),將所述無(wú)法正常切換的場(chǎng)景頁(yè)面進(jìn)行單獨(dú)分組并將所述場(chǎng)景頁(yè)面集合中的其他場(chǎng)景頁(yè)面基于切換路徑進(jìn)行分組,得到分組后的場(chǎng)景頁(yè)面集合;
15、在所述無(wú)法正常切換的場(chǎng)景頁(yè)面為非第一場(chǎng)景頁(yè)面時(shí),根據(jù)所述切換路徑確定所述無(wú)法正常切換的場(chǎng)景頁(yè)面對(duì)應(yīng)的前置場(chǎng)景頁(yè)面,并將所述無(wú)法正常切換的場(chǎng)景頁(yè)面以及對(duì)應(yīng)的前置場(chǎng)景頁(yè)面進(jìn)行分組,得到分組后的場(chǎng)景頁(yè)面集合。
16、可選地,所述基于所述分組后的場(chǎng)景頁(yè)面集合構(gòu)建語(yǔ)法樹,并根據(jù)所述語(yǔ)法樹確定測(cè)試用例路徑,包括:
17、基于所述分組后的場(chǎng)景頁(yè)面集合構(gòu)建語(yǔ)法樹;
18、對(duì)所述語(yǔ)法樹進(jìn)行優(yōu)化,得到優(yōu)化后的語(yǔ)法樹;
19、基于所述測(cè)試用例生成請(qǐng)求和所述優(yōu)化后的語(yǔ)法樹確定測(cè)試用例路徑。
20、可選地,所述基于所述分組后的場(chǎng)景頁(yè)面集合構(gòu)建語(yǔ)法樹,包括:
21、獲取所述分組后的場(chǎng)景頁(yè)面集合中各場(chǎng)景頁(yè)面的輸入?yún)?shù)以及頁(yè)面名稱;
22、確定各場(chǎng)景頁(yè)面的相鄰場(chǎng)景頁(yè)面的輸入?yún)?shù)對(duì)應(yīng)的參數(shù)值,得到分組后的場(chǎng)景頁(yè)面集合中各分組對(duì)應(yīng)的參數(shù)值集合;
23、基于所述參數(shù)值集合和所述頁(yè)面名稱構(gòu)建語(yǔ)法樹。
24、可選地,所述對(duì)所述語(yǔ)法樹進(jìn)行優(yōu)化,得到優(yōu)化后的語(yǔ)法樹,包括:
25、檢測(cè)所述語(yǔ)法樹中是否存在獨(dú)立樹,其中,所述獨(dú)立樹存在獨(dú)立節(jié)點(diǎn)或預(yù)設(shè)節(jié)點(diǎn),預(yù)設(shè)節(jié)點(diǎn)為與其他節(jié)點(diǎn)之間不存在關(guān)系邊的節(jié)點(diǎn);
26、若存在,則確定所述獨(dú)立節(jié)點(diǎn)或預(yù)設(shè)節(jié)點(diǎn)對(duì)應(yīng)的場(chǎng)景頁(yè)面;
27、查詢所述獨(dú)立節(jié)點(diǎn)或預(yù)設(shè)節(jié)點(diǎn)對(duì)應(yīng)的場(chǎng)景頁(yè)面的待測(cè)試程序;
28、對(duì)所述待測(cè)試程序進(jìn)行語(yǔ)義分析確定待測(cè)試程序漏洞,并對(duì)所述待測(cè)試程序漏洞進(jìn)行修復(fù),得到優(yōu)化后的語(yǔ)法樹。
29、可選地,所述基于所述測(cè)試用例生成請(qǐng)求和所述優(yōu)化后的語(yǔ)法樹確定測(cè)試用例路徑,包括:
30、獲取所述測(cè)試用例生成請(qǐng)求中的輸入?yún)?shù);
31、遍歷所述優(yōu)化后的語(yǔ)法樹的各個(gè)節(jié)點(diǎn),確定多條測(cè)試用例路徑;
32、根據(jù)所述多條測(cè)試用例路徑確定測(cè)試用例生成請(qǐng)求中的輸入?yún)?shù)對(duì)應(yīng)的測(cè)試用例路徑。
33、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種測(cè)試用例生成裝置,所述測(cè)試用例生成裝置包括:
34、獲取模塊,用于基于測(cè)試用例生成請(qǐng)求獲取待測(cè)試程序的場(chǎng)景頁(yè)面,得到場(chǎng)景頁(yè)面集合;
35、確定模塊,用于確定所述場(chǎng)景頁(yè)面集合中的各場(chǎng)景頁(yè)面之間的切換關(guān)系;
36、分組模塊,用于基于所述切換關(guān)系對(duì)所述場(chǎng)景頁(yè)面集合進(jìn)行分組,得到分組后的場(chǎng)景頁(yè)面集合;
37、構(gòu)建模塊,用于基于所述分組后的場(chǎng)景頁(yè)面集合構(gòu)建語(yǔ)法樹,并根據(jù)所述語(yǔ)法樹確定測(cè)試用例路徑;
38、生成模塊,用于基于所述測(cè)試用例路徑生成測(cè)試用例。
39、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種測(cè)試用例生成設(shè)備,所述測(cè)試用例生成設(shè)備包括:存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的測(cè)試用例生成程序,所述測(cè)試用例生成程序配置為實(shí)現(xiàn)如上文所述的測(cè)試用例生成方法的步驟。
40、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)上存儲(chǔ)有測(cè)試用例生成程序,所述測(cè)試用例生成程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上文所述的測(cè)試用例生成方法的步驟。
41、本發(fā)明基于測(cè)試用例生成請(qǐng)求獲取待測(cè)試程序的場(chǎng)景頁(yè)面,得到場(chǎng)景頁(yè)面集合;確定場(chǎng)景頁(yè)面集合中的各場(chǎng)景頁(yè)面之間的切換關(guān)系;基于切換關(guān)系對(duì)場(chǎng)景頁(yè)面集合進(jìn)行分組,得到分組后的場(chǎng)景頁(yè)面集合;基于分組后的場(chǎng)景頁(yè)面集合構(gòu)建語(yǔ)法樹,并根據(jù)語(yǔ)法樹確定測(cè)試用例路徑;基于測(cè)試用例路徑生成測(cè)試用例。本發(fā)明通過(guò)場(chǎng)景頁(yè)面集合中的各場(chǎng)景頁(yè)面之間的切換關(guān)系進(jìn)行分組,根據(jù)分組后的場(chǎng)景頁(yè)面集合創(chuàng)建語(yǔ)法樹,根據(jù)語(yǔ)法樹確定測(cè)試用例路徑并生成測(cè)試用例,解決了生成測(cè)試用例的效率低的問(wèn)題,提高測(cè)試用例生成效率。
1.一種測(cè)試用例生成方法,其特征在于,所述方法包括:
2.如權(quán)利要求1所述的方法,其特征在于,所述基于所述切換關(guān)系對(duì)所述場(chǎng)景頁(yè)面集合進(jìn)行分組,得到分組后的場(chǎng)景頁(yè)面集合,包括:
3.如權(quán)利要求2所述的方法,其特征在于,所述確定所述場(chǎng)景頁(yè)面集合中的場(chǎng)景頁(yè)面是否正常切換之后,還包括:
4.如權(quán)利要求1所述的方法,其特征在于,所述基于所述分組后的場(chǎng)景頁(yè)面集合構(gòu)建語(yǔ)法樹,并根據(jù)所述語(yǔ)法樹確定測(cè)試用例路徑,包括:
5.如權(quán)利要求4所述的方法,其特征在于,所述基于所述分組后的場(chǎng)景頁(yè)面集合構(gòu)建語(yǔ)法樹,包括:
6.如權(quán)利要求4所述的方法,其特征在于,所述對(duì)所述語(yǔ)法樹進(jìn)行優(yōu)化,得到優(yōu)化后的語(yǔ)法樹,包括:
7.如權(quán)利要求4所述的方法,其特征在于,所述基于所述測(cè)試用例生成請(qǐng)求和所述優(yōu)化后的語(yǔ)法樹確定測(cè)試用例路徑,包括:
8.一種測(cè)試用例生成裝置,其特征在于,所述測(cè)試用例生成裝置包括:
9.一種測(cè)試用例生成設(shè)備,其特征在于,所述測(cè)試用例生成設(shè)備包括:存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的測(cè)試用例生成程序,所述測(cè)試用例生成程序配置為實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的測(cè)試用例生成方法。
10.一種存儲(chǔ)介質(zhì),其特征在于,所述存儲(chǔ)介質(zhì)上存儲(chǔ)有測(cè)試用例生成程序,所述測(cè)試用例生成程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的測(cè)試用例生成方法。