[发明专利]测试用例自动生成方法及系统有效
申请号: | 201810451163.X | 申请日: | 2018-05-11 |
公开(公告)号: | CN108595341B | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 姜宇;杨镒箫;任谦;李天池;顾明;孙家广 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 11002 北京路浩知识产权代理有限公司 | 代理人: | 王莹;吴欢燕<国际申请>=<国际公布>= |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 变异测试 测试 影响结果 测试用例自动生成 启发式搜索 符号执行 函数序列 反馈机制 路径信息 人工参与 生成测试 预设条件 运行效率 重复执行 自动化 | ||
本发明实施例提供了测试用例自动生成方法及系统,方法包括:基于符号执行生成测试用例种子,并基于启发式搜索对测试用例种子进行变异,得到第一变异测试用例;分别执行测试用例种子与第一变异测试用例,分别获取对应的执行路径信息,并确定变异的影响结果;根据影响结果,对测试用例种子或第一变异测试用例进行下一次变异,重复执行上述过程,直至满足预设条件。不需要人工参与,自动化程度很高。符号执行与启发式搜索进行结合,提高了整个方法的运行效率,而且采用反馈机制,通过变异的影响结果指导测试用例种子或第一变异测试用例进行下一次变异,这种方法不仅有利于短函数序列的测试用例的生成,对于长函数序列的测试用例的生成也同样适用。
技术领域
本发明实施例涉及计算机软件测试技术领域,更具体地,涉及测试用例自动生成方法及系统。
背景技术
目前,软件已经遍布工业生产、国防、科研、交通、通信、医疗、航空航天等主要领域,也已经深入人们的日常生活中。软件质量不仅影响到人们的生活质量,还会影响到经济的安全平稳发展。因此检测软件质量至关重要。软件测试是检测软件质量的有效的、可行的手段。随着软件规模逐步增大,复杂程度越来越高,软件出现问题的可能性也相应增加,对于软件测试的挑战也进一步提升。
为了达到软件的测试目标,需要编写大量的测试用例。长期以来,测试用例需要耗费测试人员大量的时间和精力手工编写,成本高昂。在软件开发过程中,软件测试花费的时间占项目总时间的50%以上,而且尽管花费大量时间开展软件测试工作,但由于成本和时间的约束通常很难做到软件充分测试。如何降低软件测试的开销,提高软件测试的效率成为当前的一个重要任务。为了缩短传统软件测试的成本和时间周期,自动化测试被广泛地研究和运用。在自动化软件测试过程中,如何自动构建待测系统的测试输入,生成高质量的测试用例是保障测试结果的科学性和有效性的关键。
单元测试(Unit Testing),又称为模块测试,是针对程序单元(程序单元为软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个程序单元就是指单个程序、函数或过程等;而对于面向对象编程,可被测试的最小单元就是方法(Method)。为了避免用词的混淆,同时由于方法(Method)实际上是成员函数和静态函数的统称,所以本发明中将面向对象编程中可被测试的最小单元统一为待测函数(Function)。单元测试能在程序开发的早期发现错误,避免多单元的复杂交互影响错误来源的判断,是有效的测试手段。
由于Java语言在服务端编程、企业级开发和Android应用开发方面仍有重要地位,而JVM字节码是Java,Scala等高级语言的源代码编译器编译形成的符合JVM字节码文件格式要求的二进制文件。这些二进制文件由一次编译所得,能够在任意JVM环境中执行,具有“一次编译,到处执行”的优点,因而具有广泛的应用。
国内外学者已提出许多面向JVM字节码的Java程序测试用例自动生成方法,并开发出相应的软件测试用例自动生成工具。这些测试用例自动生成方法可大致分类为:基于规约的生成方法、基于搜索的生成方法以及基于符号执行的生成方法等。
(1)基于规约的生成方法:规约(Specification)是对程序的执行效果的约定。在基于规约的测试用例自动生成方法中,规约的形式一般是形式化的、能够被程序解析和计算的不变式约束,即固定约束。利用固定约束来生成满足约束的所有可能的测试输入的方法即被称为基于规约的测试用例自动生成方法。基于规约的Java程序测试用例自动生成的技术有Korat、TestEra和UDITA等。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810451163.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车主动安全系统测试场景的自动生成方法
- 下一篇:单元测试方法和装置