软件测试与系统随机测试的前沿探索
在当今软件和系统飞速发展的时代,测试的重要性日益凸显。它从曾经系统开发中临时且不受重视的领域,逐渐演变成一个活跃且关键的研究方向。本文将围绕软件随机测试展开,深入探讨相关的方法、算法以及应用。
1. 随机测试的背景与重要性
软件随机测试主要有三大类方法:基于被测系统输入域的方法、基于系统环境知识的方法以及基于系统行为模型的方法。我们重点关注基于系统行为模型的方法,通过在模型路径上进行随机游走,来实现对软件和系统的测试。
随机方法在测试大型程序或检查大型模型时具有吸引力,但设计具有良好故障检测能力且可评估的随机方法并非易事。为了确保对程序、模型或潜在故障位置的良好覆盖,并量化这种覆盖程度,需要精心设计输入或路径的概率分布。
2. 随机测试与随机游走的基础知识
随机测试的方法可分为以下三类:
- 基于被测系统输入域的方法
- 基于系统环境知识的方法
- 基于系统行为模型的方法
我们聚焦于基于系统行为模型的方法,在该模型的路径集合上进行随机游走。经典的随机游走方法(有时称为各向同性方法),从一个状态出发,均匀随机地选择其后续状态。这种方法的优点是易于实现,且只需要模型的局部知识;但缺点也很明显,在底层图的拓扑结构不规则时,从覆盖角度来看,均匀选择下一个状态并非最优,而且要估计随机游走后的覆盖程度,需要对模型的拓扑结构进行复杂的全局分析。
为了提高随机游走在各种覆盖标准下的质量,如有界路径覆盖、转换/分支覆盖、状态/语句覆盖和套索覆盖,需要一些非局部的模型知识,即基于计算从当前状态的每个后续状态可访问的待覆盖元素数量。借助强大的组合算法,以及
超级会员免费看
订阅专栏 解锁全文
924

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



