精准测试实验 贪婪算法:根据测试用例覆盖的方法个数为测试用例排序。 额外贪婪算法: 1.按贪婪算法挑选出第一个测试用例 2.对于剩下的测试用例,删除已选择的测试用例覆盖过的方法 3.对剩下的测试用例进行贪婪算法挑选出(额外)覆盖最多的一个 4.循环2-3直到为所有测试用例排完序 ART(自适应随机算法): 1.随机挑选出一个测试用例 2.从剩下的测试用例中挑选出m个测试用例放入候选集中 3.计算候选集中所有测试用例与已有测试用例集合的距离 4.选取距离最远(即相交程度最小)的测试用例放入已选集合中,其余m-1个测试用例放回未排序集合 5.循环2-4直到为所有测试用例排完序
Genetic算法(遗传算法): 遗传算法模拟了自然选择和遗传中发生的复制、交叉和变异等现象,从任一初始种群(Population)出发,通过随机选择、交叉和变异操作,产生一群更适应环境的个体,使群体进化到搜索空间中越来越好的区域,这样一代一代地不断繁衍进化,最后收敛到一群最适应环境的个体(Individual),求得问题的最优解。 (算法比较麻烦,大概就是迭代选出更好的序列并利用算法模拟变异等,当选出的排序满足阈值或是迭代次数达到终止迭代),详见基因排序.txt
结合算法: 1.第一个测试用例的选择:通过贪婪算法(GREEDY)或者随机(RANDOM)选择 2.距离的计算: a.CLOSED:以已选测试用例集合中距离最近的测试用例的距离作为距离 b.SUM:以与所有已选测试用例的距离之和作为距离 3.候选集的选择: a.GREEDY:通过额外贪婪算法选择候选集 b.RANDOM:通过随机选择候选集 c.COMBINE:同时通过额外贪婪算法选择候选集A和随机选择候选集B,分别计算A与B中测试用例与已选集合的距离并进行归一化处理,将A和B合并为一个候选集 (对于A中仅有的测试用例距离置为alpha*x,对于B中仅有的测试用例距离置为(1-alpha)y,对于AB共有的测试用例距离置为alphax+(1-alpha)*y) 从候选集和中选择距离最远的测试用例加入已选集合,剩下m-1个测试用例放回未选集合