[發明專利]一種基于覆蓋的軟件缺陷定位技術的在線評測與實驗平臺及方法有效
| 申請號: | 201410563408.X | 申請日: | 2014-10-21 |
| 公開(公告)號: | CN104239219A | 公開(公告)日: | 2014-12-24 |
| 發明(設計)人: | 張龍;張震宇;孫文輝;劉譽臻 | 申請(專利權)人: | 中國科學院軟件研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京科迪生專利代理有限責任公司 11251 | 代理人: | 成金玉;孟卜娟 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 覆蓋 軟件 缺陷 定位 技術 在線 評測 實驗 平臺 方法 | ||
技術領域
本發明涉及一種基于覆蓋的軟件缺陷定位技術的在線評測與實驗平臺及方法,屬于軟件測試技術領域。
背景技術
軟件調試,是對程序錯誤進行定位和修正的過程,而對錯誤進行定位又是軟件調試中最耗時和最困難的一步。為了降低錯誤定位的代價,研究人員提出了基于覆蓋的錯誤定位方法。其主要思想是通過獲取測試過程中程序實體的覆蓋信息以及每個測試用例相對應的測試結果,然后根據這些信息構造公式來計算該實體的錯誤可疑度值,來表示該實體與錯誤的關聯程度,然后根據可疑度值的大小來對語句進行排序,生成可疑度排位表,進而指導程序員進行錯誤定位。程序實體可以是語句、分支、路徑、語句塊等,覆蓋信息用來記錄程序實體在具體某個成功或失敗測試用例下的動態行為,測試結果用來記錄每個測試用例成功或者失敗。
給定一個含有n條語句的程序P=<S1,S2,S3,...,Sn>,測試用例T={t1,t2,…,tm}。在軟件測試過程中,我們可以獲取程序實體在每個成功和失敗測試用例下執行與否的信息,記為其中為第i個實體被成功用例執行過的次數,為失敗用例執行次數,為成功用例未覆蓋數,為失敗用例未覆蓋數。一般認為,對于錯誤所在的程序單元,應較高而則應較低,根據某些啟發式策略,利用上述的變量構造可疑度計算公式,如Tarantula(以算法發明人命名,暫無中文名稱),即可求每個程序實體的可疑度值來表示該語句與錯誤的關聯程度。由此計算的可疑度進行降序排列,可獲得可疑度排位表。在排位表中從上到下順序查找錯誤語句所在的位置,該位置與總行數之比即本次定位的效率。
基于這種思想的可疑度計算模型有很多,相關的對比研究也不斷開展,然而還沒有一套實驗平臺的存在來對這些實驗工作進行統一。由于缺乏統一的實驗平臺,研究人員在實驗過程中不得不做大量的重復性的工作,同時不同的實驗設置也會觀測到不同的實驗結果,這些都會妨礙實驗的進行和實驗結論的可重現性。
發明內容
本發明技術解決問題:克服現有技術的不足,提供一種基于覆蓋的軟件缺陷定位技術的在線評測與實驗平臺及方法,將測試用例的執行與可疑度排位計算相分離,并實現了這一平臺,極大簡化實驗流程,縮短實驗周期的自動化在線評測。
本發明技術解決方案:基于覆蓋的軟件缺陷定位技術的在線評測與實驗平臺,包括:覆蓋信息采集模塊、程序信息存儲模塊、參數解析模塊、可疑度計算模塊、定位展示模塊等;
覆蓋信息采集模塊:對錯誤定位實驗中某些通用實驗對象程序及其測試用例,利用自動化測試腳本,對程序自動編譯執行并搜集執行過程中語句的覆蓋信息;從大量覆蓋信息中提取關鍵四元組,即每行或每塊代碼執行時被正確用例覆蓋數、被失敗用例覆蓋數、正確用例未覆蓋數和失敗用例未覆蓋數,并將四元組寫入覆蓋信息存儲模塊;
程序信息存儲模塊:程序信息包括兩方面內容,其一為程序自身名稱、行數、函數模塊結構及其對應測試用例數等靜態信息,采用數據庫存儲;其二為在程序執行過程中所得的覆蓋信息與成功或失敗等的動態信息,采用XML文件形式存儲,主要包括成功失敗列表和四元組列表,且支持下載;
參數解析模塊:本平臺為B/S結構,以URL方式調用,參數通過Get方式傳入;對用戶傳來的URL參數進行解析并配置可疑度計算條件,參數包括程序名、程序版本號、錯誤號、計算粒度和可疑度計算公式等;其中可疑度表示源代碼某部分出現錯誤的可疑程度值,該值依據相應概率模型計算得到,其計算公式即為本系統的主要評測對象;公式的輸入參數為程序覆蓋信息四元組;依據粒度為按代碼行、塊和函數三種單位計算可疑度;
可疑度計算模塊:根據參數解析模塊獲得的計算公式,從程序信息模塊中讀取程序基本信息及覆蓋信息,計算獲得代碼塊的可疑度值;
定位展示模塊:對每部分代碼按可疑度降序排列獲得排序表,并將錯誤所在部分的排序位置與總代碼數的比值作為本次排位的定位效率,將排序結果以XML格式用HTTP返回的形式為用戶展示;若以此對某程序所有版本的所有錯誤都進行定位,可生成折線圖反應總體定位效果,圖中行坐標為定位效率值,縱坐標為效率優于某值的實驗占總實驗的比例;
基于覆蓋的軟件缺陷定位技術的在線評測與實驗方法,實現步驟如下:
(1)對C語言的被測程序對象,利用GCC、gcov等工具編譯源代碼并由自動化腳本依次植入一個錯誤,自動運行程序及其每個測試用例,由diff工具判斷植入的錯誤是否導致輸出不同,依次確定該用例是否通過;同時生成.gcov文件,包含詳細的源代碼覆蓋信息,其中包含大量冗余,從中提取程序單元四元組,并以XML格式寫入文件;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院軟件研究所,未經中國科學院軟件研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410563408.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:數據儲存裝置及用于快閃存儲器的數據讀取方法
- 下一篇:一種V型椅





