基于搜索的软件工程构建二进制测试套件
1. 引言
在 2001 年,“基于搜索的软件工程(SBSE)”这一术语被提出。SBSE 是将优化技术应用于解决软件工程问题。由于软件工程问题通常需要接近最优的解决方案,所以优化技术在其中的应用十分合适。近年来,作为 SBSE 方法的一部分,基于搜索的软件测试(SBST)研究受到了广泛关注。这是因为考虑到现实世界中软件的规模和复杂性,进行全面测试是不可行的。
软件测试的主要目标是在被测试的软件系统(SUT)中尽可能多地检测出故障。为了获得足够的信心,确保大多数故障都能被检测到,全面测试是一种选择,但在实际中往往无法实现。因此,测试人员会借助测试模型和覆盖标准来构建能够有效揭示故障的测试用例。
组合交互测试是一种可以降低成本并提高软件测试有效性的方法。它基于构建经济规模的测试套件,以覆盖最常见的因素组合。
覆盖数组是一种组合结构,用 CA(N;t,k,v) 表示,它可以被描述为一个具有 N × k 个元素的矩阵,使得每个 N × t 子数组至少包含所有 vt 种可能的符号组合一次。其中,参数 N 是行数,参数 k 是因素数量(也称为度),参数 v 是字母表(也称为阶),参数 t 是交互覆盖的强度。
以 Skype 的隐私设置软件组件为例,该组件有 12 个参数,每个参数有 2 种可能的值。如果进行全面测试,需要 2^12 = 4096 个测试用例;而使用强度为 2 的覆盖数组进行成对测试,仅需要 7 个测试用例。
覆盖数组的构建是一个具有挑战性的组合问题,许多研究致力于开发有效的构建方法。下面是 Skype 配置参数的表格:
| 参数 | 值 1 | 值 2 |
|
超级会员免费看
订阅专栏 解锁全文
42

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



