论文标题
AGA:一种加速的贪婪的附加算法,用于测试案例优先级
AGA: An Accelerated Greedy Additional Algorithm for Test Case Prioritization
论文作者
论文摘要
近年来,已经提出了许多测试案例优先级(TCP)技术来加快故障检测过程。但是,很少考虑这些技术的效率问题。在本文中,我们针对贪婪的附加(GA)算法,该算法被广泛认为是有效但效率较低的算法,并尝试提高其效率的同时确保效率。在加速的GA(AGA)算法中,我们使用一些额外的数据结构来减少GA算法中的冗余数据访问,从而将时间复杂性从$ \ Mathcal {o}(m^2n)$减少到$ \ nathcal {o} $ n $ n $ n是$ n $ n $ n是$ n $ n是$ n $ n是$ n $ n是$ n $ n $ k $ n $ k $ n $ n $ k $ n $ n $ k的数字,是迭代编号。此外,我们观察到迭代编号对我们数据集的优先级效率的影响,并建议在AGA算法中使用特定的迭代编号来进一步提高效率。我们对55名开源受试者进行了实验。特别是,我们使用两种广泛使用的输入格式,邻接矩阵和邻接列表实现了每种TCP算法。由于具有邻接矩阵的TCP算法的效率不如带有邻接列表的算法,因此结果分析主要基于带有邻接列表的TCP算法进行。结果表明,AGA平均达到了5.95倍的加速比,而在检测到的故障百分比方面,它的平均效率与GA相同(APFD)。此外,我们对22名受试者进行了一项工业案例研究,并从BAIDU收集,发现AGA与GA的平均速度比率为44.27倍,这表明在现实世界中,AGA的实际用法。
In recent years, many test case prioritization (TCP) techniques have been proposed to speed up the process of fault detection. However, little work has taken the efficiency problem of these techniques into account. In this paper, we target the Greedy Additional (GA) algorithm, which has been widely recognized to be effective but less efficient, and try to improve its efficiency while preserving effectiveness. In our Accelerated GA (AGA) algorithm, we use some extra data structures to reduce redundant data accesses in the GA algorithm and thus the time complexity is reduced from $\mathcal{O}(m^2n)$ to $\mathcal{O}(kmn)$ when $n > m$, where $m$ is the number of test cases, $n$ is the number of program elements, and $k$ is the iteration number. Moreover, we observe the impact of iteration numbers on prioritization efficiency on our dataset and propose to use a specific iteration number in the AGA algorithm to further improve the efficiency. We conducted experiments on 55 open-source subjects. In particular, we implemented each TCP algorithm with two kinds of widely-used input formats, adjacency matrix and adjacency list. Since a TCP algorithm with adjacency matrix is less efficient than the algorithm with adjacency list, the result analysis is mainly conducted based on TCP algorithms with adjacency list. The results show that AGA achieves 5.95X speedup ratio over GA on average, while it achieves the same average effectiveness as GA in terms of Average Percentage of Fault Detected (APFD). Moreover, we conducted an industrial case study on 22 subjects, collected from Baidu, and find that the average speedup ratio of AGA over GA is 44.27X, which indicates the practical usage of AGA in real-world scenarios.