[發明專利]一種追蹤引入缺陷提交的方法、系統及設備在審
| 申請號: | 202110586956.4 | 申請日: | 2021-05-27 |
| 公開(公告)號: | CN113326189A | 公開(公告)日: | 2021-08-31 |
| 發明(設計)人: | 劉文港;張賀;楊嵐心;榮國平;邵棟 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 南京明杰知識產權代理事務所(普通合伙) 32464 | 代理人: | 張文杰 |
| 地址: | 210093 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 追蹤 引入 缺陷 提交 方法 系統 設備 | ||
本發明公開了一種追蹤引入缺陷提交的方法、系統及設備,根據代碼托管平臺提供的Api接口獲取項目的Issue列表;遍歷Issue列表獲取合入請求,獲取解決該Issue的提交;同步本地Git庫和遠程Git庫,使用本地庫獲取按時間倒序規則排序好提交的Sha值;遍歷修復缺陷的提交數組,對于其中的每一個提交,使用“show”命令獲取提交的具體改動行;使用“blame”命令根據改動文件路徑以及改動行獲取改動行的最近一次修改,改動行的最近一次修改所屬提交為嫌疑致陷提交;將嫌疑致陷提交的創建時間與對應Issue的創建時間對比,確定真正的致陷提交。實現了在軟件開發過程中根據代碼托管平臺和版本控制工具,準確識別引入缺陷的提交,方便了團隊的管理和對軟件質量的相關研究。
技術領域
本發明涉及軟件開發技術領域,具體為一種追蹤引入缺陷提交的方法、系統及設備。
背景技術
缺陷的修復被認為是軟件維護和發展過程中最昂貴的活動之一,隨著軟件系統的日益復雜,質量保證的任務越發具有挑戰性。因此,對缺陷的跟蹤和預測進而保證軟件制品的質量顯的愈發重要。在軟件工程領域,一種依賴高質量歷史數據的缺陷追蹤算法--SZZ算法被大量研究人員所接受,SZZ是一種用于識別引入缺陷提交的流行算法,同時SZZ算法是軟件工程領域使用較為廣泛的算法
現有研究中,針對SZZ算法的實現主要是基于注釋的行號進行缺陷的定位,然而,當變動中包含較多修改時,版本控制工具提供的通過行號記錄變動的功能就無法保證變動的精確定位,因此,需要一種能夠定位功能精確度較高的方法來解決該問題。
發明內容
本發明的目的在于提供一種追蹤引入缺陷提交的方法、系統及設備,以解決上述背景技術中提出的問題。
為了解決上述技術問題,本發明提供如下技術方案:一種追蹤引入缺陷提交的方法,該系統包括如下步驟:該系統包括如下步驟:
步驟S1:構建Http接口,根據所使用的代碼托管平臺所提供的Api接口獲取代碼托管平臺上的某個項目的Issue列表;
步驟S2:遍歷Issue列表獲取相關聯的合入請求,進而獲取解決該Issue的提交;
步驟S3:同步本地Git庫和遠程Git庫,使用本地Git庫獲取到按時間倒序規則排序提交的Sha值;
步驟S4:遍歷修復缺陷的提交數組,對于其中的每一個提交,使用“show”命令獲取提交的具體改動行;
步驟S5:遍歷步驟S4中獲取的改動字典數組,獲取提交的Sha值,再根據步驟S3中所獲取的按時間倒序規則排序提交的Sha值數組獲取前一個提交,使用“blame”命令根據改動的文件路徑以及改動行徑獲取改動行的最近一次修改,改動行的最近一次修改所屬的提交即為嫌疑致陷提交。
進一步的,在所述步驟1中,構建Http接口的步驟如下:
步驟S101:使用“asyncio”包將發起Http請求這一動作進行異步化;
步驟S102:使用指定權限的Token進行用戶身份驗證;
步驟S103:使用“aiohttp”包構建Http客戶端。
進一步的,所述致陷提交的真實性判斷步驟如下:
步驟S501:獲取嫌疑致陷提交的創建時間與對應Issue的創建時間并對比;
步驟S502:當檢測到嫌疑致陷提交的創建時間晚于Issue的創建時間,則并非為真實致陷提交;當檢測到嫌疑致陷提交的創建時間早于Issue的創建時間,則為真實致陷提交。
進一步的,檢測項目中所有的Issue列表,當項目中的Issue列表收集完畢后,使用非結構化數據庫MongoDB對列表進行存儲。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110586956.4/2.html,轉載請聲明來源鉆瓜專利網。





