Automated test reuse for highly configurable software
- PDF / 2,076,536 Bytes
- 38 Pages / 439.642 x 666.49 pts Page_size
- 107 Downloads / 243 Views
Automated test reuse for highly configurable software Stefan Fischer1 · Gabriela Karoline Michelon2 · Rudolf Ramler1 · Lukas Linsbauer3 · Alexander Egyed2
© Springer Science+Business Media, LLC, part of Springer Nature 2020
Abstract Dealing with highly configurable systems is generally very complex. Researchers and practitioners have conceived hundreds of different analysis techniques to deal with different aspects of configurable systems. One large focal point is the testing of configurable software. This is challenging due to the large number of possible configurations. Moreover, tests themselves are rarely configurable and instead built for specific configurations. However, existing tests need to be adapted to run on a different configuration. In this paper, we report on an experiment about automatically reusing existing tests in configurable systems. We used manually developed tests for specific configurations of three configurable systems and investigated how changing the configuration affects the tests. Subsequently, we employed an approach for automated reuse to generate new test variants (by reusing from existing ones) for combinations of previous configurations and compared their results to the ones from existing tests. Our results showed that we could directly reuse some tests for different configurations. Nonetheless, our automatically generated test variants generally yielded better results. Our generated tests had a higher or equal success rate to the existing tests in most cases. Even in the cases the success rate was equal, our generated tests generally had higher code coverage. Keywords Variability · Configurable software · Clone-and-own · Reuse · Testing
1 Introduction To keep pace with the growing demand for custom tailored software products, companies develop configurable software systems. A range of techniques has been devised for the development and maintenance of configurable software. Many large-scale configurable systems, with thousands of configuration options, have been engineered. For instance, the Linux kernel has several thousands of configuration options, supporting a wide range of Communicated by: Laurence Duchien, Thomas Th¨um and Paul Gr¨unbacher This article belongs to the Topical Collection: Configurable Systems Stefan Fischer
[email protected]
Extended author information available on the last page of the article.
Empirical Software Engineering
different hardware from hand held devices (e.g. Android phones) to large supercomputer clusters (Berger et al. 2013). The customizability of software has the advantage of more flexibility to meet specific customer requirements. However, a large number of configuration options means that there are often myriads of configurations that can be derived from the system. This variability is challenging for many tasks when working with configurable software. Not only do all the configuration options have to be considered in the development process, but also potential interactions between them. Broadly speaking, an interaction occurs w
Data Loading...