隨著軟件系統(tǒng)規(guī)模的不斷擴(kuò)大、復(fù)雜度迅速的上升,對(duì)軟件質(zhì)量提出了更高的要求,軟件質(zhì)量受到人們?cè)絹碓蕉嗟年P(guān)注。軟件測(cè)試這一確保軟件質(zhì)量的有效方法也越來越被學(xué)術(shù)界和工業(yè)界所重視。基于語句覆蓋的測(cè)試方法,如語句、分支覆蓋等,即使達(dá)到了100%覆蓋率,也無法確保100%檢測(cè)出程序所含故障。為解決該問題,人們提出了一種高故障檢測(cè)率方法,主要思想是使用變異測(cè)試方法來檢測(cè)語句覆蓋無法檢測(cè)出的那一部分故障。本文完成了該框架中:去除冗余的變異算子、面向數(shù)值型變異體的值域分析和設(shè)計(jì)實(shí)現(xiàn)了高度可擴(kuò)展的變異系統(tǒng)三個(gè)主要部分,并對(duì)整體檢測(cè)效果進(jìn)行了實(shí)驗(yàn)。此外,故障定位也是測(cè)試總體流程中承上啟下重要的一環(huán),現(xiàn)有基于程序執(zhí)行頻譜的方法,受偶然正確性用例等影響,而基于變異的故障定位方法則可以避免這一類噪音的影響。本文提出一種基于變異測(cè)試的去算子敏感性的故障定位方法。本論文依托國家自然科學(xué)基金重大研究計(jì)劃“代碼自動(dòng)化覆蓋測(cè)試的關(guān)鍵技術(shù)研究與系統(tǒng)研發(fā)”(課題編號(hào):91318301)、國家自然科學(xué)基金項(xiàng)目“基于抽象內(nèi)存模型的復(fù)雜類型測(cè)試用例生成方法研究”(課題編號(hào):61202080)、國家高技術(shù)研究發(fā)展計(jì)劃(863計(jì)劃)“網(wǎng)構(gòu)化軟件協(xié)同生產(chǎn)和運(yùn)行演化集成平臺(tái)及服務(wù)環(huán)境”(課題編號(hào):2012AA011201)和中國博士后科學(xué)基金(2015M581032)開展研究。本文將變異測(cè)試這一有效的測(cè)試方法,分別結(jié)合到高故障檢測(cè)和故障定位兩個(gè)測(cè)試領(lǐng)域。本文以提升高故障檢測(cè)率方法的效率和精度、提升基于變異的故障定位的精度為目標(biāo),具體研究?jī)?nèi)容包括:(1)基于程序上下文的冗余變異體選擇方法高故障檢測(cè)率方法的目標(biāo)是尋找一個(gè)小的變異體集合,該集合相對(duì)覆蓋用例集是難測(cè)的。但變異測(cè)試可以生成海量的變異體,會(huì)大大提升測(cè)試成本和分析難度。因此,高故障檢測(cè)率方法首先要去除冗余變異體,來降低測(cè)試成本。該部分工作貢獻(xiàn)有:本文提出了一種基于程序上下文的冗余變異體選擇方法,來降低變異測(cè)試成本。針對(duì)程序中的順序語句所產(chǎn)生的變異體,基于故障的可達(dá)-感染-傳播模型,提出了使用區(qū)間抽象域來表示程序狀態(tài),通過區(qū)間運(yùn)算判斷變異體之間冗余關(guān)系的算法;針對(duì)程序中的條件語句,基于謂詞故障層級(jí),分別給出了面向簡(jiǎn)單謂詞和復(fù)合謂詞的冗余變異體選擇算法。并對(duì)這兩種算法對(duì)冗余變異體的判定效果進(jìn)行了分析,最后給出了在分層抽樣背景下,非冗余變異體生成的約束邊界條件。對(duì)Siemens和開源項(xiàng)目等共8個(gè)工程進(jìn)行了實(shí)驗(yàn),并與隨機(jī)選擇法進(jìn)行了對(duì)比。結(jié)果表明,本文所提方法在減少變異測(cè)試時(shí)間成本的同時(shí),可以保持較高的變異得分。(2)變異分析中基于仿射運(yùn)算的變異體值范圍分析方法高故障檢測(cè)率方法將對(duì)非冗余變異體進(jìn)行分析,選取難測(cè)故障集,分析過程涉及變異分析和變異測(cè)試用例生成等。其中,對(duì)數(shù)值型變異體的分析是一個(gè)重要的環(huán)節(jié)。這是因?yàn)樵趪、航天、金融等關(guān)鍵領(lǐng)域所使用的計(jì)算機(jī)軟件中,許多物理屬性是通過數(shù)值變量來描述的,一些核心業(yè)務(wù)也是通過對(duì)這些變量進(jìn)行數(shù)值計(jì)算來完成的。為尋找這些程序中難測(cè)故障,就需要對(duì)數(shù)值變量進(jìn)行分析,計(jì)算結(jié)果的精度會(huì)直接影響高故障檢測(cè)率方法的準(zhǔn)確度。目前變異測(cè)試已有研究并未對(duì)數(shù)值型變異體采取優(yōu)化分析,只是按字表含義進(jìn)行簡(jiǎn)單的值域劃分;或是使用了初級(jí)的精度不高的區(qū)間運(yùn)算,嚴(yán)重影響了整體精度。該部分工作貢獻(xiàn)有:本文在基于路徑的程序分析背景下,結(jié)合變異測(cè)試的自身特點(diǎn),使用精度更高的仿射運(yùn)算來代替區(qū)間運(yùn)算,給出了一種基于仿射運(yùn)算的變異體值范圍分析方法,給出了抽象域的定義、抽象語句的操作并描述了所支持的具體語義。提出了具體程序語句的預(yù)處理算法、具體語義向抽象語義的轉(zhuǎn)化和變異約束的處理及仿射運(yùn)算規(guī)則等。該方法作為變異測(cè)試/分析的前端處理模塊,是難測(cè)故障分析的基礎(chǔ),是數(shù)值型難測(cè)故障分析的前置條件,可為其提供更加緊湊精確的輸入域,以提升變異測(cè)試/分析的總體精度。此外,為驗(yàn)證本文方法整體的高故障檢測(cè)率,進(jìn)行了兩組實(shí)驗(yàn),分別使用了開源的TCASP和5個(gè)benchmark函數(shù),實(shí)驗(yàn)結(jié)果表明:本文方法對(duì)條件型變異體,最高可以檢測(cè)傳統(tǒng)覆蓋方法無法檢測(cè)的故障的93.8%。對(duì)數(shù)值型變異體,平均可以檢測(cè)78.5%傳統(tǒng)覆蓋方法無法檢測(cè)的故障。(3)去算子類型敏感性的基于變異測(cè)試的故障定位方法隨著變異測(cè)試研究的不斷深入,人們發(fā)現(xiàn)除其自身的高故障檢測(cè)率,和其他測(cè)試領(lǐng)域結(jié)合仍產(chǎn)生了不錯(cuò)的效果,如基于變異的故障定位等。基于變異的故障定位作為一種新出現(xiàn)的軟件故障定位方法,相比基于程序頻譜的定位方法,一定程度上克服了偶然正確用例帶來的噪音問題,但現(xiàn)有的基于變異的故障定位未考慮變異算子類型敏感性問題,即隨機(jī)使用算子會(huì)導(dǎo)致結(jié)果有很大的波動(dòng)。該部分工作貢獻(xiàn)有:為提升基于變異的故障定位效果,本文給出一種精度更高的基于變異測(cè)試的故障定位方法。具體的,針對(duì)關(guān)系變異算子、邏輯變異算子和值相關(guān)變異算子分別提出了算子選擇算法。這種針對(duì)程序上下文進(jìn)行的變異算子選擇方法,可以一定程度上緩解使用隨機(jī)算子所帶來的定位不準(zhǔn)確問題。使用兩組疑似度計(jì)算公式對(duì)六個(gè)SIR開源程序和11個(gè)Linux實(shí)際程序進(jìn)行了實(shí)驗(yàn),結(jié)果表明本文所提方法可以緩解隨機(jī)算子帶來的算子類型敏感性問題,提升基于變異測(cè)試的故障定位方法的定位精度。(4)具有高可擴(kuò)展性的變異測(cè)試系統(tǒng)為支持上述高故障檢測(cè)率和基于變異的故障定位方法,設(shè)計(jì)實(shí)現(xiàn)了一款具有高可擴(kuò)展性的變異測(cè)試系統(tǒng)。該部分工作貢獻(xiàn)有:本系統(tǒng)針對(duì)現(xiàn)有C語言變異測(cè)試工具的算子類型不易擴(kuò)充、自動(dòng)化程度較低、對(duì)實(shí)際工程支持有限等問題進(jìn)行研發(fā),具體由故障注入、故障模型、批量執(zhí)行與結(jié)果分析四個(gè)模塊組成。使用自然的抽象語法樹結(jié)構(gòu)來表示變異體,具有高度的可擴(kuò)展性;給出了針對(duì)循環(huán)體、字符串函數(shù)、數(shù)學(xué)計(jì)算函數(shù)和復(fù)雜數(shù)據(jù)結(jié)構(gòu)的變異算子擴(kuò)展方法,并可自定義更為豐富的變異算子,擴(kuò)大變異測(cè)試的故障檢測(cè)范圍。使用實(shí)際開源項(xiàng)目中的程序,和其他故障注入工具進(jìn)行實(shí)驗(yàn)對(duì)比,本系統(tǒng)具有更佳的測(cè)試效果。
【學(xué)位單位】:北京郵電大學(xué)
【學(xué)位級(jí)別】:博士
【學(xué)位年份】:2018
【中圖分類】:TP311.53
【部分圖文】:
試、嵌入式軟件測(cè)試、Web應(yīng)用測(cè)試、移動(dòng)APP軟件測(cè)試和云計(jì)算應(yīng)逡逑用測(cè)試、大數(shù)據(jù)應(yīng)用測(cè)試和人工智能應(yīng)用測(cè)試。逡逑具體的如圖1-1所示。但也要注意軟件測(cè)試是一個(gè)發(fā)展迅速的研宄領(lǐng)域,新逡逑的技術(shù)層出不窮,本圖只能孔窺一二。逡逑2逡逑

tjv邋m邋mi邋c邐m邋ia邋m邋ijv逡逑圖1-1軟件測(cè)試研究領(lǐng)域逡逑1.2研究原因逡逑1.2.1高故障檢測(cè)率相關(guān)問題逡逑上述經(jīng)典的覆蓋測(cè)試方法可以一定程度上檢測(cè)出程序中的故障,但存在檢測(cè)逡逑能力有限等不足之處。逡逑據(jù)相關(guān)實(shí)驗(yàn)和工程經(jīng)驗(yàn),滿足語句、分支準(zhǔn)則的用例集只能檢測(cè)出大約80%逡逑故障,約苻20%故障是無法檢測(cè)出來的[1]。如下例:只打川例&=6時(shí),才可以檢逡逑測(cè)該故障。如{a=0;a=l邋6}雖然滿足該語句的100%分支覆蓋,但無法檢測(cè)出該故逡逑障。高故障檢測(cè)率方法中,稱這類故障為“難測(cè)故障”。逡逑表1-1邐程序例子及其生成的變異體逡逑邐源程序邐W邐逡逑邐a<6邐邋a<=6逡逑而另一方面,和經(jīng)典的測(cè)試方法相比,變異測(cè)試是一種基于故障的測(cè)試方法,逡逑具有更高的故障檢測(cè)能力。通過選擇變異算子集合,變異測(cè)試可以模擬一些“特逡逑殊”或“難測(cè)”的故障

邐北京郵電大學(xué)工學(xué)博士學(xué)位論文邐逡逑面向C語言的變異測(cè)試系統(tǒng),該系統(tǒng)同時(shí)也是前述章節(jié)的支持平臺(tái)。第七章對(duì)逡逑前文進(jìn)行了總結(jié)并展望了未來工作。各章節(jié)組織架構(gòu)圖如下:逡逑
【相似文獻(xiàn)】
相關(guān)期刊論文 前10條
1 陳勁林,楊士元,胡東成;考慮故障檢測(cè)率的可維修 k/n(G)系統(tǒng)的可靠性研究[J];清華大學(xué)學(xué)報(bào)(自然科學(xué)版);1998年03期
2 蘇明;張斌;;基于外場(chǎng)數(shù)據(jù)的飛機(jī)PHM系統(tǒng)測(cè)試性評(píng)估方法[J];電子技術(shù)與軟件工程;2017年16期
3 溫王榮;;通訊設(shè)備的可測(cè)試性與可靠性分析[J];科技資訊;2011年13期
4 馬羚;李海軍;王成剛;楊智勇;;考慮換件維修代價(jià)的測(cè)試優(yōu)化選擇[J];儀器儀表學(xué)報(bào);2015年02期
5 孫智;孫建紅;李冰月;張雪楓;;基于分層多信號(hào)流圖的飛機(jī)空調(diào)系統(tǒng)故障診斷[J];振動(dòng).測(cè)試與診斷;2018年01期
6 任江濤;蔡遠(yuǎn)文;史建偉;邢曉辰;;基于馬田系統(tǒng)的設(shè)備健康監(jiān)測(cè)技術(shù)研究[J];計(jì)算機(jī)測(cè)量與控制;2012年03期
7 馮康;;基于試驗(yàn)的試飛階段檢測(cè)率驗(yàn)證模型研究[J];飛行力學(xué);2015年04期
8 蘇林;尚朝軒;連光耀;王寶龍;;基于故障檢測(cè)率的主元個(gè)數(shù)確定方法[J];計(jì)算機(jī)測(cè)量與控制;2011年08期
9 郭基聯(lián);邵帥;虞健飛;;飛機(jī)PHM系統(tǒng)故障診斷能力外場(chǎng)驗(yàn)證模型[J];空軍工程大學(xué)學(xué)報(bào)(自然科學(xué)版);2016年03期
10 代西超;南建國;黃雷;黃金科;張超;;基于改進(jìn)遺傳模擬退火算法的測(cè)試優(yōu)化選擇[J];空軍工程大學(xué)學(xué)報(bào)(自然科學(xué)版);2016年02期
相關(guān)會(huì)議論文 前2條
1 耿少鋒;;關(guān)于測(cè)試性指標(biāo)分配方法的思考[A];'2010系統(tǒng)仿真技術(shù)及其應(yīng)用學(xué)術(shù)會(huì)議論文集[C];2010年
2 張士剛;胡政;羅德明;陳穎;羅旭;;基于多信號(hào)模型的某慣測(cè)組合測(cè)試性分析與改進(jìn)[A];2008中國儀器儀表與測(cè)控技術(shù)進(jìn)展大會(huì)論文集(Ⅱ)[C];2008年
相關(guān)博士學(xué)位論文 前3條
1 錢茛南;高故障檢測(cè)率與故障定位技術(shù)研究[D];北京郵電大學(xué);2018年
2 雷華軍;電子系統(tǒng)測(cè)試方案優(yōu)化設(shè)計(jì)理論與關(guān)鍵技術(shù)研究[D];電子科技大學(xué);2015年
3 朱敏;電子系統(tǒng)內(nèi)建自測(cè)試技術(shù)研究[D];哈爾濱工業(yè)大學(xué);2010年
相關(guān)碩士學(xué)位論文 前10條
1 陳言;農(nóng)田灌溉系統(tǒng)關(guān)鍵裝置分布及性能檢測(cè)[D];黑龍江八一農(nóng)墾大學(xué);2018年
2 徐雯;基于事件驅(qū)動(dòng)軟件的混合測(cè)試準(zhǔn)則[D];上海師范大學(xué);2014年
3 張荷;基于PU學(xué)習(xí)的軟件故障檢測(cè)方法研究[D];西北農(nóng)林科技大學(xué);2015年
4 RUKUNDO Olivier;基于蟻群算法的模擬電路測(cè)試模式優(yōu)化[D];華中科技大學(xué);2009年
5 楊興霽;系統(tǒng)可測(cè)性分析與輔助設(shè)計(jì)軟件總體設(shè)計(jì)及關(guān)鍵模塊實(shí)現(xiàn)[D];電子科技大學(xué);2011年
6 楚向磊;降低虛警的故障模糊聚類方法研究[D];南京航空航天大學(xué);2007年
7 廖恒;基于多信號(hào)模型的系統(tǒng)可測(cè)性設(shè)計(jì)分析研究與實(shí)現(xiàn)[D];電子科技大學(xué);2016年
8 蔣春萍;NHPP類軟件可靠性度量方法研究[D];蘭州理工大學(xué);2010年
9 蔡堅(jiān);計(jì)算機(jī)硬件電路可測(cè)試性設(shè)計(jì)與自動(dòng)測(cè)試的實(shí)現(xiàn)[D];西北工業(yè)大學(xué);2003年
10 呂珊珊;某電子控制系統(tǒng)自動(dòng)測(cè)試系統(tǒng)開發(fā)及SRAM內(nèi)建測(cè)試方法研究[D];北京交通大學(xué);2017年
本文編號(hào):
2807583