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