[发明专利]一种基于测试预言的单元测试用例排序方法有效
申请号: | 202110711925.7 | 申请日: | 2021-06-25 |
公开(公告)号: | CN113434408B | 公开(公告)日: | 2022-04-08 |
发明(设计)人: | 刘辉;朱志浩;李亚辉;李光杰 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/04;G06N3/08 |
代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 张利萍 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 测试 预言 单元测试 排序 方法 | ||
本发明涉及一种基于测试预言的单元测试用例排序方法,属于计算机软件测试技术领域。对于给定的被测方法,本发明自动生成数百万个输入输出对,训练神经网络模拟该方法的行为,比较被测方法的实际输出和神经网络的预期输出,当两种输出之间的距离越大时,则该测试用例就越可疑。最终选择前k个最可疑的测试用例进行手动验证。如果其中有测试用例能够揭示被测方法的缺陷,即实际的输出与预期的输出不一致,则通过本发明找到了被测方法的缺陷。对比现有技术,本发明可以自动的根据被测方法生成训练数据,并且在方法的动态执行中自动生成单元测试预言。本发明显著的减少手动验证测试用例的工作量。
技术领域
本发明涉及一种基于测试预言的单元测试用例排序方法,属于计算机软件测试技术领域。
背景技术
在软件开发过程中,软件测试是其中一项重要工作,也是最耗时的工作之一。在软件测试中,如果没有准确的测试预言(test oracles)是无法自动识别测试用例通过或者失败的。因此,测试预言对于自动化软件测试是至关重要的。
目前,大多数的自动化软件测试方法都侧重于测试用例(输入)的自动生成。自动验证生成的测试用例往往很有挑战性,难以确定哪些测试用例能够揭示被测方法中的缺陷。通常将被测方法的实际输出与预期输出进行比较,只有当实际输出等于对应的预期输出时,测试用例才通过。然而,预期输出往往难以获得,因为大多数测试用例的生成工具无法生成被测系统的预期输出。当测试用例的数量很多时,如何自动化验证测试用例被称为测试预言问题。
现有很多方法致力于解决/缓解测试预言问题。最为直观的方法之一是指定被测系统的规范,并根据规范给出输入的预期输出。这种测试预言被称为指定测试预言(specified test oracles)。尽管这种方法直观且有效,但是,指定软件系统的规范是一个具有挑战性的工作。
蜕变测试中的蜕变关系也常作为测试预言的替代方案。蜕变关系并没有明确的指定预期的输出,而是得出了一个多次运行系统得出的输入与输出之间的关系。蜕变测试显著的缓解了测试预言问题,因为蜕变关系比系统的规范更容易指定。然而,手动找到蜕变关系仍然十分耗时。
发明内容
本发明的目的是为了克服已有技术的缺陷,为了解决现有测试用例生成方法中无法生成被测系统的预期输出的技术问题,提出一种基于测试预言的单元测试用例排序方法。
本发明的创新点在于:对于给定的被测方法,本发明自动生成数百万个输入输出对,训练神经网络模拟该方法的行为,比较被测方法的实际输出和神经网络的预期输出,当两种输出之间的距离越大时,则该测试用例就越可疑。最终选择前k个最可疑的测试用例进行手动验证。如果其中有测试用例能够揭示被测方法的缺陷,即实际的输出与预期的输出不一致,则通过本发明找到了被测方法的缺陷。
本发明是通过下述技术方案实现的:
一种基于测试预言的单元测试用例排序方法,包括以下步骤:
步骤1:对于被测方法,生成数量级至少为百万的该方法的输入。
具体地,根据被测方法输入参数的类型与规则,随机生成数量不少于一百万个的符合被测方法要求的输入。
步骤2:根据步骤1生成的输入,调用被测方法,得到对应的输出。
具体地,将步骤1的生成结果输入到被测方法中,运行该方法得到各输入对应的输出。步骤1生成的输入与步骤2得到的输出构成该被测方法的测试用例,即方法输入,方法输出。
步骤3:基于被测方法的签名,初始化神经网络。
具体地,根据被测方法的输入和输出的格式,初始化神经网络的输入层和输出层的神经元个数。
步骤4:训练神经网络。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110711925.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:球囊新型自动充盈装置
- 下一篇:一种用于岩溶地区的大直径管桩施工设备及方法