版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、傳統(tǒng)調(diào)試技術(shù)傳統(tǒng)調(diào)試技術(shù)軟件開發(fā)者使用的典型的軟件調(diào)試技術(shù)主要有兩種:(1)在程序中插入打印語(yǔ)句使得程序輸出用以被分析的附加信息可以對(duì)程序的運(yùn)行時(shí)狀態(tài)有一個(gè)粗略了解。一個(gè)通常的做法是插入打印語(yǔ)句以指示某個(gè)控制條件到達(dá)了某個(gè)特定程序點(diǎn)另一個(gè)通常做法是插入打印語(yǔ)句以輸出變量的值。當(dāng)程序被執(zhí)行的時(shí)候程序生成可以被開發(fā)者檢查的附加調(diào)試輸出。缺點(diǎn):缺點(diǎn):調(diào)試輸出可能相當(dāng)?shù)拇蟠蛴≌Z(yǔ)句的放置和輸出的檢查都是非組織和臨時(shí)的分析和放置位置也通常是基于直覺
2、的(2)另一種技術(shù)是使用符號(hào)調(diào)試器。一個(gè)符號(hào)調(diào)試器是一個(gè)用來(lái)調(diào)試其他程序的計(jì)算機(jī)程序符號(hào)調(diào)試器支持例如斷點(diǎn)、單步跳過(guò)、狀態(tài)修改等。斷點(diǎn)允許程序員停止在某一個(gè)特定的程序點(diǎn)以檢查當(dāng)前狀態(tài)單步跳過(guò)允許程序員前進(jìn)到當(dāng)前斷點(diǎn)之后的下一條指令并且在那條指令設(shè)置新的斷點(diǎn)許多調(diào)試器還允許程序員不僅能夠查看變量的當(dāng)前狀態(tài)還能改變它的值然后繼續(xù)執(zhí)行。通常地開發(fā)者會(huì)在他感覺可能是程序錯(cuò)誤位置的地方設(shè)置斷點(diǎn)然后他會(huì)檢查斷點(diǎn)處的狀態(tài)他還可以單步跳過(guò)程序查看每一條
3、語(yǔ)句在每一個(gè)執(zhí)行時(shí)的狀態(tài)變化。主要的定位方法主要的定位方法故障定位技術(shù)有很多種但是根據(jù)定位故障的過(guò)程中“是否需要運(yùn)行軟件”的準(zhǔn)則可以將故障定位技術(shù)分為以下兩類:(1)基于靜態(tài)分析的故障定位技術(shù)(SABFL):靜態(tài)方法不用運(yùn)行軟件而是依據(jù)程序語(yǔ)言的語(yǔ)法和語(yǔ)義靜態(tài)地分析軟件結(jié)構(gòu)和程序?qū)嶓w之間的依賴關(guān)系以發(fā)現(xiàn)不符合系統(tǒng)約束的程序?qū)嶓w從而進(jìn)行故障定位。(2)基于測(cè)試的故障定位技術(shù)(TBFL):該方法首先需要設(shè)計(jì)測(cè)試用例然后運(yùn)行軟件程序最后根據(jù)軟
4、件程序的動(dòng)態(tài)執(zhí)行信息和輸出結(jié)果進(jìn)行故障定位。其典型思路是:將程序的失敗運(yùn)行和成功運(yùn)行進(jìn)行對(duì)比從而發(fā)現(xiàn)失敗運(yùn)行中的哪些點(diǎn)偏離了成功運(yùn)行找到的這些偏離點(diǎn)很有可能就是軟件故障位置所在。這些不同定位方法都采用了各自不同的運(yùn)行特征進(jìn)行對(duì)比。以下是基于測(cè)試的故障定位技術(shù):(一)基于距離度量的故障定位方法:(一)基于距離度量的故障定位方法:基本思想是:通過(guò)一定的距離計(jì)算方法從眾多的成功運(yùn)行中找出與失敗運(yùn)行最相近的一個(gè)成功運(yùn)行利用某一種度量方法來(lái)計(jì)算此
5、成功運(yùn)行與失敗運(yùn)行之間的差異值利用得出的最小差異值進(jìn)行故障定位。該技術(shù)大都是在源程序上運(yùn)行大量的測(cè)試用例并收集程序運(yùn)行過(guò)程中的覆蓋信息利用這些信息來(lái)進(jìn)行故障定位。此方法包括(1)DeltaDelta調(diào)試技術(shù)調(diào)試技術(shù)把一次程序執(zhí)行看做是一系列程序狀態(tài)的轉(zhuǎn)變(程序狀態(tài)可以理解為在程序執(zhí)行某個(gè)時(shí)刻出現(xiàn)的變量以及這些變量的取值)。程序從初始狀態(tài)開始執(zhí)行每執(zhí)行一步程序當(dāng)前狀態(tài)就會(huì)發(fā)生改變從當(dāng)前狀態(tài)轉(zhuǎn)換到下一個(gè)程序狀態(tài)如此進(jìn)行最后到達(dá)了個(gè)錯(cuò)誤的狀態(tài)
6、標(biāo)志著程序執(zhí)行失敗。每一個(gè)程序狀態(tài)都它的前一個(gè)狀態(tài)衍生而來(lái)但是可能只有一小部分狀態(tài)與計(jì)算下一個(gè)狀態(tài)是相關(guān)的為故障報(bào)告。它針對(duì)近鄰模型不能識(shí)別語(yǔ)句執(zhí)行順序的不足提出將語(yǔ)句執(zhí)行順序作為衡量執(zhí)行序列相似度的因素之一將某條語(yǔ)句的一個(gè)執(zhí)行實(shí)例看做一個(gè)事件那么每個(gè)運(yùn)行就可以看作是多個(gè)事件的執(zhí)行序列對(duì)失敗運(yùn)行的事件執(zhí)行序列和成功運(yùn)行的事件執(zhí)行序列進(jìn)行對(duì)齊比較操作得出這兩個(gè)運(yùn)行中分支走向不同的分支事件這就是Wang等人方法中使用的“差異”。還給出了定性
7、判斷任意兩個(gè)差異之間的大小的差異度量方法。根據(jù)最小差異選擇一個(gè)與失敗運(yùn)行最相似的成功運(yùn)行用二者之間的差異作為故障報(bào)告。優(yōu)點(diǎn):優(yōu)點(diǎn):對(duì)分支語(yǔ)句故障的定位效果比近鄰模型要好。缺點(diǎn):缺點(diǎn):對(duì)于賦值語(yǔ)句故障的定位效果卻不甚理想。當(dāng)程序故障并不包含在最小差異中時(shí)利用該方法進(jìn)行故障定位將得不到理想的效果。(二)基于排序的故障定位方法(二)基于排序的故障定位方法上面的方法的相同點(diǎn)在于:認(rèn)為程序中只有一部分語(yǔ)句是可疑的故障點(diǎn)賦予它們相同的故障可疑值認(rèn)為
8、應(yīng)該花費(fèi)同樣多的代價(jià)檢查這些可疑點(diǎn)。而另一類研究則認(rèn)為:程序中的每一部分都是可疑的故障點(diǎn)根據(jù)它們?cè)谶\(yùn)行時(shí)的參與度和表現(xiàn)不同賦予它們不同的故障可疑值然后將故障可疑值降序排列程序員按照排序由大到小檢查程序直至找到故障?;谂判虻墓收隙ㄎ环椒ǖ乃枷胧?通過(guò)分析程序的動(dòng)態(tài)運(yùn)行信息來(lái)進(jìn)行故障定位。它通常是比較兩類運(yùn)行(成功運(yùn)行和失敗運(yùn)行)中程序狀態(tài)特征的統(tǒng)計(jì)信息直接定位到故障語(yǔ)句。該技術(shù)的區(qū)別在于使用哪些程序運(yùn)行特征來(lái)進(jìn)行對(duì)比分析。目前常用的程序
9、實(shí)體主要有:語(yǔ)句和分支它們的主要載體是程序頻譜信息主要利用程序頻譜(信息來(lái)獲取程序?qū)嶓w的特征信息。利用這些信息來(lái)計(jì)算程序?qū)嶓w(語(yǔ)句或分支)的可疑度然后根據(jù)可疑度大小對(duì)被檢測(cè)的程序?qū)嶓w(語(yǔ)句或分支)進(jìn)行降序排序。開發(fā)人員在調(diào)試的過(guò)程中可以根據(jù)排序表從前至后始查找程序故障起到了一定的輔助作用。(1)TarantulaTarantula方法方法釆用的思想是:如果一條語(yǔ)句在失敗的執(zhí)行中出現(xiàn)的次數(shù)比在成功的執(zhí)行中出現(xiàn)的次數(shù)多的話那么該語(yǔ)句是故障語(yǔ)
10、句的可能性就比較大。試題的懷疑度具體算法如下:%f(e)(e)%p(e)%f(e)suspiciness??其中表示失效測(cè)試用例中執(zhí)行語(yǔ)句數(shù)失效測(cè)試用例的總數(shù)%p(e)%(e)f表示成功測(cè)試用例中執(zhí)行語(yǔ)句數(shù)成功測(cè)試用例的總數(shù)。Tarantula是目前大家公認(rèn)的最好的基于統(tǒng)計(jì)的故障定位方法。缺點(diǎn):缺點(diǎn):該方法要求兩種測(cè)試用例要能夠覆蓋盡可能多的代碼。此外Tarantula方法難以發(fā)現(xiàn)像賦值語(yǔ)句這樣的程序初始化錯(cuò)誤。也不能區(qū)分一個(gè)失效測(cè)試用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于故障傳播的軟件故障定位方法研究.pdf
- 基于頻譜的軟件多故障定位.pdf
- 基于并發(fā)Java程序切片的軟件故障定位.pdf
- 軟件故障定位度量的擴(kuò)展和實(shí)證研究.pdf
- 配電網(wǎng)故障定位系統(tǒng)中心站軟件.pdf
- 能量法故障定位中心站軟件設(shè)計(jì).pdf
- 基于多層次頻譜的軟件故障定位研究.pdf
- 電纜終端故障預(yù)警定位研究及軟件開發(fā).pdf
- 用于軟件故障定位的差異比較方法及其改進(jìn).pdf
- 基于程序語(yǔ)義的軟件故障定位技術(shù)研究.pdf
- 基于生物調(diào)和序列的軟件故障定位方法研究.pdf
- 基于數(shù)據(jù)挖掘的軟件故障定位技術(shù)研究.pdf
- 基于圖挖掘的軟件故障定位技術(shù)研究.pdf
- 軟件故障
- 基于依賴觀察矩陣的軟件故障定位技術(shù)研究.pdf
- 基于交叉矩陣統(tǒng)計(jì)的軟件故障定位方法的研究.pdf
- 基于執(zhí)行軌跡譜分段檢測(cè)的軟件故障定位研究.pdf
- 基于數(shù)據(jù)挖掘的軟件多故障定位與分析技術(shù).pdf
- 基于關(guān)鍵節(jié)點(diǎn)和可疑度的軟件故障定位方法研究.pdf
- 神經(jīng)網(wǎng)絡(luò)在軟件故障定位中的應(yīng)用研究.pdf
評(píng)論
0/150
提交評(píng)論