[發明專利]程序測試方法、裝置及存儲介質在審
| 申請號: | 202011370178.7 | 申請日: | 2020-11-30 |
| 公開(公告)號: | CN112395203A | 公開(公告)日: | 2021-02-23 |
| 發明(設計)人: | 陳麗萍 | 申請(專利權)人: | 京東數字科技控股股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N20/00 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 張娜;臧建明 |
| 地址: | 100176 北京市北京經濟*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序 測試 方法 裝置 存儲 介質 | ||
本申請提供一種程序測試方法、裝置及存儲介質,該方法包括:獲取待測試程序的源代碼中的輸出點的理論數量以及每個輸出點的位置信息,將輸出點的理論數量和每個輸出點的位置信息輸入覆蓋率預測模型進行處理,得到預測代碼覆蓋率。本實施例的覆蓋率預測模型是根據在線序列的極限學習機OS?ELM訓練得到的用于預測代碼覆蓋率的模型,通過該模型可快速、準確地獲取一段待測試程序的代碼覆蓋率,無需運行整個待測試程序,預測的實時性好,為測試人員提供可靠的理論指導。
技術領域
本申請實施例涉及計算機技術領域,尤其涉及一種程序測試方法、裝置及存儲介質。
背景技術
隨著互聯網技術的飛速發展,移動應用更是呈指數增長,移動終端應用程序APP、小程序的測試方面需求大漲。為了確保應用產品的軟件質量,測試人員常常需要通過多種手段或工具對測試程序進行評估,其中,代碼覆蓋率就是其中比較重要的一個環節。
代碼覆蓋率,是一種通過計算測試過程中被執行的源代碼占全部源代碼的比例,進而間接度量軟件質量的方法。它在保證測試質量的時候潛在保證實際產品的質量,可以基于此在程序中尋找沒有被測試用例測試過的地方,進一步創建新的測試用例來增加覆蓋率。
目前主要通過手動執行多個測試代碼,統計多個測試代碼的代碼覆蓋率。對于較為復雜的應用程序,其測試代碼較長且數量較多,測試效率及精確度較低。
發明內容
本申請實施例提供一種程序測試方法、裝置及存儲介質,提高對代碼覆蓋率預測的效率和精確度。
本申請實施例的第一方面,提供一種程序測試方法,包括:
獲取待測試程序的源代碼中的輸出點的理論數量以及每個輸出點的位置信息;
將所述輸出點的理論數量和所述每個輸出點的位置信息,輸入覆蓋率預測模型進行處理,得到預測代碼覆蓋率;其中,所述覆蓋率預測模型是根據在線序列的極限學習機OS-ELM訓練得到的用于預測代碼覆蓋率的模型。
在本申請的一個實施例中,所述方法還包括:
獲取訓練樣本集,所述訓練樣本集中包括多組訓練樣本,每一組訓練樣本中包括程序輸出點的理論數量、位置信息以及所述程序實際運行時的代碼覆蓋率;
獲取OS-ELM的訓練參數,所述訓練參數包括隱含層節點數、激勵函數、訓練數據集大小以及預測數據大小;
根據隨機生成的隱含層的權值矩陣和偏置向量,所述訓練參數以及所述訓練樣本集,采用OS-ELM算法進行模型訓練,得到所述覆蓋率預測模型。
在本申請的一個實施例中,所述方法還包括:
在所述待測試程序運行后,獲取所述待測試程序運行時輸出的日志文件;
根據所述日志文件,獲取所述待測試程序運行時的輸出點的實際數量;
根據所述待測試程序的輸出點的所述理論數量和所述實際數量,計算獲取所述待測試程序的實際代碼覆蓋率;
根據所述實際代碼覆蓋率對所述覆蓋率預測模型進行優化處理,得到優化后的覆蓋率預測模型。
在本申請的一個實施例中,所述根據所述實際代碼覆蓋率對所述覆蓋率預測模型進行優化處理,得到優化后的覆蓋率預測模型,包括:
根據所述待測試程序的輸出點的理論數量,每個輸出點的位置信息,以及所述實際代碼覆蓋率,得到一組新的訓練樣本;
對模型訓練過程中的權值矩陣進行更新,得到更新后的權值矩陣;
根據所述新的訓練樣本以及所述更新后的權值矩陣,對所述覆蓋率預測模型進行優化訓練,得到所述優化后的覆蓋率預測模型。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于京東數字科技控股股份有限公司,未經京東數字科技控股股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011370178.7/2.html,轉載請聲明來源鉆瓜專利網。





