[發明專利]一種基于測試預言的單元測試用例排序方法有效
| 申請號: | 202110711925.7 | 申請日: | 2021-06-25 |
| 公開(公告)號: | CN113434408B | 公開(公告)日: | 2022-04-08 |
| 發明(設計)人: | 劉輝;朱志浩;李亞輝;李光杰 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/04;G06N3/08 |
| 代理公司: | 北京正陽理工知識產權代理事務所(普通合伙) 11639 | 代理人: | 張利萍 |
| 地址: | 100081 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 測試 預言 單元測試 排序 方法 | ||
本發明涉及一種基于測試預言的單元測試用例排序方法,屬于計算機軟件測試技術領域。對于給定的被測方法,本發明自動生成數百萬個輸入輸出對,訓練神經網絡模擬該方法的行為,比較被測方法的實際輸出和神經網絡的預期輸出,當兩種輸出之間的距離越大時,則該測試用例就越可疑。最終選擇前k個最可疑的測試用例進行手動驗證。如果其中有測試用例能夠揭示被測方法的缺陷,即實際的輸出與預期的輸出不一致,則通過本發明找到了被測方法的缺陷。對比現有技術,本發明可以自動的根據被測方法生成訓練數據,并且在方法的動態執行中自動生成單元測試預言。本發明顯著的減少手動驗證測試用例的工作量。
技術領域
本發明涉及一種基于測試預言的單元測試用例排序方法,屬于計算機軟件測試技術領域。
背景技術
在軟件開發過程中,軟件測試是其中一項重要工作,也是最耗時的工作之一。在軟件測試中,如果沒有準確的測試預言(test oracles)是無法自動識別測試用例通過或者失敗的。因此,測試預言對于自動化軟件測試是至關重要的。
目前,大多數的自動化軟件測試方法都側重于測試用例(輸入)的自動生成。自動驗證生成的測試用例往往很有挑戰性,難以確定哪些測試用例能夠揭示被測方法中的缺陷。通常將被測方法的實際輸出與預期輸出進行比較,只有當實際輸出等于對應的預期輸出時,測試用例才通過。然而,預期輸出往往難以獲得,因為大多數測試用例的生成工具無法生成被測系統的預期輸出。當測試用例的數量很多時,如何自動化驗證測試用例被稱為測試預言問題。
現有很多方法致力于解決/緩解測試預言問題。最為直觀的方法之一是指定被測系統的規范,并根據規范給出輸入的預期輸出。這種測試預言被稱為指定測試預言(specified test oracles)。盡管這種方法直觀且有效,但是,指定軟件系統的規范是一個具有挑戰性的工作。
蛻變測試中的蛻變關系也常作為測試預言的替代方案。蛻變關系并沒有明確的指定預期的輸出,而是得出了一個多次運行系統得出的輸入與輸出之間的關系。蛻變測試顯著的緩解了測試預言問題,因為蛻變關系比系統的規范更容易指定。然而,手動找到蛻變關系仍然十分耗時。
發明內容
本發明的目的是為了克服已有技術的缺陷,為了解決現有測試用例生成方法中無法生成被測系統的預期輸出的技術問題,提出一種基于測試預言的單元測試用例排序方法。
本發明的創新點在于:對于給定的被測方法,本發明自動生成數百萬個輸入輸出對,訓練神經網絡模擬該方法的行為,比較被測方法的實際輸出和神經網絡的預期輸出,當兩種輸出之間的距離越大時,則該測試用例就越可疑。最終選擇前k個最可疑的測試用例進行手動驗證。如果其中有測試用例能夠揭示被測方法的缺陷,即實際的輸出與預期的輸出不一致,則通過本發明找到了被測方法的缺陷。
本發明是通過下述技術方案實現的:
一種基于測試預言的單元測試用例排序方法,包括以下步驟:
步驟1:對于被測方法,生成數量級至少為百萬的該方法的輸入。
具體地,根據被測方法輸入參數的類型與規則,隨機生成數量不少于一百萬個的符合被測方法要求的輸入。
步驟2:根據步驟1生成的輸入,調用被測方法,得到對應的輸出。
具體地,將步驟1的生成結果輸入到被測方法中,運行該方法得到各輸入對應的輸出。步驟1生成的輸入與步驟2得到的輸出構成該被測方法的測試用例,即方法輸入,方法輸出。
步驟3:基于被測方法的簽名,初始化神經網絡。
具體地,根據被測方法的輸入和輸出的格式,初始化神經網絡的輸入層和輸出層的神經元個數。
步驟4:訓練神經網絡。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110711925.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:球囊新型自動充盈裝置
- 下一篇:一種用于巖溶地區的大直徑管樁施工設備及方法





