[發明專利]一種去除重復變更的軟件變更級缺陷預測方法在審
| 申請號: | 202010917981.1 | 申請日: | 2020-09-03 |
| 公開(公告)號: | CN112148595A | 公開(公告)日: | 2020-12-29 |
| 發明(設計)人: | 許海濤;周成成;段瑞豐;林福宏;周賢偉 | 申請(專利權)人: | 北京科技大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京市廣友專利事務所有限責任公司 11237 | 代理人: | 張仲波 |
| 地址: | 100083*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 去除 重復 變更 軟件 缺陷 預測 方法 | ||
本發明提供一種去除重復變更的軟件變更級缺陷預測方法,屬于軟件缺陷預測技術領域。所述方法包括:提取項目倉庫中所有分支的變更數據;對提取到的變更數據進行標注,標注信息包括:缺陷變更和非缺陷變更;去除提取到的變更數據中的重復變更;計算去除重復變更后的變更數據的變更級軟件缺陷預測特征;根據計算得到的變更級軟件缺陷預測特征及標注信息,訓練缺陷預測模型,以便訓練好的缺陷預測模型判斷待預測的變更數據是否是缺陷變更。采用本發明,能夠提升軟件變更級缺陷預測模型的預測性能。
技術領域
本發明涉及軟件缺陷預測技術領域,特別涉及是指一種去除重復變更的軟件變更級缺陷預測方法。
背景技術
近年來,得益于計算機技術的飛速發展,軟件產業的規模也越來越大,同時也給軟件的高質量開發帶來巨大的挑戰。軟件缺陷已經成為影響軟件質量的首要因素,軟件缺陷預測是保證軟件質量的重要活動,也是軟件維護的重要手段。與傳統的軟件缺陷預測技術相比,變更級缺陷預測技術具有細粒度、即時性、易追溯等優勢。可以滿足現代軟件生產高度行為交互、大規模跨地域協同開發方式的要求。
變更級缺陷預測技術是指預測開發者每次提交的代碼變更是否存在缺陷的技術。具體體現在這種預測技術可以在開發者提交一次代碼變更后即對變更代碼進行缺陷分析,預測其存在缺陷的可能性。軟件項目歷史變更數據是變更級缺陷預測技術的數據源。然而由于軟件版本控制系統的分支特性,在軟件項目倉庫中會存在大量重復變更,重復變更指的是開發人員在某個分支上可以重新實現相似功能的變更。現有研究表明,重復變更會影響變更級缺陷預測特征的計算,導致軟件缺陷預測模型性能下降。
發明內容
本發明實施例提供了去除重復變更的軟件變更級缺陷預測方法,通過去除重復變更,能夠提升軟件變更級缺陷預測模型的預測性能。所述技術方案如下:
一方面,提供了一種去除重復變更的軟件變更級缺陷預測方法,該方法應用于電子設備,該方法包括:
提取項目倉庫中所有分支的變更數據;
對提取到的變更數據進行標注,標注信息包括:缺陷變更和非缺陷變更;
去除提取到的變更數據中的重復變更;
計算去除重復變更后的變更數據的變更級軟件缺陷預測特征;
根據計算得到的變更級軟件缺陷預測特征及標注信息,訓練缺陷預測模型,以便訓練好的缺陷預測模型判斷待預測的變更數據是否是缺陷變更。
進一步地,所述提取項目倉庫中所有分支的變更數據包括:
挖掘項目倉庫,從中析取代碼變更元信息,按照元信息中代碼變更的時間順序建立代碼前后變更關系圖,根據建立的代碼前后變更關系圖提取項目倉庫中所有分支的變更數據。
進一步地,所述對提取到的變更數據進行標注包括:
掃描遍歷所有存儲在版本控制系統中的變更數據,根據變更日志進行關鍵詞分析,搜索到所有修復缺陷代碼的變更;
利用版本控制系統的diff命令識別所述修復缺陷代碼的變更的代碼行,去除噪音,識別到缺陷代碼行;
利用版本控制系統的annotate命令回溯代碼變更提交歷史,識別出引入所述缺陷代碼行的變更,將該變更標注為缺陷變更,并將缺陷變更以外的其余變更標注為非缺陷變更。
進一步地,所述去除提取到的變更數據中的重復變更包括:
對提取到的變更數據進行遍歷與比較,若兩個變更滿足以下3個條件:
條件1,兩個變更在不同的分支上;
條件2,兩個變更修改了相同的文件;
條件3,兩個變更修改了相同的代碼;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京科技大學,未經北京科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010917981.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種高精密油管快速旋切機
- 下一篇:一種自動化包裝箱制作上下料設備





