Classifications for Quality Assurance in Software Product Lines. Pohl et al. [2005]
discuss four strategies for product-line testing. In contrast to our classification, they discuss strategies incorporating tests at different levels including unit tests, integration tests, and system tests. The brute force strategy is similar to unoptimized product-based analysis, but tests are performed at all levels for all products. In contrast, for the pure application strategy, only delivered products are tested in application engineering.
The sample application strategy is equivalent to the sample-based strategy in our classification. Finally, with the commonality and reuse strategy, artifacts common to all products are tested in domain engineering and then all products are tested separately.
These strategies have been defined for product-line testing and do not represent all strategies that we identified in our survey.
Similarly, Metzger [2007] and Lauenroth et al. [2010] discuss three strategies for quality assurance (e.g., model checking) of product lines, namely, commonality strat- egy, sample strategy (similar to sample-based analysis), and comprehensive strategy (similar to unoptimized product-based analysis). The idea of the commonality strat- egy is to check artifacts that are common to all products. Similar to the family-based strategy, the commonality strategy uses the variability model and domain artifacts to retrieve the common artifacts. Similar to the feature-based strategy, it can only uncover
TableV.ClassificationofProduct-LineModelChecking CompositionAnnotationDomain- basedbasedindependentFamily-wideFeaturebasedFamilybased Productbased (unoptimized)Ubayashiand Tamai[2002], Apeletal. [2010b], Besslingand Huhn[2014]
KishiandNoda[2006], FantechiandGnesi[2008]Ubayashiand Tamai[2002], KishiandNoda [2006],Fantechi andGnesi[2008]
Apeletal. [2010b], Besslingand Huhn[2014] Productbased (optimized)PlathandRyan [2001],Katz [2006],Cordy etal.[2012d], Apeletal. [2013c]
Cordyetal. [2012d]PlathandRyan [2001],Katz [2006],Apel etal.[2013c] FamilybasedApeletal. [2011],Sabouri andKhosravi [2012],Apel etal.[2013c], Classenetal. [2013], Greenyeretal. [2013],Sabouri andKhosravi [2013a], Classenetal. [2014]
Fischbeinetal.[2006], Gruleretal.[2008],Post andSinz[2008],Classen etal.[2010],Lauenroth etal.[2010],Schaeferetal. [2010],Asirellietal. [2012],Cordyetal.[2012a], Cordyetal.[2012b],Cordy etal.[2012c],Classenetal. [2013],Cordyetal. [2013a],Cordyetal. 2013b],Sabouriand Khosravi[2013b],terBeek etal.[2013],Sabouriand Khosravi[2014]
PostandSinz [2008],Sabouri andKhosravi [2013a]
Fischbeinetal. [2006],Gruler etal.[2008], Schaeferetal. [2010],Cordyetal. [2012c],Sabouri andKhosravi [2012],Greenyer etal.[2013], Sabouriand Khosravi[2013b], terBeeketal. [2013],Sabouri andKhosravi [2014]
Classenetal. [2010], Lauenrothetal. [2010],Apel etal.[2011], Apeletal. [2013c]
Asirellietal. [2012],Cordy etal.[2012a], Cordyetal. [2012b],Classen etal.[2013], Cordyetal. [2013a],Cordyet al.2013b], Classenetal. [2014] Feature-product basedFislerand Krishnamurthi [2001],Nelson etal.[2001],Li etal.[2002], Blundelletal. [2004],Lietal. [2005],Liu etal.[2011], Istoan[2013]
Istoan[2013]Fislerand Krishnamurthi [2001],Nelson etal.[2001], Blundelletal. [2004],Liuetal. [2011],Istoan [2013]
Lietal.[2002], Lietal.[2005], Istoan[2013]
Table VI. Classification of Product-Line Theorem Proving
Composition based Domain-independent Feature based Product based
(unoptimized)
Harhurin and Hartmann [2008]
Harhurin and Hartmann [2008]
Product based (optimized) Bruns et al. [2011] Bruns et al. [2011]
Family based Th ¨um et al. [2012] Th ¨um et al. [2012]
Feature-product based Batory and B¨orger [2008], Delaware et al.
[2011], Th ¨um et al.
[2011b], Damiani et al. [2012], Delaware et al. [2013]
Delaware et al. [2011], Delaware et al. [2013]
Batory and B¨orger [2008], Th ¨um et al.
[2011b], Damiani et al. [2012]
Feature-family based H ¨ahnle and Schaefer [2012]
H ¨ahnle and Schaefer [2012]
certain faults for a given product line. The commonality strategy is not represented in our classification. However, we have not found any approaches applying this strategy.
Lutz [2007] classifies approaches for product-line verification and validation with respect to the software development life cycle. In particular, he distinguishes require- ments, safety requirements, architecture, design, and implementation. We had the experience that many approaches cannot uniquely be assigned to one of these classes.
For example, most approaches for model checking are applicable to architecture, design, and implementation.
In previous work, we proposed first ideas on a classification into product-based and feature-based verification techniques [Th ¨um et al. 2011b]. In this survey, we extend the classification to family-based and combined strategies, generalize it from verification to software analyses in general, and actually classify existing approaches. Furthermore, we give definitions and examples and discuss advantages and disadvantages of each strategy in detail. In contrast to our early ideas, we strengthened the notion of a feature-based analysis to make researchers and practitioners aware that most analyses do not solely operate on features in isolation and that combinations with product- based or family-based analyses are usually necessary. It is worthwhile to note that von Rhein et al. [2013] already use our classification to model combinations of product-line analyses, but they do not survey the literature on product-line analyses.
Surveys on Quality Assurance in Software Product Lines. Benavides et al. [2010]
survey automated analyses for variability models. These analyses consider only the variability model and can detect anomalies such as dead features or compute statistics such as the number of products. In contrast, our focus is on approaches that operate on source code or models thereof. However, many of the approaches in our survey rely on techniques from this line of research to reason about variability (e.g., for the family-based strategy).
Furthermore, several surveys on product-line testing have been conducted [Tevanlinna et al. 2004; Engstr¨om and Runeson 2011; Da Mota Silveira Neto et al.
2011; Oster et al. 2011; Lee et al. 2012; Carmo Machado et al. 2014]. These surveys are complementary to ours, because we focus on approaches that operate statically and they focus on dynamic analysis and test execution. Nevertheless, our classification could also be applied to testing. While we started to apply our classification to testing approaches, it seems that most approaches for product-line testing are sample-based analyses. However, researchers recently proposed approaches for family-based testing [Kim et al. 2012, 2013; K ¨astner et al. 2012c; Nguyen et al. 2014].
Montagud and Abrah ˜ao [2009] performed a systematic literature review on quality assessment of software product lines. They distinguish between quality assessment applied in domain engineering and application engineering. Etxeberria et al. [2008]
presented a survey that additionally incorporates variability modeling, design, archi- tecture, implementation, and testing. In contrast to both reviews, we focus only on product-line analysis that operates statically, our classification is more fine-grained, and we survey more approaches. Furthermore, we derived a research agenda based on our insights.