[发明专利]基于符号执行的测试用例生成方法及装置有效
申请号: | 201910883372.6 | 申请日: | 2019-09-18 |
公开(公告)号: | CN110750448B | 公开(公告)日: | 2023-10-24 |
发明(设计)人: | 张云涛;王忠儒;赵美丞;阮强 | 申请(专利权)人: | 北京丁牛科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京林达刘知识产权代理事务所(普通合伙) 11277 | 代理人: | 刘新宇 |
地址: | 100000 北京市海淀区中关村*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 符号 执行 测试 生成 方法 装置 | ||
1.一种基于符号执行的测试用例生成方法,其特征在于,包括:
对待测试程序进行静态分析,得到所述待测试程序的指令信息;
根据所述指令信息确定针对所述待测试程序中输入数据的约束条件;
在待测试程序进行符号执行的过程中,对输入数据满足所述约束条件的路径进行符号执行,得到该路径对应的测试用例。
2.根据权利要求1所述的方法,其特征在于,所述根据所述指令信息确定针对所述待测试程序中输入数据的约束条件,包括:
从所述指令信息中获得输入数据长度比较指令;
从所述输入数据长度比较指令中获取第一数据长度;
根据所述第一数据长度生成针对待测试程序中输入数据的约束条件。
3.根据权利要求2所述的方法,其特征在于,所述在待测试程序进行符号执行的过程中,对输入数据满足所述约束条件的路径进行符号执行,得到该路径对应的测试用例,包括:
在待测试程序进行符号执行的过程中,对输入数据的数据长度与所述第一数据长度相匹配的路径进行符号执行,得到该路径对应的测试用例。
4.根据权利要求2所述的方法,其特征在于,所述从所述指令信息中获得输入数据长度比较指令,包括:
确定所述指令信息中的比较指令;
针对任一比较指令,若所述指令信息中该比较指令之前和/或之后存在调用确定字符串长度函数的第一调用指令,则确定该比较指令为所述输入数据长度比较指令。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述指令信息确定针对所述待测试程序中输入数据的约束条件,包括:
若所述指令信息中存在调用比较函数的第二调用指令,获取所述待测试程序中包含的字符串;
从所述待测试程序中包含的字符串中确定指定输入字符串;
根据所述指定输入字符串生成针对待测试程序中输入数据的约束条件。
6.根据权利要求5所述的方法,其特征在于,所述在待测试程序进行符号执行的过程中,对输入数据满足所述约束条件的路径进行符号执行,得到该路径对应的测试用例,包括:
在待测试程序进行符号执行的过程中,对输入数据与所述指定输入字符串相匹配的路径进行符号执行,得到该路径对应的测试用例。
7.根据权利要求5或6所述的方法,其特征在于,从所述待测试程序中包含的字符串中确定指定输入字符串,包括:
针对任一字符串,若字符串存储区域中未包含该字符串,则确定该字符串为指定输入字符串,
所述字符串存储区域用于存储程序语言中固有的字符串。
8.根据权利要求6所述的方法,其特征在于,所述根据所述指定输入字符串生成针对待测试程序中输入数据的约束条件,包括:
获取所述指定输入字符串的前缀;
根据所述指定输入字符串的前缀,生成针对待测试程序中输入数据的约束条件。
9.根据权利要求8所述的方法,其特征在于,所述在待测试程序进行符号执行的过程中,对输入数据满足所述约束条件的路径进行符号执行,得到该路径对应的测试用例,包括:
在待测试程序进行符号执行的过程中,对输入数据与所述指定输入字符串的前缀相匹配的路径进行符号执行,得到该路径对应的测试用例。
10.一种基于符号执行的测试用例生成装置,其特征在于,包括:
处理模块,用于对待测试程序进行静态分析,得到所述待测试程序的指令信息;
确定模块,用于根据所述指令信息确定针对所述待测试程序中输入数据的约束条件;
执行模块,用于在待测试程序进行符号执行的过程中,对输入数据满足所述约束条件的路径进行符号执行,得到该路径对应的测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京丁牛科技有限公司,未经北京丁牛科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910883372.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:软件测试方法及相关设备
- 下一篇:一种测试驱动的网页构件功能抽取方法