基于归纳测试提高功能覆盖率:案例研究
归纳测试技术概述
归纳测试的概念源于近30年前的一种思路,当时有人将确定足够测试集的挑战与机器学习中的归纳推理领域联系起来。归纳推理旨在从有限的示例集合中推断出模型,而确定测试集与推断模型实际上是同一问题的两个方面。准确的模型需要足够广泛的示例集来推断,从测试角度看,更好的模型最终会产生更全面的测试集。
这种思路形成了归纳测试的基础,即如果将一组测试输入到归纳推理引擎后得到的模型与被测系统(SUT)等效,那么这组测试就可以被认为是足够的。然而,当前的归纳测试方法存在灵活性和扩展性的问题。它们通常与非常特定的系统测试策略绑定,导致可扩展性方面的问题。而且,要获得足够大的测试集以推断出精确模型在实践中往往不可行,尤其是当测试执行成本很高时。虽然有一些启发式方法被提出,但它们在实际黑盒系统中的适用性尚未得到证实,也没有一种技术在实现大型黑盒系统功能覆盖率方面得到明确评估。
灵活的归纳测试技术
这里介绍一种灵活的归纳测试技术,它允许开发者根据软件系统的复杂程度选择合适的基于模型的测试技术。为了应对不完整的测试集,该技术采用启发式方法来推断模型。每次推断出模型后,会调用选定的测试策略从模型生成测试集,并在SUT上执行。这个过程会一直持续,直到生成一组测试,从中推断出的模型不再能生成冲突的测试。
在本文中,讨论将限于可以建模和测试为确定性标记转换系统(LTS)的系统。
标记转换系统(LTS)的定义
LTS是一个四元组 $(Q, Σ, Δ, q0)$,其中:
- $Q$ 是有限状态集。
- $Σ$ 是有限字母表。
- $Δ : Q×Σ →
超级会员免费看
订阅专栏 解锁全文
1541

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



