[發(fā)明專利]一種促進(jìn)測試代碼與產(chǎn)品代碼協(xié)同演化的方法及終端設(shè)備有效
| 申請?zhí)枺?/td> | 202110245711.5 | 申請日: | 2021-03-05 |
| 公開(公告)號: | CN113010420B | 公開(公告)日: | 2023-05-30 |
| 發(fā)明(設(shè)計)人: | 王斯南;劉蕾;劉燁龐 | 申請(專利權(quán))人: | 南方科技大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N20/00 |
| 代理公司: | 深圳市君勝知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 44268 | 代理人: | 徐凱凱 |
| 地址: | 518055 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 促進(jìn) 測試 代碼 產(chǎn)品 協(xié)同 演化 方法 終端設(shè)備 | ||
1.一種促進(jìn)測試代碼與產(chǎn)品代碼協(xié)同演化的方法,其特征在于,包括步驟:
從項目代碼倉庫中獲取歷史實例代碼數(shù)據(jù),并構(gòu)建第一訓(xùn)練數(shù)據(jù)集;
基于所述第一訓(xùn)練數(shù)據(jù)集對分類器進(jìn)行訓(xùn)練,得到訓(xùn)練后分類器;
基于所述訓(xùn)練后分類器自動識別過時的單元測試用例;
對所述代碼數(shù)據(jù)進(jìn)行預(yù)處理,得到序列數(shù)據(jù),根據(jù)所述序列數(shù)據(jù)構(gòu)建第二訓(xùn)練數(shù)據(jù)集;
基于所述第二訓(xùn)練數(shù)據(jù)集對seq2seq模型進(jìn)行訓(xùn)練,得到訓(xùn)練后seq2seq模型;
將導(dǎo)致單元測試用例過時的產(chǎn)品代碼更改和原始測試代碼輸入所述訓(xùn)練后seq2seq模型中,輸出完整的補(bǔ)丁,通過所述補(bǔ)丁對所述過時的單元測試用例進(jìn)行修復(fù),促進(jìn)單元測試代碼與產(chǎn)品代碼協(xié)同演化;
所述從項目代碼倉庫中獲取歷史實例代碼數(shù)據(jù),并構(gòu)建第一訓(xùn)練數(shù)據(jù)集的步驟包括:
將從項目代碼倉庫中獲取的歷史實例代碼數(shù)據(jù)劃分為正樣本和負(fù)樣本,其中,正樣本中測試代碼與產(chǎn)品代碼協(xié)同演化,負(fù)樣本中測試代碼不與產(chǎn)品代碼協(xié)同演化;
根據(jù)測試文件級別對所述正樣本進(jìn)行標(biāo)記,構(gòu)建第一訓(xùn)練數(shù)據(jù)集;
對所述代碼數(shù)據(jù)進(jìn)行預(yù)處理,得到序列數(shù)據(jù),根據(jù)所述序列數(shù)據(jù)構(gòu)建第二訓(xùn)練數(shù)據(jù)集的步驟包括:
將產(chǎn)品代碼更改劃分為一個原始產(chǎn)品代碼段和一個更改后產(chǎn)品代碼段,對所述原始產(chǎn)品代碼段和更改后產(chǎn)品代碼段進(jìn)行分詞,得到對應(yīng)的第一單詞序列和第二單詞序列,然后根據(jù)所述第一單詞序列和第二單詞序列構(gòu)造成一個編輯序列;
對原始測試代碼和更新后測試代碼進(jìn)行分詞,得到對應(yīng)的原始測試代碼單詞序列和更新后測試代碼單詞序列;
對編輯操作所在行的上下文進(jìn)行分詞得到編輯行的上下文單詞序列;
根據(jù)所述編輯序列、原始測試代碼單詞序列和更新后測試代碼單詞序列以及所述編輯行的上下文單詞序列構(gòu)建第二訓(xùn)練數(shù)據(jù)集;
基于所述第二訓(xùn)練數(shù)據(jù)集對seq2seq模型進(jìn)行訓(xùn)練,得到訓(xùn)練后seq2seq模型的步驟包括:
將原始測試代碼單詞序列、編輯序列和編輯行的上下文單詞序列輸入到seq2seq模型的編碼器部分,對所述seq2seq模型進(jìn)行訓(xùn)練,得到訓(xùn)練后seq2seq模型;
將原始測試代碼單詞序列、編輯序列和編輯行的上下文單詞序列輸入到seq2seq模型的編碼器部分,對所述seq2seq模型進(jìn)行訓(xùn)練,得到訓(xùn)練后seq2seq模型的步驟包括:
將所述原始測試代碼單詞序列、編輯序列和編輯行的上下文單詞序列分別通過嵌入層映射到嵌入矩陣中;
之后分別通過Self-Attention?Network進(jìn)行建模得到三個相關(guān)向量;
接著將輸入編輯序列和編輯行的上下文單詞序列得到的相關(guān)向量輸入到attention層,得到編輯操作在相關(guān)上下文語境下的最終表示;
將編輯操作在相關(guān)上下文語境下的最終表示連同輸入原始測試代碼單詞序列得到的相關(guān)向量輸入attention層,得到每個編輯操作的最終表示;
通過解碼器部分將所述編輯操作在相關(guān)上下文語境下的最終表示以及每個編輯操作的最終表示作為輸入,按順序生成一個新的測試代碼單詞序列,完成對所述seq2seq模型進(jìn)行訓(xùn)練。
2.根據(jù)權(quán)利要求1所述促進(jìn)測試代碼與產(chǎn)品代碼協(xié)同演化的方法,其特征在于,根據(jù)測試文件級別對所述正樣本進(jìn)行標(biāo)記的步驟包括:
若測試文件級別為二分類預(yù)測時,則將正樣本標(biāo)記為應(yīng)該更改和不更改兩類;
若測試文件級別為多分類預(yù)測時,則將正樣本標(biāo)記為應(yīng)該創(chuàng)建、應(yīng)該編輯和應(yīng)該刪除三類。
3.根據(jù)權(quán)利要求2所述促進(jìn)測試代碼與產(chǎn)品代碼協(xié)同演化的方法,其特征在于,基于所述第一訓(xùn)練數(shù)據(jù)集對分類器進(jìn)行訓(xùn)練,得到訓(xùn)練后分類器的步驟包括:
將所述第一訓(xùn)練數(shù)據(jù)集轉(zhuǎn)換為結(jié)構(gòu)化的向量表示,對于每個樣本,從產(chǎn)品代碼的補(bǔ)丁和原始產(chǎn)品代碼中提取特征;
將提取的特征輸入到分類器中進(jìn)行訓(xùn)練,得到訓(xùn)練后分類器。
4.根據(jù)權(quán)利要求3所述促進(jìn)測試代碼與產(chǎn)品代碼協(xié)同演化的方法,其特征在于,所述分類器為邏輯回歸分類器、樸素貝葉斯分類器、隨機(jī)森林分類器或梯度提升分類器中的一種。
該專利技術(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/202110245711.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





