Test Impact Analysis is an approach to obtain a subset of tests impacted by code changes. This approach is mainly applied to unit testing where the link between the code and its associated tests is easy to obtain. On the integration level, however, it is not straightforward to find such a link programmatically, especially when the integration tests are held into separate repositories. We propose an approach for selecting integration tests based on the runtime analysis of code changes to reduce the test execution overhead. We provide a set of tools and a framework that can be plugged into existing CI/CD pipelines. We have evaluated the approach on a range of open-source Java programs and found $\approx$50\% reduction in tests on average, and above 80\% in a few cases. We have also applied the approach to a large-scale commercial system in production and found similar results.
翻译:测试影响分析是一种获得受代码变化影响的一组测试的方法,这种方法主要适用于易于获得代码及其相关测试之间联系的单位测试。然而,在整合层面,在整合层面,特别是整合测试在单独储存库中进行时,发现这种联系并非直接,我们建议一种基于对代码变化的运行时间分析选择集成测试的方法,以减少测试执行管理费用。我们提供了一套工具和框架,可以插入现有的CI/CD管道。我们评估了一系列开放源码 Java程序的方法,发现平均测试额减少$\approx$50 ⁇,少数情况下减少80 ⁇ 以上。我们还对大规模商业生产系统采用了这一方法,并发现了类似的结果。