功能、控制流、数据流与变异测试
在软件开发中,测试是确保软件质量的关键环节。本文将介绍基于控制流和数据流的测试方法,以及变异测试技术,包括其原理、实践应用、自动化工具和当前的研究现状。
基于控制流和数据流的测试
Vincenzi等人研究了基于控制流和数据流的测试标准在面向对象和基于组件的产品测试中的应用。为了开发一种通用的解决方案来处理这两类产品,他们决定对Java程序进行静态分析,直接在字节码级别确定测试需求。因为在测试软件组件时,产品的源代码并不总是可用的。通过这种方法,无论源代码是否可用,都可以导出一组关于不同结构测试标准的测试需求,用于评估或开发测试套件。JaBUTi测试工具就是为支持这种方法而开发的,它允许在字节码级别应用基于控制流和数据流的标准。
基于故障的测试技术
变异测试的原理
变异测试基于两个重要假设:
- 称职程序员假设 :优秀的程序员编写的程序是正确的或接近正确的。错误通常是由小的语法偏差(故障)引入的,这些偏差会导致程序执行出现不正确的行为。变异测试通过识别最常见的偏差,并对被测程序(PUT)进行小的更改,促使测试人员构建能够揭示这些修改导致程序出错的测试用例。
- 耦合效应假设 :复杂的错误是由简单错误组合而成的。因此,能够揭示简单故障的测试套件也应该能够发现复杂的错误。在变异测试中,每次只对PUT进行一次变异,即每个变异体与原始程序只有一个语法转换。具有k个更改的变异体称为k - 变异体,本文只考虑1 - 变异体。
测试人员需要提供PUT P和一个待评估充分性的测试套件T。首先将PUT P在
超级会员免费看
订阅专栏 解锁全文
879

被折叠的 条评论
为什么被折叠?



