最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種基于依賴關(guān)系圖的測試用例生成方法及系統(tǒng)

文檔序號(hào):41945057發(fā)布日期:2025-05-16 14:02閱讀:4來源:國知局
一種基于依賴關(guān)系圖的測試用例生成方法及系統(tǒng)

本發(fā)明屬于軟件測試,具體涉及一種基于依賴關(guān)系圖的測試用例生成方法及系統(tǒng)。


背景技術(shù):

1、隨著相關(guān)技術(shù)的發(fā)展,網(wǎng)絡(luò)服務(wù)規(guī)模迅速增長,其中用于構(gòu)建分布式服務(wù)和數(shù)據(jù)處理、提供基礎(chǔ)計(jì)算措施與軟件托管服務(wù)的云服務(wù)呈爆炸式增長。rest(representationalstate?transfer)是一種軟件架構(gòu),由royfielding于2000年首次提出,規(guī)范對資源的增刪改查(crud)操作,旨在提供一種簡單、輕量級(jí)、可擴(kuò)展和可靠的方式來構(gòu)建分布式系統(tǒng)和網(wǎng)絡(luò)服務(wù)。restful?api是一種符合rest架構(gòu)風(fēng)格的應(yīng)用程序接口設(shè)計(jì)方式,restful?api的設(shè)計(jì)理念簡單、輕量,依賴http協(xié)議進(jìn)行數(shù)據(jù)交互,具有跨平臺(tái)、跨語言的優(yōu)勢,適用于各種分布式系統(tǒng)和微服務(wù)架構(gòu)?;谝陨咸攸c(diǎn),restful?api已成為云計(jì)算平臺(tái)(如aws、azure)中標(biāo)準(zhǔn)化接口的一部分,為用戶提供便捷的云端管理工具。其中openapi成為了主流的restful?api接口描述語言,遵循openapi規(guī)范的云服務(wù)會(huì)給用戶提供一個(gè)規(guī)范文檔,其中描述了云服務(wù)中的端點(diǎn)與參數(shù)的相關(guān)信息,方便用戶通過請求訪問云服務(wù)。

2、在restful?api模糊測試中,通常對openapi規(guī)范文檔進(jìn)行分析,得到操作間的依賴關(guān)系,這里的依賴關(guān)系指的是由微軟團(tuán)隊(duì)提出的消費(fèi)者-生產(chǎn)者關(guān)系,消費(fèi)者執(zhí)行時(shí)需要某個(gè)參數(shù)值,生產(chǎn)者執(zhí)行后能獲取到某個(gè)參數(shù),由這種需求關(guān)系構(gòu)成依賴關(guān)系。分析得到依賴關(guān)系后,根據(jù)依賴關(guān)系生成由多個(gè)操作組成的操作序列作為有狀態(tài)的測試用例,如創(chuàng)建、訪問、刪除構(gòu)成一個(gè)測試序列作為一個(gè)測試用例,生成有狀態(tài)的測試用例的目的是通過長操作序列測試到無法通過單節(jié)點(diǎn)直接測試到的操作節(jié)點(diǎn),提升測試的覆蓋率,擴(kuò)大對服務(wù)的測試范圍。

3、測試用例生成策略指的是根據(jù)一系列算法或技術(shù)來自動(dòng)化的生成測試用例。目前在黑盒測試中常見的restful?api測試用例生成策略有:基于模型的測試用例生成策略、隨機(jī)測試用例生成策略。其中,基于模型的測試用例生成策略將程序抽象成一個(gè)數(shù)學(xué)模型,將系統(tǒng)狀態(tài)抽象成狀態(tài)圖或狀態(tài)轉(zhuǎn)移矩陣等,然后應(yīng)用搜索算法在狀態(tài)空間上進(jìn)行搜索,以產(chǎn)生盡可能多、盡可能有代表性的測試用例。隨機(jī)測試即通過為被測操作的每個(gè)參數(shù)分配隨機(jī)值來構(gòu)建測試用例。模糊測試是restful?api測試中廣泛使用的隨機(jī)化測試方法,其核心思想是將自動(dòng)或半自動(dòng)生成的隨機(jī)數(shù)據(jù)輸入到程序中,并監(jiān)視程序異常,如崩潰或斷言失敗,以發(fā)現(xiàn)可能的程序錯(cuò)誤。

4、2019年,由微軟團(tuán)隊(duì)研究提出restler(atlidakis?v,godefroidp,polishchukm.restler:stateful?rest?api?fuzzing.ieee/acm?the?41st?internationalconference?on?software?engineering(icse).748-758,2019.)黑盒模糊(fuzz)測試工具,對openapi規(guī)范文檔(swagger.apidevelopment?for?everyone.http://swagger.io/.2020.)的分析后,得到一個(gè)記錄了依賴關(guān)系與參數(shù)信息的語法文件,根據(jù)語法文件使用廣度優(yōu)先或隨機(jī)選取的搜索策略生成有狀態(tài)的測試序列進(jìn)行測試,但restler使用的搜索策略存在路徑爆炸的問題,導(dǎo)致生成的序列長度不夠且質(zhì)量較低,同時(shí)存在測試參數(shù)的動(dòng)態(tài)反饋問題,導(dǎo)致測試效果一般。

5、2020年,意大利的emanuele?viglianisi等人提出resttestgen(viglianisi?e,dallago?m,ceccato?m.resttestgen:automatedblack-box?testing?ofrestfulapis.2020ieee?the?13th?international?conference?on?software?testing,validation?and?verification(icst).142-152,2020.),其中使用基于操作依賴關(guān)系圖的測試用例生成方法,提出由操作作為圖節(jié)點(diǎn),依賴關(guān)系作為邊的有向圖構(gòu)成依賴關(guān)系圖模型,通過圖模型來記錄從文檔中分析得到的依賴關(guān)系并基于圖進(jìn)行測試,不依賴于廣度優(yōu)先的搜索策略,而是自上而下的生成操作序列,但由于其設(shè)計(jì)的依賴關(guān)系圖模型中僅存在操作節(jié)點(diǎn),圖結(jié)構(gòu)過于單薄,使得在測試過程中會(huì)重復(fù)生成大量相同的測試用例。且該圖模型的構(gòu)建過于依賴api規(guī)范文檔,當(dāng)規(guī)范文檔存在一些問題時(shí),該依賴關(guān)系圖無法正確的反映操作間的依賴關(guān)系,進(jìn)而影響到生成測試用例的質(zhì)量。

6、2022年,華為的團(tuán)隊(duì)提出morest(liuy,li?y,deng?g,et?al.morest:model-basedrestful?api?testing?with?execution?feedback.proceedings?ofthe?44thinternational?conference?on?software?engineering.1406-1417,2022.)測試工具,其中使用基于服務(wù)屬性圖的測試用例生成方法,在操作依賴圖的基礎(chǔ)上進(jìn)一步提出了服務(wù)屬性圖,服務(wù)屬性圖是有向的、邊標(biāo)記的、屬性的多重圖模型,記錄了操作間的關(guān)系與資源間的關(guān)系。在服務(wù)屬性圖的基礎(chǔ)上使用笛卡爾積的計(jì)算方法遍歷圖中的資源節(jié)點(diǎn),生成測試序列,并添加了動(dòng)態(tài)反饋機(jī)制,彌補(bǔ)前兩者的不足,但測試用例的生成算法與資源節(jié)點(diǎn)的特性導(dǎo)致序列間存在一定的隨機(jī)性,邏輯性低,測試用例的質(zhì)量較低,且服務(wù)屬性圖中資源節(jié)點(diǎn)少,使得測試用例生成的數(shù)量較少,測試的覆蓋率低。


技術(shù)實(shí)現(xiàn)思路

1、目前,restful?api模糊測試過程中使用不同的方法生成有狀態(tài)的測試用例時(shí),由于對操作間的依賴關(guān)系分析與記錄的不準(zhǔn)確性與不全面性,導(dǎo)致生成的測試用例有效性偏低,直接影響了測試的端點(diǎn)覆蓋率與測試耗用的資源。因此,為了解決現(xiàn)有方法在restfulapi模糊測試過程中生成的測試用例有效性較低、用例規(guī)模過大與覆蓋度不足的問題,本發(fā)明提供一種基于依賴關(guān)系圖的測試用例生成方法及系統(tǒng)。本發(fā)明通過構(gòu)建一種以參數(shù)與操作構(gòu)成的依賴關(guān)系圖模型,利用圖的特性來反映并利用操作間的依賴關(guān)系,且在過程中根據(jù)反饋實(shí)時(shí)更新依賴關(guān)系圖模型,優(yōu)化生成的測試用例的有效性,可以有效地提高測試用例的有效性并降低測試用例的規(guī)模,優(yōu)化模糊測試效果。

2、本發(fā)明為解決技術(shù)問題所采用的技術(shù)方案如下:

3、本發(fā)明提供的一種基于依賴關(guān)系圖的測試用例生成方法,包括以下步驟:

4、步驟s1:構(gòu)建一種自適應(yīng)依賴關(guān)系圖模型;

5、所述依賴關(guān)系圖模型為:opg=(v,e,μ);v表示節(jié)點(diǎn)集合,v=vparameter∪voperation,voperation表示操作節(jié)點(diǎn)集合,vparameter表示參數(shù)節(jié)點(diǎn)集合;e表示有向邊集合,e=eop∪epo,eop表示操作指向參數(shù)的邊集合,epo表示參數(shù)指向操作的邊集合;μ表示操作與參數(shù)添加屬性值的映射函數(shù)集合,μ=μparameter∪μoperation,μparameter表示參數(shù)添加屬性的函數(shù),μoperation表示操作添加屬性的函數(shù);

6、步驟s2:建立一種有狀態(tài)的測試用例生成算法;

7、s2.1:采用opg遍歷算法和逆序生成算法生成測試子圖;

8、s2.2:采取多種生成策略結(jié)合的方法在測試過程中實(shí)時(shí)生成測試參數(shù)。

9、進(jìn)一步的,步驟s2.1中,初始化一個(gè)測試子圖與序列,將待測試的節(jié)點(diǎn)a設(shè)置為測試子圖的根節(jié)點(diǎn),并添加進(jìn)序列中。

10、進(jìn)一步的,步驟s2.1中,在依賴關(guān)系圖模型中訪問節(jié)點(diǎn)a的父節(jié)點(diǎn),得到該操作所需的參數(shù)值,并訪問每個(gè)參數(shù)值的父節(jié)點(diǎn),得到能夠生產(chǎn)該參數(shù)的操作集。

11、進(jìn)一步的,步驟s2.1中,選取其中能滿足生產(chǎn)者-消費(fèi)者關(guān)系、crud語義約束且不會(huì)形成環(huán)的操作,并依次將參數(shù)節(jié)點(diǎn)與操作節(jié)點(diǎn)添加進(jìn)測試子圖中,操作節(jié)點(diǎn)同時(shí)也依次追加到序列的最前端,循環(huán)以上操作,直至訪問完序列中所有的操作節(jié)點(diǎn)。

12、進(jìn)一步的,步驟s2.2中,所述生成策略包括:成功值生成策略、響應(yīng)值生成策略、示例值/默認(rèn)值生成策略和隨機(jī)值生成策略。

13、進(jìn)一步的,所述生成策略按照優(yōu)化級(jí)排序依次是:成功值生成策略、響應(yīng)值生成策略、示例值/默認(rèn)值生成策略、隨機(jī)值生成策略。

14、進(jìn)一步的,步驟s2.2中,首先選擇成功值生成策略,不存在成功值,則從響應(yīng)值中獲取,按照優(yōu)化級(jí)依次降低應(yīng)用這些生成策略,直到確定每個(gè)測試參數(shù)的值域。

15、進(jìn)一步的,所述成功值為以往成功的測試用例中保存的值;所述響應(yīng)值為從測試反饋的報(bào)文中分析得到的值,分為實(shí)時(shí)響應(yīng)值與總響應(yīng)值;所述示例值/默認(rèn)值為從restfulapi規(guī)范文檔中分析得到的值;所述隨機(jī)值為:當(dāng)以上即成功值、響應(yīng)值、示例值/默認(rèn)值均無法得到有效的數(shù)據(jù)值時(shí),則根據(jù)參數(shù)要求隨機(jī)生成的數(shù)據(jù)。

16、本發(fā)明提供的一種基于依賴關(guān)系圖的測試用例生成系統(tǒng),用以實(shí)現(xiàn)所述的一種基于依賴關(guān)系圖的測試用例生成方法,該系統(tǒng)包括:自適應(yīng)依賴關(guān)系圖模型構(gòu)建模塊、測試子圖生成模塊和測試參數(shù)生成模塊;所述自適應(yīng)依賴關(guān)系圖模型構(gòu)建模塊用于構(gòu)建自適應(yīng)依賴關(guān)系圖模型;所述測試子圖生成模塊包括opg遍歷算法模塊以及逆序生成算法模塊,所述opg遍歷算法模塊用于遍歷依賴關(guān)系圖模型中的每個(gè)操作節(jié)點(diǎn),所述逆序生成算法模塊用于根據(jù)操作節(jié)點(diǎn)生成測試子圖;所述測試參數(shù)生成模塊用于采取多種生成策略結(jié)合的方法在測試過程中實(shí)時(shí)生成測試參數(shù)。

17、本發(fā)明提供的一種電子設(shè)備,包括:

18、存儲(chǔ)器,用于存儲(chǔ)計(jì)算機(jī)程序以及用戶上傳的本地?cái)?shù)據(jù);

19、處理器,用于執(zhí)行存儲(chǔ)器中所存儲(chǔ)的計(jì)算機(jī)程序,以實(shí)現(xiàn)所述的一種基于依賴關(guān)系圖的測試用例生成方法的步驟;

20、通信接口,用于電子設(shè)備與其他設(shè)備之間的通信;

21、通信總線,用于實(shí)現(xiàn)處理器、通信接口和存儲(chǔ)器之間的通信。

22、本發(fā)明的有益效果是:

23、本發(fā)明提供的一種基于依賴關(guān)系圖的測試用例生成方法及系統(tǒng),通過對restfulapi規(guī)范文檔的分析來構(gòu)建一種以參數(shù)和操作組成的依賴關(guān)系圖模型,以參數(shù)和操作作為圖結(jié)構(gòu)中的節(jié)點(diǎn),可以更加有效的反映參數(shù)與操作間的邏輯關(guān)系,實(shí)現(xiàn)測試過程中參數(shù)數(shù)據(jù)與邊關(guān)系的實(shí)時(shí)更新,同時(shí)能夠避免如morest的中圖模型中節(jié)點(diǎn)過少而導(dǎo)致的生成的測試用例較少、覆蓋率低的問題;同時(shí)本發(fā)明采用逆序生成算法生成的測試子圖作為測試用例,測試子圖作為測試用例能夠測試更加復(fù)雜的邏輯關(guān)系,而不是單一的線性邏輯關(guān)系,更適配于現(xiàn)實(shí)環(huán)境中復(fù)雜的應(yīng)用場景,提升測試效果。

24、另外,利用本發(fā)明中構(gòu)建的依賴關(guān)系圖模型能更好的反映操作間的依賴關(guān)系,從操作與參數(shù)兩個(gè)方面提升生成的測試用例的質(zhì)量,基于良好的反饋機(jī)制,能夠減少錯(cuò)誤參數(shù)的數(shù)量,進(jìn)一步減少生成測試用例的數(shù)量,避免測試用例規(guī)模過大的問題;同時(shí)生成測試子圖作為測試用例,反映操作間更復(fù)雜的邏輯關(guān)系,能夠提升測試用例的有效性,進(jìn)而提升對測試目標(biāo)的覆蓋率。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1