[發明專利]一種基于測試預言的單元測試用例排序方法有效
| 申請號: | 202110711925.7 | 申請日: | 2021-06-25 |
| 公開(公告)號: | CN113434408B | 公開(公告)日: | 2022-04-08 |
| 發明(設計)人: | 劉輝;朱志浩;李亞輝;李光杰 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/04;G06N3/08 |
| 代理公司: | 北京正陽理工知識產權代理事務所(普通合伙) 11639 | 代理人: | 張利萍 |
| 地址: | 100081 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 測試 預言 單元測試 排序 方法 | ||
1.一種基于測試預言的單元測試用例排序方法,其特征在于,包括以下步驟:
步驟1:根據被測方法輸入參數的類型與規則,隨機生成數量不少于一百萬個的符合被測方法要求的輸入;
步驟2:將步驟1的生成結果輸入到被測方法中,運行該方法得到各輸入對應的輸出;步驟1生成的輸入與步驟2得到的輸出構成該被測方法的測試用例,即方法輸入,方法輸出;
步驟3:根據被測方法的輸入和輸出的格式,初始化神經網絡的輸入層和輸出層的神經元個數;
步驟4:使用步驟2生成的測試用例訓練初始化后的神經網絡;
如果訓練神經網絡的結果并不穩定和準確,即,如果訓練網絡的損失函數值大于β=0.02,則方法將失敗且終止,否則,進行下一步驟;
步驟5:根據步驟1和步驟2生成新的測試用例,將生成的測試用例的輸入傳入到訓練好的神經網絡中,并將測試用例中的輸出與神經網絡的輸出進行比較;其中,神經網絡的損失函數分為兩種類型,一種是對于測試用例的輸入和輸出都是數值型的數據,一種是測試用例的輸入和輸出都是非數值型的數據;
將測試用例中的非數值型數據通過其對應的ASCII碼表示每個字符,并將數字ASCII碼連接起來形成數字向量,最后,將數字值標準化到[0,1]范圍區間;
其中,對于測試用例的輸入和輸出都是數值型的數據,使用均方誤差MSE作為損失函數;
對于測試用例的輸入和輸出都是非數值型的數據,定義以下損失函數:
其中,loss為模型的損失函數,估量模型的輸出和真實值之間的差距;n是訓練數據的大??;acti是被測方法中第i個樣例的實際輸出,是被測方法中第i個樣例的預期輸出;
其中,表示被測方法中第i個樣例的實際輸出和預期輸出之間的距離,m為方法輸出參數的個數,acti是被測方法中第i個樣例的實際輸出,是被測方法中第i個樣例的預期輸出;opti,j表示第i個樣例第j個輸出參數的實際值,是第i個樣例第j個輸出參數的預期值;表示第i個樣例第j個參數的實際輸出和預期輸出之間的編輯距離與它們長度和的比值;
其中,是兩個字符串之間的編輯距離,|str|是字符串str的長度;
acti=opti,1,…,opti,m (4)
步驟6:將測試用例的實際輸出和預期輸出之間的距離,按降序對測試用例進行排名,并向開發人員展示前k個最可疑的測試用例;如果其中有可疑的測試用例揭示了被測方法的缺陷,開發人員需修復該缺陷。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110711925.7/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:球囊新型自動充盈裝置
- 下一篇:一種用于巖溶地區的大直徑管樁施工設備及方法





