Regression testing for software product lines (SPLs) is challenging and can be expensive because it must ensure that all the products of a product family are correct whenever changes are made. SPL regression testing can be made efficient through a test case selection method that selects only the test cases relevant to the changes. In the past, some approaches for SPL test case selection have been proposed. However, either they are not efficient by requiring intervention from human experts or they cannot be used if requirements specifications, architecture and/or traceabilities for test cases are not available or partially eroded. To overcome these limitations, we propose an automated method of source code-based regression test selection for SPLs. Our method reduces unnecessary repetition of the test selection procedure and minimizes the in-depth analysis effort for source code and test cases based on the commonality and variability of a product family. Evaluation results of our method using six product lines show that our method reduces the overall time to perform regression testing by 14.8% ~ 49.1% compared to an approach of repetitively applying the state-of-the-art RTS method for a single product to products of a product family.
제품 라인 회귀 시험은 제품 라인이 변경될 때마다 제품군의 모든 제품들이 올바로 동작한다는 것을 보장해야 하기 때문에 매우 많은 비용이 요구된다. 이러한 비용을 줄이기 위해, 과거에 제품 라인 시험 항목 선택 (SPL regression test selection) 방법들이 제안되었다. 그러나 그들은 전문가의 개입이 필요하거나 요구사항 명세, 아키텍처 등의 산출물이 잘 관리되어 있지 않은 제품 라인을 위해 사용될 수 없는 방법들이다. 또한, 몇몇 연구는 결함을 탐지하는 시험 항목의 일부를 누락하여, 결함 탐지 효과가 떨어지는 방법들이다. 이 문제들을 해결하기 위해, 우리는 제품 라인을 위한 자동화된 코드 기반 회귀 시험 선택 방법을 제안한다. 제안 방법은 제품군의 공통성과 가변성을 기반으로 시험 선택 절차의 불필요한 반복을 줄이고 소스코드와 시험 항목의 분석 활동을 최소화한다. 여섯 개의 제품라인을 이용한 제안 방법의 평가 결과, 제안 방법은 단일 제품을 위한 최신 회귀 시험 선택 방법을 제품군에 반복적으로 적용하는 방법에 비해 회귀 시험 시간을 14.8% ~ 49.1% 줄였다.