双目标模型启发的测试套件最小化贪心算法及对象类型层次分析
测试套件最小化算法
在软件测试中,测试套件的冗余问题会增加测试成本和时间。为了解决这个问题,提出了一种双目标贪心算法(Bi - Objective Greedy, BOG)用于测试套件最小化。
该算法的核心思想是选择既能在执行路径上具有唯一性,又能在故障检测方面有效的测试用例。具体操作依赖于测试用例 - 需求矩阵,该矩阵展示了测试用例和测试需求之间的映射关系,元素为 1 或 0,分别表示满足或不满足需求。
算法主要步骤如下:
1. 步骤 1 :将测试用例 - 需求矩阵与其转置矩阵相乘,结果存储在 multiplied
矩阵中。同时,计算 sumColumns
向量,该向量表示一个测试用例与其他测试用例在需求覆盖上的重叠数量。
2. 步骤 2 :重复选择最优测试用例,直到所有测试需求都得到满足。在每次迭代中,从 multiplied
矩阵中选择具有最大对角值的测试用例放入 maxList
,选择 sumColumns
中具有最小值的测试用例放入 minList
。然后从这两个列表的交集中选择一个测试用例。如果交集为空,则调用 selectOptimumTestCase
函数选择一个接近最优的测试用例。
3. 步骤 3 :更新 selected
向量