[發(fā)明專利]一種按類組織執(zhí)行軌跡的面向?qū)ο蟪绦蛉毕荻ㄎ环椒?/span>無效
| 申請?zhí)枺?/td> | 201010187486.6 | 申請日: | 2010-06-01 |
| 公開(公告)號: | CN101901185A | 公開(公告)日: | 2010-12-01 |
| 發(fā)明(設(shè)計)人: | 顧慶;王新平;陳道蓄 | 申請(專利權(quán))人: | 南京大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 江蘇圣典律師事務(wù)所 32237 | 代理人: | 黃振華 |
| 地址: | 210093 江蘇省*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 組織 執(zhí)行 軌跡 面向 對象 程序 缺陷 定位 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及面向?qū)ο筌浖绦驕y試中的自動化輔助缺陷定位,特別涉及存在較多測試用例和大量測試記錄的情況下,有效組織和利用測試用例的執(zhí)行記錄,通過比對代碼塊覆蓋軌跡定位軟件程序中的缺陷位置。
背景技術(shù)
軟件產(chǎn)品的質(zhì)量和可靠性直接同軟件程序中隱含的缺陷數(shù)量相關(guān)。傳統(tǒng)手工的缺陷定位方法要求程序員熟悉軟件內(nèi)部結(jié)構(gòu),效率低下。隨著軟件測試自動化的普遍應(yīng)用,測試階段產(chǎn)生的大量測試信息都能被記錄下來。自動化的軟件缺陷定位技術(shù)可以充分利用這些信息來輔助定位軟件程序中的缺陷,提高軟件產(chǎn)品的質(zhì)量。
基于執(zhí)行軌跡的缺陷定位方法通過分析執(zhí)行通過和未通過的測試用例對被測程序的覆蓋記錄,以定位具有高懷疑率的缺陷位置。該方法不需要關(guān)于被測程序的預(yù)先知識,而且能和自動化測試緊密結(jié)合。該方法的缺陷定位效果與測試用例的選擇密切相關(guān),如果選擇的測試用例太少,那么計算的誤差較大,缺陷定位的效果較差;如果選擇的測試用例太多,存在大量不相干的測試用例,也會混淆缺陷定位的結(jié)果。在自動化測試環(huán)境下,存在大量的測試用例和測試記錄,有效的測試用例選擇方法能夠排除冗余測試用例的干擾,提高缺陷定位的效果。
在基于執(zhí)行軌跡塊相似度的軟件缺陷定位方法中,測試用例的執(zhí)行軌跡表示為一維向量,利用向量余弦夾角判定測試用例間的相似度;然后分三種情況計算語句塊的懷疑率。該技術(shù)沒有考慮面向?qū)ο蟪绦蛑袦y試用例執(zhí)行軌跡分層組織的特點,計算懷疑率分多種情況,需要進(jìn)一步考慮懷疑率計算的一致性。
發(fā)明內(nèi)容
本發(fā)明的主要目的是針對自動化軟件缺陷定位方法面臨的大量測試記錄篩選問題和缺陷位置精確定位問題,提出一種按類組織執(zhí)行軌跡的面向?qū)ο筌浖绦蛉毕荻ㄎ环椒ǎ摲椒梢暂o助程序員快速定位軟件程序中的缺陷,提高缺陷定位的效率。
為實現(xiàn)上述目的,本發(fā)明采用如下的步驟:
1)首先對被測程序的代碼進(jìn)行插裝,執(zhí)行插裝后的被測程序;之后收集測試用例的執(zhí)行記錄,該執(zhí)行記錄的基本覆蓋單元是語句塊,被測程序視為語句塊集合;根據(jù)執(zhí)行記錄將測試用例按照通過與否分組;
2)整理測試用例的執(zhí)行記錄并組織測試用例執(zhí)行軌跡,按照類為單位將執(zhí)行軌跡劃分成不同的段,當(dāng)對于給定的某一類,測試用例執(zhí)行了該類,則執(zhí)行了該類的各測試用例是相似的,反之則不相似;
3)針對給定的語句塊,按類相似度選擇用于計算其懷疑率的測試用例,類相似度是指測試用例執(zhí)行到該語句塊所在的同一個類,即執(zhí)行到該類中的至少一個語句塊;
4)根據(jù)所選擇的測試用例執(zhí)行軌跡對該語句塊的覆蓋情況計算語句塊的懷疑率;
5)根據(jù)語句塊懷疑率排序提交缺陷定位報告,記錄每一個語句塊的代碼位置。
上述步驟2)中確認(rèn)測試用例執(zhí)行了給定類,指測試用例覆蓋該類,當(dāng)且僅當(dāng)該測試用例執(zhí)行到類中至少一個語句塊,又稱測試用例的執(zhí)行軌跡包含該類。
上述步驟3)的測試用例選擇具體步驟是:對于給定語句塊bj,找到語句塊所在的類,選擇覆蓋該類的所有測試用例,構(gòu)成語句塊的相關(guān)集S(bj),公式描述如下:
S(bj)={ti|δi(j)==1}。
上述步驟4)中所述的覆蓋情況分三種:
情況1,沒有未通過的測試用例執(zhí)行該語句塊,此時語句塊bj懷疑率sus(bj)為0;
情況2,只有未通過的測試用例執(zhí)行到該語句塊;
情況3,同時有通過和未通過的測試用例執(zhí)行到該語句塊。
當(dāng)按情況2和情況3計算語句塊懷疑率,此時NSf(bj)是bj相關(guān)集S(bj)中未通過的測試用例總數(shù);NSp(bj)是bj相關(guān)集S(bj)中通過的測試用例總數(shù);Nf(bj)是覆蓋語句塊bj但未通過的測試用例總數(shù);Np(bj)是覆蓋語句塊bj且通過的測試用例總數(shù);按下述公式計算懷疑率sus(bj),其中對于情況2,Rp(bj)值為0,
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京大學(xué),未經(jīng)南京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010187486.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 以注射方式執(zhí)行死刑的自動執(zhí)行車的執(zhí)行床
- 過程執(zhí)行裝置、過程執(zhí)行方法以及過程執(zhí)行程序
- 用以執(zhí)行跳舞電子游戲的執(zhí)行系統(tǒng)及其執(zhí)行方法
- 策略執(zhí)行系統(tǒng)及其執(zhí)行方法
- 腳本執(zhí)行系統(tǒng)和腳本執(zhí)行方法
- 命令執(zhí)行設(shè)備、命令執(zhí)行系統(tǒng)、命令執(zhí)行方法以及命令執(zhí)行程序
- 程序執(zhí)行裝置、程序執(zhí)行系統(tǒng)以及程序執(zhí)行方法
- 處理執(zhí)行設(shè)備和由該處理執(zhí)行設(shè)備執(zhí)行的方法
- 有序任務(wù)的執(zhí)行方法、執(zhí)行裝置和執(zhí)行系統(tǒng)
- 執(zhí)行器(閥門執(zhí)行器)





