[發明專利]一種測試方法及裝置在審
| 申請號: | 201710063627.5 | 申請日: | 2017-02-03 |
| 公開(公告)號: | CN108388504A | 公開(公告)日: | 2018-08-10 |
| 發明(設計)人: | 原玉嬌 | 申請(專利權)人: | 北京嘀嘀無限科技發展有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 李相雨 |
| 地址: | 100000 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 測試代碼 測試路徑 測試 測試方法及裝置 約束集合 變異性 軟件測試技術 代碼覆蓋率 符號執行 父節點 子節點 分析 | ||
本發明實施例提供了一種測試方法及裝置,本發明實施例涉及軟件測試技術領域,方法包括:對待測試代碼通過符號執行方法進行分析,獲取所述待測試代碼的測試路徑約束集合;對待測試代碼的第一類測試路徑,根據所述測試路徑約束集合中的每個約束以及以所述每個約束為子節點的父節點的約束,生成對應的測試用例;將生成的測試用例輸入到所述待測試代碼中,獲取對應的測試結果。由于本發明實施例的測試用例是根據各個節點對應的約束產生的,因此利用這樣產生的測試用例可對待測試路徑的每個節點進行充分地變異性測試,從而提高測試的代碼覆蓋率。
技術領域
本發明實施例涉及軟件測試技術領域,尤其涉及一種測試方法及裝置。
背景技術
隨著計算機科學技術和互聯網技術飛速發展,軟件安全問題層出不窮,軟件安全一直備受關注。所述軟件安全問題主要為軟件漏洞,軟件漏洞是軟件開發者開發軟件時的疏忽或者是由編程語言的局限性導致的,比如c語言家族比java效率高但漏洞也多,電腦系統幾乎就是用c語言編的,所以常常要打補丁。軟件漏洞有時是作者日后檢查的時候發現的,然后修正;還有一些人專門找別人的漏洞以從中做些非法的事。
在軟件安全性測試領域,模糊測試(Fuzzing)是挖掘各種應用程序漏洞的有效方法,然而傳統模糊測試方法主要是隨機產生測試用例,為了達到一定測試覆蓋率(代碼覆蓋率)需要花費時間去生成大量的測試用例,由于模糊測試是隨機產生測試用例,隨機產生的測試用例存在盲目性,多數無法進入軟件的深處。目前已經有一些技術可以產生待測試軟件的全部測試路徑約束,但是往往是直接采用全部測試路徑約束產生測試用例,再用這樣產生的測試用例對待測試軟件進行測試,這樣無法保證對待測試軟件的每條測試路徑的每個節點進行最大程度的變異性測試,即無法保證代碼覆蓋率。
可見,普通的模糊測試的代碼覆蓋率低。
發明內容
本發明實施例提供一種克服上述問題或者至少部分地解決上述問題的一種測試方法及裝置。
第一方面,本發明實施例提供一種測試方法,包括:
對待測試代碼通過符號執行方法進行分析,獲取所述待測試代碼的測試路徑約束集合;
對待測試代碼的第一類測試路徑,根據所述測試路徑約束集合中的每個約束以及以所述每個約束為子節點的父節點的約束,生成對應的測試用例;
將生成的測試用例輸入到所述待測試代碼中,獲取對應的測試結果。
第二方面,本發明還提供一種測試裝置,包括:
第一獲取單元,用于對待測試代碼通過符號執行方法進行分析,獲取所述待測試代碼的測試路徑約束集合;
第一生成單元,用于對待測試代碼的第一類測試路徑,根據所述測試路徑約束集合中的每個約束以及以所述每個約束為子節點的父節點的約束,生成對應的測試用例;
第二獲取單元,用于將生成的測試用例輸入到所述待測試代碼中,獲取對應的測試結果。
由上述技術方案可知,由于本發明實施例的測試用例是根據各個節點對應的約束產生的,因此利用這樣產生的測試用例可對待測試路徑的每個節點進行充分地變異性測試,從而提高測試的代碼覆蓋率。
附圖說明
為了更清楚地說明本公開實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本公開的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些圖獲得其他的附圖。
圖1為本公開一實施例提供的一種測試方法的流程示意圖;
圖2是本公開一實施例提供的一種測試裝置的結構示意圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京嘀嘀無限科技發展有限公司,未經北京嘀嘀無限科技發展有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710063627.5/2.html,轉載請聲明來源鉆瓜專利網。





