国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式軟件測試用例自動生成方法

2021-11-28 02:03趙昶宇
科技與創(chuàng)新 2021年6期
關(guān)鍵詞:嵌入式軟件測試用例軟件測試

趙昶宇

嵌入式軟件測試用例自動生成方法

趙昶宇

(天津津航計算技術(shù)研究所,天津 300308)

為了減少軟件測試人員的工作量,降低軟件測試成本,提高軟件測試的質(zhì)量和效率,提出了一種軟件測試用例自動生成方法。該方法首先提取出被測軟件系統(tǒng)中的各個接口參數(shù),然后利用等價劃分或者邊界取值方法確定出每個接口參數(shù)的取值集合,最后將被測試軟件中任意兩個接口參數(shù)采用兩兩組合的方式進行測試率的覆蓋。上述方法以最少的測試用例實現(xiàn)了對各個接口參數(shù)的各種組合最大限度的覆蓋,不僅提高了設(shè)計和生成測試用例的效率,而且有效提升軟件的測試效率,節(jié)省了軟件測試成本并保證了軟件測試的質(zhì)量。

嵌入式軟件;黑盒測試;測試成本;等價劃分

嵌入式軟件的測試中有一個重要的環(huán)節(jié)就是設(shè)計軟件測試用例,這是一項非常耗費時間和精力的工作。如果能夠?qū)崿F(xiàn)軟件測試用例的自動生成,將極大地提高測試效率,節(jié)省測試時間和成本,并提高軟件測試的覆蓋率。關(guān)于測試用例的自動生成,最關(guān)鍵的是盡可能用最少的測試用例發(fā)現(xiàn)更多的軟件錯誤和缺陷。目前,還有不少嵌入式軟件仍然依靠手工編寫測試用例來進行軟件測試,這種方式對軟件測試人員提出了很高的經(jīng)驗和技術(shù)要求,大多數(shù)情況下會產(chǎn)生較高的測試成本和較長的測試時間,整體測試效率較低,測試后的軟件覆蓋率和質(zhì)量很難得到保證。盡管有些軟件測試工具能夠?qū)崿F(xiàn)測試用例的自動生成,但是更多時候還是主要依靠人工去分析每個軟件模塊的分支和路徑,導(dǎo)致軟件測試的工作量和難度居高不下,甚至出現(xiàn)測試用例不夠完整、測試覆蓋率低等現(xiàn)象。

1 國內(nèi)外現(xiàn)狀和發(fā)展趨勢

測試用例的自動生成屬于軟件測試自動化的范疇,仍舊是當(dāng)下軟件測試領(lǐng)域的熱點話題,國內(nèi)外的很多學(xué)者對此都有較深的研究。BOGDAN將探測性搜索與模式性搜索方法相結(jié)合,同時基于動態(tài)的數(shù)據(jù)流分析技術(shù)用于確定影響分支謂詞的相關(guān)變量,很好地降低了搜索的盲目性;NEELAM等基于線性化的謂詞函數(shù)提出了一種迭代松弛方法,即面向目標(biāo)的鏈方法,并將該方法應(yīng)用于測試數(shù)據(jù)和回歸測試數(shù)據(jù)的自動生成上;OFFUTT、JIN等人通過改進動態(tài)域約簡(DDR)方法,相繼提出了基于前向分析的動態(tài)程序的切片方法和二分搜索方法,用于測試用例的動態(tài)生成。

長期以來,國內(nèi)的很多高校和研究機構(gòu)都在致力研究軟件測試的自動化,比如北京大學(xué)、北京航空航天大學(xué)以及中國科學(xué)院等院校和機構(gòu)。它們提出了很多解決軟件測試自動化的方法,包括基于UML模型實現(xiàn)測試用例的自動生成技術(shù),基于遺傳算法自動生成軟件結(jié)構(gòu)測試數(shù)據(jù),基于對象模型的C++靜態(tài)分析器方面的研究,以及利用神經(jīng)網(wǎng)絡(luò)、規(guī)劃求解等人工智能技術(shù)自動生成軟件測試用例等,都已經(jīng)取得了不少應(yīng)用成果。

針對不同的嵌入式系統(tǒng)和嵌入式軟件的不同特點,市面上出現(xiàn)了不少專業(yè)的自動化軟件測試工具。這其中包括Telelogic公司研發(fā)的Logiscope測試軟件,主要用于軟件靜態(tài)測試;Mercury Interactive公司開發(fā)的WinRunner和QTP功能測試軟件工具;Rational公司推出的Purify系列軟件工具;還有LoadRunner、WebStress等軟件工具,專門用于軟件的性能測試;Rational Test Manager、Compuware TrackRecord等軟件工具,專門用于軟件測試管理。雖然當(dāng)前的自動化測試工具已具有十分強大的測試功能,大多數(shù)測試工具還是無法完美解決測試用例自動生成和全面覆蓋這一難題。還有很多軟件自動測試工具的測試效率較低,生成的測試用例的質(zhì)量不高,同時,測試用例的完備性還需進一步提高。因此,要想徹底解決測試用例的自動執(zhí)行問題,真正實現(xiàn)測試過程的自動化,還有很長的路要走。

2 自動生成測試用例方法

為了提高軟件測試的質(zhì)量,降低軟件測試成本和測試人員的工作量,提高軟件測試效率,因此,本文提出了一種軟件測試用例自動生成方法。該方法首先提取出被測軟件系統(tǒng)中的各個接口參數(shù),然后利用等價劃分或者邊界取值方法確定出每個接口參數(shù)的取值集合,最后將被測試軟件中任意兩個接口參數(shù)采用兩兩組合的方式進行測試率的覆蓋。這種方法以最少的測試用例實現(xiàn)了對各個接口參數(shù)的各種組合最大限度的覆蓋。

假設(shè)某嵌入式軟件接口參數(shù)的個數(shù)為,每個參數(shù)i的取值個數(shù)為i,=1,2,…,,且1≥2≥…≥n(為正整數(shù)),即接口參數(shù)的取值個數(shù)按照從多到少的順序排列?;诮涌趨?shù)個數(shù)和接口參數(shù)取值個數(shù)構(gòu)造一個樹型結(jié)構(gòu),樹的根節(jié)點表示自動生成算法的入口,樹的層數(shù)為接口參數(shù)的個數(shù)。樹的第一層葉節(jié)點為接口參數(shù)取值個數(shù)最多的參數(shù),將該參數(shù)的每個取值按照從小到大進行編號,編完號后按照從左到右的次序連接在根節(jié)點下;樹的第二層葉節(jié)點為接口參數(shù)取值個數(shù)第二多的參數(shù),首先將該參數(shù)的每個取值按照從小到大進行編號,編完號后按照從左到右的次序連接在第一層葉節(jié)點的第一個參數(shù)取值下面,然后將該參數(shù)的每個取值按照編號順序從左到右依次連接在第一層葉節(jié)點的第二個參數(shù)取值下面,以此類推,直到將該參數(shù)的每個取值按照編號順序從左到右依次連接在第一層葉節(jié)點的最后一個參數(shù)取值下面,即完成了第二層樹節(jié)點的建立。以此類推,往下每一層接口參數(shù)的每個取值按照編號順序從左到右依次連接在上一層葉節(jié)點的每一個參數(shù)取值下面,這樣就完成了樹型結(jié)構(gòu)的建立。

基于上述樹型結(jié)構(gòu),自動生成嵌入式軟件測試用例,將按照如下步驟進行:①測試用例生成時按照樹型結(jié)構(gòu)層次從上到下,每個樹型葉節(jié)點從左到右的次序進行遍歷,從而形成一條測試路徑。②在第一層中找到參數(shù)取值編號最小的節(jié)點,將該節(jié)點編號發(fā)送給下一層葉節(jié)點中參數(shù)取值編號最小的節(jié)點,形成一個節(jié)點路徑序列。③從第二層開始,每個節(jié)點按照一定的方法進行節(jié)點路徑的傳遞工作——在每一層中找到參數(shù)取值編號最小的節(jié)點,將該節(jié)點編號以及與上一層節(jié)點形成的節(jié)點路徑序列一起發(fā)送給下一層葉節(jié)點中參數(shù)取值編號最小的節(jié)點;這樣遍歷完層節(jié)點后形成了一個完整的節(jié)點路徑序列,即生成了一個完整的測試用例。④按照步驟③的算法,繼續(xù)生成新的測試用例。首先保留步驟③的完整的節(jié)點路徑序列,將該路徑序列中第一個編號值替換為第一層中當(dāng)前的參數(shù)節(jié)點中參數(shù)取值編號為次小的編號值,繼續(xù)按照步驟③的算法遍歷完整個樹型結(jié)構(gòu),生成一個新的測試用例;按照這種方法繼續(xù)遍歷整個樹型結(jié)構(gòu),直到遍歷完第一層中參數(shù)取值編號最大的節(jié)點,保存生成的每個測試用例。⑤保留步驟④中的每個完整的節(jié)點路徑序列,不改變該每一個路徑序列中第一個編號值,將每一個路徑序列中第二個編號值替換為第一層中當(dāng)前參數(shù)的葉節(jié)點中參數(shù)取值編號為次小的編號值,該路徑序列中其余編號值不變;按照上述方法,完成了對步驟④中每一個節(jié)點路徑序列中第二個編號值從小到大的依次替換和遍歷。⑥保留步驟⑤中的每個完整的節(jié)點路徑序列,不改變該每一個路徑序列中第一個編號值和第二個編號值,將每一個路徑序列中第三個編號值替換為第二層中當(dāng)前參數(shù)的葉節(jié)點中參數(shù)取值編號為次小的編號值,該路徑序列中其余編號值不變;按照上述方法,完成了對步驟⑤中每一個節(jié)點路徑序列中第三個編號值從小到大的依次替換和遍歷;以此類推,自動生成了基于個接口參數(shù)的測試用例集合。

嵌入式軟件測試的最終目的是為了盡可能多、盡可能快地發(fā)現(xiàn)嵌入式軟件中存在的缺陷。本文提出的測試用例自動生成算法,在自動生成每一個測試用例的同時,將該測試用例作為輸入去執(zhí)行軟件系統(tǒng)測試。如果發(fā)現(xiàn)軟件缺陷,則停止生成軟件測試用例。也就是說,按照上述步驟和順序執(zhí)行每個軟件測試用例時,一旦發(fā)現(xiàn)某個測試用例的執(zhí)行結(jié)果與預(yù)期值不符時,表明該測試用例執(zhí)行失敗,則立即停止自動生成測試用例。在對嵌入式代碼進行修改后,重新運行上述算法進行測試。這樣做的好處是,一方面節(jié)省了軟件測試時間,提高了軟件測試效率,降低了軟件測試的成本;另一方面,縮短了生成算法的搜索時間和減少了計算量,避免生成冗余測試用例。

3 結(jié)束語

本文提出了一種軟件測試用例自動生成方法,該方法通過對軟件接口參數(shù)進行組合覆蓋測試,用最少的測試用例滿足軟件測試覆蓋性,提高設(shè)計和生成測試用例的效率,從而有效提升軟件的測試效率和保證軟件測試質(zhì)量。

[1]楊勁濤,荷清.黑盒測試用例集的研究[J].計算機工程與科學(xué),2006,28(5):130-131.

[2]周奇.白盒測試中指定路徑測試用例的自動生成[J].艦船電子工程,2005,25(3):67-70.

[3]史亮,聶長海,徐寶文.基于解空間樹的組合測試數(shù)據(jù)生成[J].計算機學(xué)報,2006,29(6):849-857.

2095-6835(2021)06-0163-02

TP311.52

A

10.15913/j.cnki.kjycx.2021.06.067

趙昶宇(1982—),男,陜西漢中人,工學(xué)碩士,高級工程師,主要從事嵌入式系統(tǒng)軟件測試方面的研究。

〔編輯:張思楠〕

猜你喜歡
嵌入式軟件測試用例軟件測試
軟件測試方向人才培養(yǎng)“1+X”融合研究
大數(shù)據(jù)背景下軟件測試技術(shù)的發(fā)展
基于LDA模型的測試用例復(fù)用方法*
基于路徑關(guān)鍵狀態(tài)變量的測試用例約簡
嵌入式軟件測試數(shù)據(jù)傳輸穩(wěn)定性檢測方式分析
淺析嵌入式軟件技術(shù)的現(xiàn)狀與發(fā)展動向
關(guān)于 Web 應(yīng)用系統(tǒng)的軟件測試的研究
嵌入式軟件在計算機軟件開發(fā)過程中的運用
軟件測試發(fā)展現(xiàn)狀及前景的探討
測試用例集的優(yōu)化技術(shù)分析與改進
宁都县| 邻水| 二连浩特市| 包头市| 江山市| 句容市| 吐鲁番市| 微博| 汤阴县| 龙游县| 宁陕县| 卓资县| 苍南县| 潮安县| 禄丰县| 甘洛县| 湟中县| 天水市| 衡水市| 长治县| 山东| 宁明县| 巴青县| 电白县| 淅川县| 大庆市| 元氏县| 泽普县| 台前县| 阿城市| 迁西县| 阳西县| 本溪市| 澄城县| 遂平县| 灵武市| 开鲁县| 迁安市| 微博| 吉木萨尔县| 藁城市|