[發明專利]針對嵌入式軟件IO端口的單元測試用例生成方法及裝置有效
| 申請號: | 201911349540.X | 申請日: | 2019-12-24 |
| 公開(公告)號: | CN111176994B | 公開(公告)日: | 2023-03-31 |
| 發明(設計)人: | 陳睿;楊帆;江云松;王浩;韓亮;劉亞威;賈春鵬;車小鵬;施蘭蘭;高猛;高棟棟;王政;吳瑾 | 申請(專利權)人: | 北京軒宇信息技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 中國航天科技專利中心 11009 | 代理人: | 李明澤 |
| 地址: | 100190 北京市海淀區科學院*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 針對 嵌入式 軟件 io 端口 單元測試 生成 方法 裝置 | ||
本發明實施例提供了一種針對嵌入式軟件IO端口的單元測試用例生成方法及裝置。所述方法包括:對待測試程序進行靜態分析,獲取所述待測試程序中的關鍵數據;啟動基于解釋器的符號執行引擎;在所述解釋器中建立一個IO區域查詢表和分配一段IO專用內存區域;采用所述符號執行引擎根據所述IO區域查詢表、所述IO專用內存區域、IO端口輸入映射到IO專用內存和所述關鍵數據,確定所述待測試程序對應的測試用例。本發明實施例能夠自動識別IO端口,無需人工配置,生成用例效率提升,且解決了IO端口地址作為輸入時生成的用例覆蓋率低的問題。
技術領域
本發明涉及程序測試技術領域,特別是一種針對嵌入式軟件IO端口的單元測試用例生成方法及裝置。
背景技術
單元測試是保證軟件質量的一種有效措施,然而隨著軟件代碼規模膨脹,僅靠人工做單元測試的效率無法滿足需求,因此自動化生成測試用例的方法應運而生,如隨機生成、符號執行等技術。
嵌入式軟件的一個重要特性是IO端口訪問,IO端口指的是內容易變的(volatile)內存,即從同一地址連續讀取的多個值可能不同,如讀取串口數據。由于這種特性,一般的單元測試用例自動生成方法不能完全適用于嵌入式軟件。
專利CN109086215A公開了一種嵌入式軟件單元測試用例生成方法,該方法包括:靜態分析抽取關鍵信息,解釋執行驅動符號執行,路徑搜索算法和約束求解引導迭代執行,最終實現函數分支全覆蓋。其中,此方法采用了將IO端口(volatile關鍵字修飾的變量指向的內存)特殊編碼為多重符號的方法,支持IO端口值序列的生成。但此方法存在以下問題:
(1)作為IO的地址區域需人工配置。嵌入式平臺和芯片種類眾多,用于IO的內存地址區域存在差異,人工配置復雜,效率低下;
(2)不支持IO端口地址是輸入的情況。一種情況為類似“volatile T*param”的指針變量是函數參數時,無法提前得知該參數具體指向哪一段IO區域,目前此方法把指針指向一個全局變量,自動生成時不會觸發IO端口多重符號編碼,生成的用例覆蓋率較低。
發明內容
本發明解決的技術問題是:克服現有技術中IO的內存區域需人工配置,效率低下,且IO端口地址為函數輸入的情況下生成的用例覆蓋率低的不足,提供了一種針對嵌入式軟件IO端口的單元測試用例生成方法及裝置。
為了解決上述技術問題,本發明實施例提供了一種針對嵌入式軟件IO端口的單元測試用例生成方法,包括:
獲取所述待測試程序中的關鍵數據;
啟動基于解釋器的符號執行引擎,在所述解釋器中建立一個IO區域查詢表和分配一段IO專用內存區域;
采用所述符號執行引擎,查詢和更新IO區域查詢表、維護IO專用區域、自動映射IO端口為輸入,確定所述待測試程序對應的測試用例。
優選地,所述獲取所述待測試程序中的關鍵數據的步驟,包括:
對所述待測試程序進行靜態分析,獲取所述待測試程序中的關鍵數據。
優選地,所述啟動基于解釋器的符號執行引擎,在所述解釋器中建立一個IO區域查詢表和分配一段IO專用內存區域的步驟,包括:
在所述解釋器中建立所述IO區域查詢表;
在所述解釋器中分配IO專用內存區域,并創建一個指針,指向該區域可用的地址。
優選地,所述查詢和更新IO區域查詢表、維護IO專用區域、自動映射IO端口為輸入,確定所述待測試程序對應的測試用例的步驟,包括:
查詢、更新IO區域查詢表;
IO端口的輸入自動映射到IO專用內存區域,移動所述IO專用內存指針,指向下一個IO專用區域可用位置;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京軒宇信息技術有限公司,未經北京軒宇信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911349540.X/2.html,轉載請聲明來源鉆瓜專利網。





