[發(fā)明專利]一種基于相對冗余測試集約簡的軟件缺陷定位方法無效
| 申請?zhí)枺?/td> | 201010206404.8 | 申請日: | 2010-06-23 |
| 公開(公告)號: | CN101866316A | 公開(公告)日: | 2010-10-20 |
| 發(fā)明(設(shè)計)人: | 張鑫;顧慶;莊元;陳道蓄 | 申請(專利權(quán))人: | 南京大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 210093 江蘇省*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 相對 冗余 測試 集約 軟件 缺陷 定位 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及軟件自動化測試中的缺陷定位方法,特別涉及存在大量測試用例的情況下,為了有效降低測試成本,在保持原有語句塊覆蓋程度的基礎(chǔ)上對測試集進行約簡;為避免大量測試信息的丟失導(dǎo)致缺陷定位效果的下降,繼而通過添加部分冗余測試用例到約簡后得到的代表集中來保持或提高缺陷定位效果。
背景技術(shù)
隨著現(xiàn)代大規(guī)模軟件版本不斷更迭,測試集的規(guī)模也變得龐大,軟件測試的成本也隨之上升。測試集約簡技術(shù)則被考慮用來解決此類問題,它可以找到原測試集中規(guī)模更小的一個子集,且能滿足原始的測試需求,如語句塊覆蓋程度,分支覆蓋程度等,從而大大降低了軟件測試的成本。
然而傳統(tǒng)的測試集約簡技術(shù)考慮的往往是單一的測試需求,所以當大部分測試用例被約簡掉后,附加的有用的測試信息就丟失了。而缺陷定位技術(shù)就是一個基于統(tǒng)計的使用所有測試用例的測試信息(包括測試用例通過與否和測試用例的執(zhí)行軌跡)幫助程序員定位缺陷所在位置的新興技術(shù)。因此,缺陷定位技術(shù)會受測試集約簡的影響而變得不準確。軟件缺陷定位方法目前被大量應(yīng)用于大型軟件系統(tǒng)的集成測試、系統(tǒng)測試、驗收測試和用戶問題報告分析等階段和工作中。隨著現(xiàn)代大規(guī)模軟件日益復(fù)雜,自動化軟件測試的使用越來越廣泛。自動化測試能夠產(chǎn)生大量的測試用例,并且能夠記錄測試用例的執(zhí)行信息,因此在修復(fù)缺陷前存在著大量的測試數(shù)據(jù)可以利用。傳統(tǒng)的調(diào)試方法只是對未通過的單個測試用例進行缺陷跟蹤,這樣在自動化測試的環(huán)境下一方面很難同時對多個未通過的測試用例進行跟蹤,另一方面只考慮未通過的測試用例而忽略了通過的測試用例所能提供的信息。軟件缺陷定位方法可以在自動化測試環(huán)境下綜合利用測試執(zhí)行信息來定位軟件缺陷,提高軟件的質(zhì)量。
基于執(zhí)行軌跡的軟件缺陷定位方法可通過對測試數(shù)據(jù)進行分析,自動定位軟件中存在的缺陷。該方法需要收集和整理測試用例執(zhí)行信息,通過對執(zhí)行軌跡進行比對計算代碼的被懷疑程度(懷疑率),開發(fā)者可以按照懷疑率從大到小的順序?qū)Ρ粦岩纱a進行審查,減少移除缺陷必須審查的代碼數(shù)量和范圍,提高查找缺陷的效率。但已有的方法通常單獨考慮通過和未通過的測試用例,并沒有對測試用例進行篩選,不適于大型軟件系統(tǒng)的缺陷定位。
綜上所述,如何有效的約簡測試集規(guī)模并同時提高或至少保持缺陷定位效果成為軟件調(diào)試領(lǐng)域的一個熱點問題。由于代表集規(guī)模往往很小,適當?shù)脑黾訙y試用例并不會對測試成本造成太大影響。可以考慮從冗余集中返回部分測試用例來改善語句塊覆蓋程度的平衡性,從而在不影響測試集約簡的前提下,能夠保持或提高缺陷定位效果。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對傳統(tǒng)測試集約簡算法導(dǎo)致缺陷定位效果下降,提出一種基于相對冗余測試集約簡的缺陷定位方法,該方法在保持測試低成本的前提下可以保持或提高缺陷定位的效果。
為實現(xiàn)上所述目的,本發(fā)明采用如下的步驟:
1)對源程序進行插樁,執(zhí)行測試用例,收集測試用例的執(zhí)行信息,包括執(zhí)行結(jié)果和執(zhí)行軌跡。
收集和整理測試用例的執(zhí)行結(jié)果并生成執(zhí)行軌跡,其中執(zhí)行軌跡可以矩陣的形式表示,每列代表一個測試用例所執(zhí)行過的語句塊情況,1表示執(zhí)行過,0表示沒有執(zhí)行;每行代表一個語句塊被所有測試用例的執(zhí)行情況;
2)根據(jù)各個測試用例對源代碼的覆蓋情況,對整個測試集進行約簡;約簡過程為:設(shè)整個測試集為T,使用HGS約簡算法對所有測試用例進行約簡,得到兩個測試集合,即代表集REP和冗余集RED;其中冗余集RED又可劃分為高度冗余集TIE和候選集CAN,在候選集CAN中選擇加入代表集REP的測試用例組成的集合記為關(guān)鍵集KEY,得到新的代表集相對冗余集REL-REP。
根據(jù)各個測試用例的代碼覆蓋情況選擇數(shù)目盡可能少的測試用例來滿足原有的覆蓋需求,本發(fā)明在該步驟中使用經(jīng)典的HGS算法進行測試集約簡,其原理是根據(jù)測試用例的相對重要性并優(yōu)先保留重要性較高的測試用例,直到達到原測試集的代碼覆蓋程度。
3)最后根據(jù)相對冗余集REL-REP計算語句塊的懷疑率,按照其大小對語句塊排序生成缺陷定位報告。
根據(jù)新得到的代表集中的測試用例的執(zhí)行結(jié)果和執(zhí)行軌跡計算語句塊懷疑率,本發(fā)明在該步驟中使用經(jīng)典的Tarantula方法進行缺陷定位,能夠有效利用通過和未通過的測試用例的執(zhí)行信息取得較好的定位效果。
上述步驟2)中從候選集CAN中選擇測試用例的步驟為:根據(jù)代表集REP的情況從冗余集RED中選擇關(guān)鍵集KEY,其中且|KEY|<<|RED|。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京大學,未經(jīng)南京大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010206404.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種治療陽萎的中藥組合物
- 下一篇:2-氨基-5-溴異煙酸的合成方法
- 一種針對ASIC設(shè)計中網(wǎng)表邏輯冗余的優(yōu)化方法及系統(tǒng)
- 可自動恢復(fù)冗余的冗余控制系統(tǒng)及其冗余自動恢復(fù)方法
- 一種具備冗余接口的列控車載設(shè)備
- 可自動恢復(fù)冗余的冗余控制系統(tǒng)
- 一種監(jiān)測冗余網(wǎng)絡(luò)完整性的方法和冗余裝置
- 冗余修正電路及應(yīng)用其的冗余修正方法
- N:1有狀態(tài)應(yīng)用網(wǎng)關(guān)冗余方法、系統(tǒng)和備用服務(wù)網(wǎng)關(guān)
- 冗余網(wǎng)絡(luò)中的信息共享方法及裝置、計算機存儲介質(zhì)
- 帶反饋校正的冗余結(jié)構(gòu)
- 一種冗余制動單元及車輛





