一句话:提出混合回归测试选择工具JcgEks,整合静态方法调用图与动态文件级分析,在保证安全性的同时提升精度并减少测试时间。
回归测试选择(RTS)通过仅运行受代码变更影响的测试用例来降低回归测试成本。单一粒度分析存在瓶颈,现有混合粒度RTS技术协同不佳,且静态方法级分析难以处理外部库回调,导致漏选测试用例。为此,提出混合RTS方法JcgEks,在Ekstazi基础上集成静态方法调用图,结合动态与静态分析优势,将精度从类级提升到方法级,安全处理外部库调用;同时提出安全性度量并实现检查工具Checker。在20个开源项目的1000个修订版本上评估,与FineEkstazi相比,JcgEks端到端测试时间和所选测试类数量相当,而FineEkstazi会漏选;与Ekstazi相比,JcgEks端到端时间降低29%,测试类数量减少30.9%,且保证安全性。
Regression Testing Selection (RTS) reduces the cost of regression testing by only running test cases affected by code changes. Due to the bottleneck of single granularity analyses, the latest RTS techniques tend to analyze with mixed granularities. However, a better synergy of the existing RTS techniques is still challenging. Besides, we have found that once existing RTS approaches use static method-level analysis, handling external library callbacks is difficult, leading to the missed selection of affected test cases.To address these difficulties, we introduce a new hybrid RTS approach, JcgEks, which enhances Ekstazi by integrating static method call graphs. It combines the advantages of dynamic and static analyses, improving precision from class-level to method-level and reducing end-to-end time without sacrificing safety. More importantly, JcgEks safely handles external library calls. Besides, we propose a new safety metric and implement the checking tool called Checker to evaluate the safety of RTS tools. We compared JcgEks with four baseline RTS tools in 1000 revisions across 20 open-source projects. The experimental results demonstrate that, compared with the state-of-the-art RTS tool FineEkstazi, JcgEks had the same level of end-to-end testing time and number of selected test classes, while FineEkstazi was confirmed to miss test classes in the experiment. Compared with Ekstazi, JcgEks has reduced end-to-end time by 29% and the number of test classes by 30.9% while ensuring safety.CCS CONCEPTS• Software and its engineering → Software testing and debugging.