[發明專利]一種嵌入式系統自動化測試代碼生成方法及裝置有效
| 申請號: | 202010978991.6 | 申請日: | 2020-09-17 |
| 公開(公告)號: | CN112328226B | 公開(公告)日: | 2022-03-04 |
| 發明(設計)人: | 頓磊;劉斌;馮維 | 申請(專利權)人: | 北京中數科技術有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F8/41;G06F11/36 |
| 代理公司: | 北京三友知識產權代理有限公司 11127 | 代理人: | 許曼;賈磊 |
| 地址: | 100089 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 嵌入式 系統 自動化 測試 代碼 生成 方法 裝置 | ||
本文涉及自動化測試領域,尤其涉及一種嵌入式系統自動化測試代碼生成方法及裝置,其中,方法包括:從被測函數所在的C語言頭文件中,解析得到常量信息及變量列表;從被測函數的測試用例中,解析得到變量值信息;根據所述常量信息、變量列表及變量值信息,自動生成被測函數的測試代碼。本文能夠代替人員手動編寫測試代碼,自動化生成被測函數的測試代碼,簡化了測試人員在編碼層面的復雜度,節省了測試人員大量的時間精力,減少編碼錯誤發生率。同時,本文還可以統一測試代碼的生產規范,適用于各種復雜邏輯的測試代碼。
技術領域
本文涉及自動化測試領域,尤其涉及一種嵌入式系統自動化測試代碼生成方法及裝置。
背景技術
嵌入式系統的函數測試中,一般都是人工閱讀函數聲明,找到函數聲明及其相關的變量列表,然后,再根據每個變量,逐個聲明,逐個分配空間,逐個賦值,再調用被測函數,在獲取被測函數返回值,然后編寫保存文件的代碼,將函數返回值保存為變量文件。此過程及其繁瑣,并且,測試人員編寫的代碼和開發人員編寫的代碼存在大量冗余定義,和邏輯,這些現狀導致測試人員的工作效率很低,在實際測試工作中,至少有50%以上的精力用于做重復無用的工作。
在同類技術領域中,大多數處理方法只提供單一的基于腳本執行的簡單調用邏輯,無法處理動態調整變量的維度、變量邊界值等,需要測試人員手動編寫測試報告,當被測函數的變量很多,層級關系比較大時,編寫測試用例表頭本身也很耗時,當被測函數稍有變更,測試人員必須非常小心謹慎的維護測試用例列表,稍有不慎,都會影響到整個測試的結果。這些現狀極大降低了測試人員的工作效率,無法將精力和時間用在測試用例的設計上。且測試人員不同,編寫出的測試代碼也不同(即測試代碼生成過程的差異性較大),這將增加測試代碼維護難度。
現有的嵌入式系統自動化測試代碼生成過程僅適用于邏輯簡單僅包括單值型的被測函數,無法適用于復雜邏輯被測函數測試代碼的生成。
發明內容
本文用于解決現有技術中人工生成嵌入式系統測試代碼的方式存在浪費人力、工作效率低、測試代碼生成過程差異性較大的技術問題,以及自動生成嵌入式系統測試代碼的方式存在不適用于復雜邏輯的被測函數。
為了解決上述技術問題,本文的第一方面提供一種嵌入式系統自動化測試代碼生成方法,包括:
從被測函數所在的C語言頭文件中,解析得到常量信息及變量列表;
從被測函數的測試用例中,解析得到變量值信息;
根據所述常量信息、變量列表及變量值信息,自動生成被測函數的測試代碼。
本文的進一步實施例中,從被測函數所在C語言頭文件中,解析得到變量列表,包括:
根據C語言的語法結構,從被測函數所在頭文件中,識別變量聲明、結構體聲明、函數聲明及宏定義信息;
根據C語言的語法規范,解析變量聲明及結構體聲明,得到單值信息、指針維度信息、數組維度信息及變量路徑信息;
根據宏定義信息、單值信息、指針維度信息、數組維度信息及變量路徑信息,得到變量依賴關系;
根據正則表達式,解析函數聲明,得到被測函數信息,其中,被測函數信息包括:被測函數名稱、返回值、形參列表及形參的輸入輸出標記;
根據單值信息、宏定義信息、指針維度信息、數組維度信息、變量路徑信息、變量依賴關系及被測函數信息,得到變量列表。
本文的進一步實施例中,從被測函數的測試用例中,解析得到變量值信息,包括:
解析被測函數的測試用例,確定變量值類型;
根據變量值類型,解析變量值信息。
本文的進一步實施例中,根據變量值類型,解析變量值信息,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京中數科技術有限公司,未經北京中數科技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010978991.6/2.html,轉載請聲明來源鉆瓜專利網。





