[发明专利]一种基于运行时路径特征与测试场景聚类的测试样例约减方法有效
申请号: | 201911265344.4 | 申请日: | 2019-12-11 |
公开(公告)号: | CN111061635B | 公开(公告)日: | 2023-03-24 |
发明(设计)人: | 徐立华;龚鑫;汪庆顺;贺樑 | 申请(专利权)人: | 上海笃策信息科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F18/23213 |
代理公司: | 上海蓝迪专利商标事务所(普通合伙) 31215 | 代理人: | 徐筱梅;张翔 |
地址: | 200335 上海市长*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 运行 路径 特征 测试 场景 样例约减 方法 | ||
本发明公开了一种基于运行时路径特征与测试场景聚类的测试样例约减方法,该方法包括:a)代码插桩:在软件程序中插入探针,用于检测程序的运行状态;b)测试执行:执行所有的测试样例,生成运行时数据;c)路径特征提取:把运行时的路径数据转化为特征向量;d)场景聚类:使用聚类方法,对测试样例进行分类;e)测试样例约减:在聚类结果的基础之上,对测试样例进行筛选、约减,从而生成高质量的测试样例集合。本发明可以有效地提高测试样例集合的质量,提高软件测试的充分性,同时能够减少软件测试的时间开销。
技术领域
本发明属于软件测试技术领域,特别是涉及到了一种基于运行时路径特征与测试场景聚类的测试样例约减方法。
背景技术
在软件开发生命周期中,软件测试用于保障软件程序的正确性与可靠性,是不可忽略的环节。随着软件系统规模的日益扩大,以及软件应用领域的不断扩展,软件测试环节变得愈加复杂与困难,同时更加重要。
测试样例,指的是软件测试环节中使用到的数据。对于每一条测试样例,确定软件程序是否通过测试的方法,叫做测试准则。常用的测试准则可以是,给定测试样例的预期输出,比较在软件程序上实际运行的输出与预期输出是否一致,若两者一致,则通过测试。评价一个测试样例集合的质量好坏,需要考虑两个方面:充分性与精简性。充分性,指软件测试时,能够对软件程序的功能、代码等测试点,实现充分的覆盖;精简性,指软件测试时,对与每一个独立的测试点,不会进行大量不必要的重复测试。
测试样例生成的过程,在传统上是由人工完成的,这是一个十分消耗人力与时间的过程,并且生成测试样例的质量往往会受到一定限制。随着软件自动化测试的发展,可以对测试样例进行自动化地生成,从而在保证质量的同时,减小人力与时间的消耗。
测试样例削减方法,是进行高质量自动化测试样例生成过程中,必要且重要的环节。仅进行自动化测试样例生成,可以保证测试样例集合的充分性,但是无法保证精简性。通过测试样例削减,可以去除冗余的测试样例,减少不必要的重复测试,从而保证精简性。
发明内容
本发明的目的是,针对相关自动化技术生成的测试样例集合,提供一种测试样例削减方法。该方法不仅能够有效地降低测试样例集合的精简性,同时能够根据测试场景对其进行分类,从而有助于测试样例的分类与管理。
实现本发明目的的具体技术方案是:
一种基于运行时路径特征与测试场景聚类的测试样例约减方法,该方法包括以下具体步骤:
步骤1:代码插桩
在软件程序源代码的每个代码分支处,都插入一个探针;每当探针被触发时,这段标识性代码将被执行,探针的唯一标识将会输出到日志文件中;
代码插桩具体为:
1)每当执行方法调用语句时,在方法调用语句之前,插入一个探针;
2)每当一个方法调用结束时,在返回语句之前,插入一个探针;
3)每当执行分支语句时,在分支代码块的开头,插入一个探针;
4)每当执行循环语句时,在循环体代码块的开头,插入一个探针;
步骤2:测试执行
以步骤1生成的插桩之后的软件程序源代码作为被测软件程序;
以已有的测试样例作为输入数据,执行被测软件程序,生成日志文件;
从日志文件中获取探针信息,通过分析探针的触发顺序,获得每条测试样例对应的分支执行路径信息;
对于软件程序的所有测试样例,都需要独立地执行一遍,并且存储每条测试样例的分支执行路径信息;
步骤3:路径特征提取
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海笃策信息科技有限公司,未经上海笃策信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911265344.4/2.html,转载请声明来源钻瓜专利网。