[发明专利]一种基于扩展的数据流模型来生成测试用例的方法与装置有效
申请号: | 201510046509.4 | 申请日: | 2015-01-29 |
公开(公告)号: | CN104615535B | 公开(公告)日: | 2017-08-11 |
发明(设计)人: | 杨波;吴际;刘超 | 申请(专利权)人: | 北方工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市广友专利事务所有限责任公司11237 | 代理人: | 滕胜利 |
地址: | 100144 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 扩展 数据流 模型 生成 测试 方法 装置 | ||
技术领域
本发明涉及软件测试的测试用例扩增方法与装置,特别是一种基于扩展的数据流模型来生成测试用例的方法与装置。
背景技术
程序中的故障大多与程序中的数据流密切相关。这些故障与由其他程序元素(比如谓词、函数或方法等)引起的故障所产生的行为特点是不一样的。事实上,程序中与数据流相关的故障呈现出一些独特的特征:
1.有些故障不会导致错误的执行路径,但其计算结果是不正确的:即程序执行轨迹是正确的,没有产生控制流错误,但是某个或某些变量的值出现异常,甚至程序可能直到最终输出结果时,才表现出输出结果与预期的不符。
2.有些故障会导致程序中的控制流路径出现错误,但如果仅利用程序中控制流信息来进行测试用例的扩增,对故障检测的效果不是太好。
3.有些故障需要经过多次计算变量的值才触发。比如只有在某个循环内部进行多次迭代计算之后才有可能导致某个变量值出现溢出、越界、误差过大等问题。这类现象可称为累积效应或迭代效应。这类故障往往涉及复杂类型的变量,如数组、链表,以及对象类等。当需要进行测试用例扩增来对这类故障进行检测时,追踪变量状态的轨迹就相当重要了。
4.有些故障时常会呈现出传递性,即一个变量的错误取值会导致另一个变量的取值也出现错误,称此为变量的错误传递(或传播)特性。这种情况往往是变量之间的依赖关系在起作用,因此有必要在进行测试用例扩增来对这类故障检测时考虑变量之间的依赖关系。
从上述的分析可以得知,软件的各种故障,特别是与计算结果或其控制逻辑相关的故障,大多数都与数据流相关,即受到变量状态的变化及其相互之间的依赖关系的影响。这些影响时常是彼此交织和错综复杂的,使得程序包含着各种不确定的和难以精确简单辨识的特征。
发明内容
本发明是一种基于扩展的数据流模型来生成测试用例的方法与装置,所要解决的是如何构建扩展的数据流模型、利用扩展的数据流模型来进行影响分析及生成测试用例的技术问题。通过对程序修改前后扩展数据流模型的变化,利用这些变化的信息,有针对性地生成测试用例。利用的是静态数据流分析与动态数据流信息收集的技术手段,从而实现对扩展数据流模型的信息收集,获得生成具有专门针对数据流相关故障的测试用例的技术效果。
本发明的技术解决问题是:针对程序中数据流相关的故障,研究其行为特征,特别是在相应故障被触发后的行为模型,提供一种扩展的数据流模型的测试用例扩增方法与装置。该装置提供了对程序修改前后的针对数据流的影响分析,动态对测试用例进行扩增等机制,达到了专门针对数据流故障进行测试的目的。
本发明的技术解决方案:一种基于扩展的数据流模型来生成测试用例的装置,其特征在于:该装置包括有数据的收集和预处理模块、扩展数据流模型的构建模块、基于扩展数据流模型的影响分析模块、基于扩展数据流模型的测试用例扩增模块。
扩展数据流模型描述了程序中的变量在执行时的变化信息,以及变量之间的依赖关系。而已有的数据流分析、数据流测试的方法和技术,虽然反应了变量的定义、使用的特征,不过却难以形成程序执行中变量完整的“轨迹”,这给程序修改后导致数据流改变的分析带来了一定的难度。扩展数据流模型由两部分组成:变量状态(即变量在程序中的每一次被赋值所表示的状态)的转移关系与变量状态之间的依赖关系。变量状态的转移关系的是指在程序的运行过程中,变量状态的变化序列。变量状态之间的依赖关系指的是一个针对变量x赋值语句,x出现在赋值语句的左侧,而其他的变量出现在赋值语句的右侧,则变量x与其他的变量存在依赖关系。
扩展数据流模型的构建方法通过获取变量状态的依赖关系和获取变量状态的转移关系。静态数据流信息中所有的变量状态都默认是0,进行静态数据流分析时根据程序执行语句的先后顺序,分别设置静态数据流信息中的变量状态的序号。进行动态数据流分析时寻找每一个变量状态所依赖的变量,并将变量状态与所依赖的变量状态进行存储。获取变量状态转移关系需要判断两个变量状态是否指向同一个变量且两者是相邻的定义操作状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北方工业大学,未经北方工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510046509.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于流程图的仿真测试建模系统及方法
- 下一篇:接口测试方法和装置