[發明專利]測試用例生成方法和測試用例生成裝置有效
| 申請號: | 201710347575.4 | 申請日: | 2017-05-17 |
| 公開(公告)號: | CN108959056B | 公開(公告)日: | 2021-11-16 |
| 發明(設計)人: | 鐘朝亮;張沈斌;皮冰鋒;孫俊 | 申請(專利權)人: | 富士通株式會社 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 陳煒;康建峰 |
| 地址: | 日本神*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 測試 生成 方法 裝置 | ||
1.一種測試用例生成方法,包括:
針對用不同編程語言編寫的源代碼,分別構建相應源代碼中的函數之間的關系圖;
檢測所述用不同編程語言編寫的源代碼之間的連接信息,所述連接信息包括在所述用不同編程語言編寫的源代碼之間進行通信的信息;
根據所述連接信息將所述關系圖連接以生成連接圖;
遍歷所述連接圖以生成組合路徑約束表達式;
符號執行所述源代碼中的每一個函數,以根據所述組合路徑約束表達式生成具體組合路徑約束;以及
對具體組合路徑約束進行求解,以生成測試用例。
2.根據權利要求1所述的方法,其中
所述關系圖通過分析源代碼中的函數之間的調用關系來構建;以及
在所述關系圖中,節點表示與函數有關的信息,邊表示與函數之間的調用關系有關的信息。
3.根據權利要求2所述的方法,其中,在所述節點中記錄函數名稱、函數體、函數參數、以及函數返回值,在所述邊中記錄調用函數名稱、被調用函數名稱、指向在調用函數時調用被調用函數的語句的程序計數值、以及存儲在調用函數時被調用函數的返回值的變量。
4.根據權利要求2或3所述的方法,其中,根據所述不同編程語言之間的接口注釋中的預定義規則來檢測所述用不同編程語言編寫的源代碼之間的連接信息。
5.根據權利要求1所述的方法,其中,根據所述連接信息將所述關系圖連接以生成連接圖包括:
在所述關系圖中分別查找所述連接信息中所包含的函數調用;以及
將所述關系圖中執行所查找到的函數調用的節點合并以生成連接圖。
6.根據權利要求1所述的方法,其中,遍歷所述連接圖以生成組合路徑約束表達式包括:
遍歷所述連接圖以生成所有可能的調用序列;
對于每一個可能的調用序列中的每一個函數,生成待求解的路徑約束;以及
將所述待求解的路徑約束組合以生成組合路徑約束表達式。
7.根據權利要求6所述的方法,其中
對于調用調用序列中隨后的函數的函數,生成從開始執行到調用隨后的函數的程序計數值的待求解的路徑約束;以及
對于返回值給調用序列中調用其的前面的函數且不調用隨后的函數的函數,生成符號執行條件約束作為待求解的路徑約束。
8.根據權利要求6所述的方法,其中遍歷所述連接圖時,在到達包含事先指定作為終止條件的語句的節點時,輸出到此為止的路徑中所包含的所有函數作為可能的調用序列。
9.根據權利要求1所述的方法,其中符號執行所述源代碼中的每一個函數,以根據所述組合路徑約束表達式生成具體組合路徑約束包括:
符號執行所述源代碼中的每一個函數,以生成所述組合路徑約束表達式中的每一個約束路徑的具體值;以及
將所述組合路徑約束表達式中的每一個約束路徑用所生成的相應具體值替換,以生成具體組合路徑約束。
10.一種測試用例生成裝置,包括:
關系圖構建單元,被配置為針對用不同編程語言編寫的源代碼,分別構建相應源代碼中的函數之間的關系圖;
連接信息檢測單元,被配置為檢測所述用不同編程語言編寫的源代碼之間的連接信息,所述連接信息包括在所述用不同編程語言編寫的源代碼之間進行通信的信息;
連接單元,被配置為根據所述連接信息將所述關系圖連接以生成連接圖;
遍歷單元,被配置為遍歷所述連接圖以生成組合路徑約束表達式;
符號執行單元,被配置為符號執行所述源代碼中的每一個函數,以根據所述組合路徑約束表達式生成具體組合路徑約束;以及
求解單元,被配置為對具體組合路徑約束進行求解,以生成測試用例。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于富士通株式會社,未經富士通株式會社許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710347575.4/1.html,轉載請聲明來源鉆瓜專利網。





