[發明專利]一種提高軟件測試覆蓋率的方法和系統在審
| 申請號: | 201910147467.1 | 申請日: | 2019-02-27 |
| 公開(公告)號: | CN109885500A | 公開(公告)日: | 2019-06-14 |
| 發明(設計)人: | 李男 | 申請(專利權)人: | 蘇州浪潮智能科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 濟南舜源專利事務所有限公司 37205 | 代理人: | 劉雪萍 |
| 地址: | 215100 江蘇省蘇州市吳*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 被測軟件 軟件測試 覆蓋率 測試覆蓋率 輸入位置 測試 源代碼 覆蓋率測試 測試程序 方法執行 計算測試 掃描識別 反推 掃描 輸出 記錄 統計 | ||
本發明提供一種提高軟件測試覆蓋率的方法和系統,包括如下步驟:對測試程序源代碼進行掃描識別出故障輸入位置;根據掃描出的故障輸入位置注入故障并輸出變異后的被測軟件;對變異后的被測軟件進行測試,計算測試覆蓋率,若測試覆蓋率達到設定的目標覆蓋率測試結束用程序變異的方法對被測軟件進行故障注入,用強制的方法執行被測分支,并生成變異后的被測軟件,并記錄故障注入引發的bug數。當軟件測試人員測試結束后,統計與注入故障相關的bug數,從而獲得測試覆蓋率,依此反推完善測試用例,來提高軟件測試覆蓋率。
技術領域
本發明屬于軟件測試技術領域,具體涉及一種提高軟件測試覆蓋率的方法和系統。
背景技術
從事軟件項目管理及測試管理時,我們會發現軟件質量反復、bug收斂度不如預期等問題,往往是項目結項面臨的最大問題。針對這種問題通常采取的做法是bug分類追蹤問責或者加班趕工,而bug分類追蹤問責:將本次bug分類,新發現、修改導致、未修改等,以追究測試人員及開發人員的責任,期待開發人員修改bug質量及測試人員測試全面性的提高;為了減少新發現bug的數量,往往采用固定模塊測試人員的做法。
不可否認,這些做法會取得一定的效果。但是bug分類的統計過程,缺乏科學的、系統的標準,這往往造成開發與測試互相推諉的現象。
總結這些矛盾的根本在于測試覆蓋率的問題,如何保證在測試初期就進行全面的覆蓋?作為管理人員如何在測試之后統計本次測試對于程序測試的全面性?為此,本發明提出一種計算和提高軟件測試覆蓋率的方法。
發明內容
針對軟件測試過程中bug分類的統計過程,缺乏科學的、系統的標準,這往往造成開發與測試互相推諉的現象,這種現象的根本是測試覆蓋率的問題,本發明提供一種提高軟件測試覆蓋率的方法和系統。
本發明的技術方案是:
第一方面,本發明提供一種提高軟件測試覆蓋率的方法,包括如下步驟:
對測試程序源代碼進行掃描識別出故障輸入位置;
根據掃描出的故障輸入位置注入故障并輸出變異后的被測軟件;
對變異后的被測軟件進行測試,
計算測試覆蓋率,若測試覆蓋率達到設定的目標覆蓋率測試結束。
通過程序掃描模塊獲得可以插入故障的被測軟件位置序列,通過故障注入模塊對被測軟件的相應位置進行故障注入,并生成變異后的被測軟件,從而獲得測試覆蓋率,依此反推完善測試用例,來提高軟件測試覆蓋率。
優選地,對測試程序源代碼進行掃描識別出故障輸入位置,之前包括:
創建掃描規則,其中,所述的掃描規則定義了對源代碼進行掃描時要識別的語法結構,所述的語法結構包括函數的定義語句、賦值語句、控制分支和循環語句。
優選地,對測試程序源代碼進行掃描識別出故障輸入位置,包括:
根據掃描規則對程序源代碼進行掃描,識別出所有的故障輸入位置;
輸出故障輸入位置列表。
優選地,根據掃描出的故障輸入位置注入故障并輸出變異后的被測軟件,包括:
根據掃描出來的故障輸入位置列表注入故障,并記錄注入故障會引發的bug數M,輸出變異后的被測軟件。
優選地,計算測試覆蓋率,包括:
測試輸出變異后的被測軟件,統計與注入故障相關的bug數N;
結合注入故障會引發的bug數M和統計的與注入故障相關的bug數N,計算覆蓋率。
優選地,該方法還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇州浪潮智能科技有限公司,未經蘇州浪潮智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910147467.1/2.html,轉載請聲明來源鉆瓜專利網。





