Académique Documents
Professionnel Documents
Culture Documents
a r t i c l e
i n f o
Article history:
Received 9 March 2010
Received in revised form 30 November 2010
Accepted 4 December 2010
Available online 16 December 2010
Keywords:
Software product lines
Software testing
Mapping study
a b s t r a c t
Context: In software development, Testing is an important mechanism both to identify defects and assure
that completed products work as specied. This is a common practice in single-system development, and
continues to hold in Software Product Lines (SPL). Even though extensive research has been done in the
SPL Testing eld, it is necessary to assess the current state of research and practice, in order to provide
practitioners with evidence that enable fostering its further development.
Objective: This paper focuses on Testing in SPL and has the following goals: investigate state-of-the-art
testing practices, synthesize available evidence, and identify gaps between required techniques and existing approaches, available in the literature.
Method: A systematic mapping study was conducted with a set of nine research questions, in which 120
studies, dated from 1993 to 2009, were evaluated.
Results: Although several aspects regarding testing have been covered by single-system development
approaches, many cannot be directly applied in the SPL context due to specic issues. In addition, particular aspects regarding SPL are not covered by the existing SPL approaches, and when the aspects are covered, the literature just gives brief overviews. This scenario indicates that additional investigation,
empirical and practical, should be performed.
Conclusion: The results can help to understand the needs in SPL Testing, by identifying points that still
require additional investigation, since important aspects regarding particular points of software product
lines have not been addressed yet.
2010 Elsevier B.V. Open access under the Elsevier OA license.
Contents
1.
2.
3.
4.
5.
6.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Related work. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Literature review method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Research directives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.
Protocol definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.
Question structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.
Research questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.
Search strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.
Data sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.
Studies selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1.
Reliability of inclusion decisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.
Quality evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.
Data extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Outcomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
408
408
409
411
411
411
411
412
412
412
412
413
413
414
414
408
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
6.1.
6.2.
7.
8.
Classification scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1.
Testing strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.2.
Static and dynamic analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.3.
Testing levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.4.
Regression testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.5.
Non-functional testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.6.
Commonality and variability testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.7.
Variant binding time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.8.
Effort reduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.9.
Test measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.
Analysis of the results and mapping of studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1.
Main findings of the study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Threats to validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Concluding remarks and future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appendix A. Quality studies scores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appendix B. List of conferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appendix C. List of journals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Introduction
The increasing adoption of Software Product Lines practices in
industry has yielded decreased implementation costs, reduced
time to market and improved quality of derived products
[17,63]. In this approach, as in single-system development, testing
is essential [36] to uncover defects [68,75]. A systematic testing
approach can save signicant development effort, increase product quality and, customer satisfaction and lower maintenance
costs [32].
As dened in [54], testing in SPL aims to examine core assets,
shared by many products derived from a product line, their individual parts and the interaction among them. Thus, testing in this
context encompasses activities from the validation of the initial
requirements to activities performed by customers to complete
the acceptance of a product, and conrms that testing is still the
most effective method of quality assurance, as observed in [46].
However, despite the obvious benets aforementioned, the
state of software testing practice is not as advanced in general as
software development techniques [32] and, the same holds true
in the SPL context [37,79]. From an industry point of view, with
the growing SPL adoption by companies [81], more efcient and
effective testing methods and techniques for SPL are needed, since
the currently available techniques, strategies and methods make
testing a very challenging process [46]. Moreover, the SPL Testing
eld has attracted the attention of many researchers in the last
years, which result in a large number of publications regarding
general and specic issues. However, the literature has provided
lots of approaches, strategies and techniques, but rather surprisingly little in the way of widely-known empirical assessment of
their effectiveness.
This paper presents a systematic mapping study [67], performed in order to map out the SPL Testing eld, through synthesizing evidence to suggest important implications for practice, as
well as identifying research trends, open issues, and areas for
improvement. Mapping study [67] is an evidence-based approach,
applied in order to provide an overview of a research area, and
identify the quantity and type of research and results available
within it. The results are gained from a dened approach to locate,
assess and aggregate the outcomes from relevant studies, thus providing a balanced and objective summary of the relevant evidence.
Hence, the goal of this investigation is to identify, evaluate, and
synthesize state-of-the-art testing practices in order to present
what has been achieved so far in this discipline. We are also inter-
414
414
414
415
416
416
416
417
417
417
417
418
418
419
419
419
420
421
421
421
ested in identifying practices adopted in single systems development that may be suitable for SPL.
The study also highlights the gaps and identies trends for research and development. Moreover, it is based on analysis of interesting issues, guided by a set of research questions. This systematic
mapping process was conducted from July to December in 2009.
The remainder of this paper is organized as follows: Section 2
presents the related work. In Section 3 the method used in this
study is described. Section 4 presents the planning phase and
the research questions addressed by this study. Section 5 describes its execution, presenting the search strategy used and
the resultant selected studies. Section 6 presents the classication
scheme adopted in this study and reports the ndings. In Section 7
the threats to validity are described. Section 8 draws some conclusions and provides recommendations for further research on this
topic.
2. Related work
As mentioned before, the literature on SPL Testing provides a
large number of studies, regarding both general and specic issues,
as will be discussed later on in this study. Amongst them, we have
identied some studies developed in order to gather and evaluate
the available evidence in the area. They are thus considered as having similar ideas to our mapping study and are next described.
A survey on SPL Testing was performed by Tevanlinna et al.
[79]. They studied approaches to product line testing methodology
and processes that have been developed for or that can be applied
to SPL, laying emphasis on regression testing. The study also evaluates the state-of-the-art in SPL testing, up to the date of the paper,
2004, and highlighted problems to be addressed.
A thesis on SPL Testing published in 2007 by Edwin [20], investigated testing in SPL and possible improvements in testing steps,
tools selections and application applied in SPL testing. It was conducted using the systematic review approach.
A systematic review was performed by Lamancha et al. [48] and
published in 2009. Its main goal was to identify experience reports
and initiatives carried out in Software Engineering related to testing in software product lines. In order to accomplish that, the
authors classied the primary studies in seven categories, including: Unit testing, Integration testing, functional testing, SPL Architecture, Embedded system, testing process and testing effort in SPL.
After that a summary of each area was presented.
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
409
Fig. 1. The systematic mapping process (adapted from Petersen et al. [67]).
410
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
411
412
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
Table 1
List of research strings.
Research strings
1
2
3
4
5
6
7
8
9
10
11
5. Data collection
12
13
14
15
16
17
18
http://www.cin.ufpe.br/sople/testing/ms/
since they are considered the world leading publishers for high
quality publications [11].
Next, conference proceedings were also searched. In cases
which the conference keep the proceedings in a website, making
them available, we accessed the website. When proceedings were
not available by the conference website, the search was done
through DBLP Computer Science Bibliography. 2
When searching conference proceedings and journals, many
were the results that had already been found in the search through
digital libraries. In this case, we discarded the last results, considering only the rst, that had already been included in our results
list.
The lists of Conferences and Journals used in the search for primary studies are available in Appendices B and C.
After performing the search for publications in conferences,
journals, using digital libraries and proceedings, we noticed that
known publications, commonly referenced by other studies in this
eld, such as important technical reports and thesis, had not been
included in our results list. We thus decided to include these grey
literature entries. Grey literature is used to describe materials not
published commercially or indexed by major databases.
http://www.informatik.uni-trier.de/ley/db/
413
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
c.f. http://www.biglever.com/split2008/
ID
Quality criteria
1
2
3
4
5
6
7
8
9
10
Does
Does
Does
Does
Does
Does
it
it
it
it
it
it
11
12
13
14
15
16
Does
Does
Does
Does
Does
Does
it
it
it
it
it
it
deal
deal
deal
deal
deal
deal
with
with
with
with
with
with
binding time?
variability testing?
commonality testing?
effort reduction?
non-functional tests?
any test measure?
414
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
6. Outcomes
In this section, we describe the classication scheme and the results of data extraction. When having the classication scheme in
place, the relevant studies are sorted into the scheme, which is
the real data extraction process. The results of this process is the
mapping of studies, as presented at the end of this section, together
with concluding remarks.
6.1. Classication scheme
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
415
Table 3
Research type facet.
Classes
Description
Validation
research
Evaluation
research
Techniques investigated are novel and have not yet been implemented in practice. Techniques used are for example experiments, i.e., work done in
the lab
Techniques are implemented in practice and an evaluation of the technique is conducted. That means, it is shown how the technique is
implemented in practice (solution implementation) and what are the consequences of the implementation in terms of benets and drawbacks
(implementation evaluation). This also includes to identify problems in industry
A solution for a problem is proposed, the solution can be either novel or a signicant extension of an existing technique. The potential benets and
the applicability of the solution is shown by a small example or a good line of argumentation
These papers sketch a new way of looking at existing things by structuring the eld in form of a taxonomy or conceptual framework
Solution proposal
Philosophical
Papers
Opinion papers
Experience
Papers
These papers express the personal opinion of somebody whether a certain technique is good or bad, or how things should been done. They do not
rely on related work and research methodologies
Experience papers explain what and how something has been done in practice. It has to be the personal experience of the author
416
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
Acceptance testing: Acceptance testing is conducted by the customer but often the developing organization will create and
execute a preliminary set of acceptance tests. In a software
product line organization, commonality among the tests needed
for the various products is leveraged to reduce costs.
A similar division is stated by Wieringa et al. [55], in which the
author denes two separated test processes used in product line
organization, Core Asset Testing and Product Testing.
Some authors [64,75,83] also include system testing in core asset
development. The rationale for including such a level is to produce
abstract test assets to be further reused and adapted when deriving
products in the product development phase.
6.2.4. Regression testing
Even though regression testing techniques have been researched for many years, as stated in [21,26,76], no study gives evidence on regression testing practices applied to SPL. Some
information is presented by a few studies [46,57], where just a
brief overview on the importance of regression testing is given,
but they do not take into account the issues specic to SPLs.
McGregor [54] reports that when a core asset is modied due to
evolution or correction, they are tested using a blend of regression
testing and development testing. According to him, the modied
portion of the asset should be exercised using:
Existing functional tests if the specication of the asset has not
changed;
If the specications has changed, new functional tests are created and executed; and
Structural tests created to cover the new code created during
the modication.
He also highlights the importance of regression test selection
techniques and the automation of the regression execution.
Kauppinen and Taina [37] advocate that the testing process
should be iterative, and based on test execution results, new test
cases should be generated and tests scripts may be updated during
a modication. These test cases are repeated during regression
testing each time a modication is made.
Kolb [45] highlights that the major problems in a SPL context
are the large number of variations and their combinations, redundant work, the interplay between generic components and product-specic components, and regression testing.
Jin-hua et al. [30] emphasize the importance of regression testing when a component or a related component cluster are changed,
saying that regression testing is crucial to perform on the application architecture, which aims to evaluate the application architecture with its specication. Some researchers also developed
approaches to evaluate architecture-based software by using
regression testing [27,58,59].
6.2.5. Non-functional testing
Non-functional issues have a great impact on the architecture
design, where predictability of the non-functional characteristics
of any application derived from the SPL is crucial for any resource-constrained product. These characteristics are well-known
quality attributes, such as response time, performance, availability,
and scalability, that might differ in instances of a product line.
According to [23], testing non-functional quality attributes is
equally important as functional testing.
By analyzing the studies, it was noticed that some of them propose the creation or execution of non-functional tests. Reis and
Metzger [72] presents a technique to support the development of
reusable performance test scenarios to be further reused in application engineering. Feng et al. [22] highlight the importance of
non-functional concerns (performance, reliability, dependability,
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
417
418
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
Table 4
Research questions (RQ) and primary studies.
RQ Primary Studies
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
Q9
[3,8,9,20,29,30,35,38,39,4547,54,55,64,66,7275,83,84]
[3,17,20,39,54]
[3,20,24,29,36,34,30,46,47,49,50,54,55,57,64,61,69,73,75,83,84]
[27,30,37,46,54,57]
[22,23,54,55,60,72]
[3,6,8,9,14,16,20,22,24,29,34,35,39,47,49,50,52,61,66,68,69,7275,83,84]
[14,29,30,52,68]
[3,8,16,20,22,24,28,29,3539,4547,49,50,53,54,6062,65,66,68,73
75,84]
[3,27,30,36,62,66,75]
to systematically sample this space and test only a portion of the feasible system behavior [14]. The use of covering arrays as a test coverage strategy is addressed in [14]. Kauppinen and Tevanlinna [38]
dene coverage criteria for estimating the adequacy of testing in a
SPL context. They propose two coverage criteria for frameworkbased product lines: hook and template coverage, that is, variation
points open for customization in a framework are implemented as
hook classes and stable parts as template classes. They are used to
measure the coverage of frameworks or other collections of classes
in an application by counting the structures or hook method references from them instead of single methods or classes.
6.3. Analysis of the results and mapping of studies
The analysis of the results enables us to present the amount of
studies that match each category addressed in this study. It makes
it possible to identify what have been emphasized in past research
and thus to identify gaps and possibilities for future research [67].
Initially, let us analyze the distribution of studies regarding our
analysis point of view. Figs. 6 and 7, that present respectively the
frequencies of publications according to the classes of the research
facet and according to the research questions addressed by them
(represented by Q1 to Q9). Table 4 details Fig. 7 showing which papers answer each research question. It is valid to mention that, in
both categories, it was possible to have a study matching more
than one topic. Hence, the total amount veried in Figs. 6 and 7 exceeds the nal set of primary studies selected for detailed analysis.
When merging these two categories, we have a quick overview
of the evidence gathered from the analysis of the SPL testing eld.
We used a bubble plot to represent the interconnected frequencies,
as shown in Fig. 8. This is basically a xy scatterplot with bubbles
in category intersections. The size of a bubble is proportional to the
number of articles that are in the pair of categories corresponding
to the bubble coordinates [67].
The classication scheme applied in this paper enabled us to infer that researchers are mostly in the business of proposing new
techniques and investigating their properties more than evaluating
and/or experiencing them in practice, through proposing new solutions, as seen in Fig. 8. Solution Proposal is the topic with more
entries, considering the research facets. Within this facet, most
studies address the questions Q1 (testing strategies), Q3 (testing
levels), Q6 (commonality and variability analysis) and Q8 (effort
reduction). They have really been the overall focus of researchers.
On the other hand we have pointed out topics in which new solutions are required, it is the case of Q2 (static and dynamic analysis
interconnection in SPL Testing), Q4 (regression testing), Q5 (nonfunctional testing), Q7 (variant binding time) and Q9 (measures).
Although some topics present a relevant amount of entries in
this analysis, such as Q1, Q3, Q6 and Q8, as aforementioned, these
still lack eld research, since the techniques investigated and proposed are mostly novel and have usually not yet been implemented in practice. We realize that currently, Validation and
Evaluation Research are weakly addressed in SPL Testing papers.
Regarding the maturity of the eld in terms of validation and evaluation research and solution papers, other studies report results in
line with our ndings, e.g. [80]. Hence, we realize that this is not a
problem solely to SPL testing, but rather it involves, in a certain
way, other software engineering practices.
We also realize that researchers are not concerned about Experience Reports on their personal experience using particular approaches. Practitioners in the eld should report results on the
adoption, in the real world of the techniques proposed and reported
in the literature. Moreover, authors should Express Opinions
about the desirable direction of SPL Testing research, expressing
their experts viewpoint.
In fact, the volume of literature devoted to testing software
product lines attests to the importance assigned to it by the product line community. In the following subsection we detail what we
considered most relevant in our analysis.
6.3.1. Main ndings of the study
We identied a number of test strategies that have been applied to software product lines. Many of these strategies address
different aspects of the testing process and can be applied simultaneously. However, we have no evidence about the effectiveness of
combining strategies, and in which context it could be suitable. The
analyzed studies do not cover this potential. There is only a brief
indication that the decision about which kind of strategy to adopt
depends on a set of factors such as software development process
model, languages used, company and team size, delivery time, and
budget. Moreover, it is a decision made in the planning stage of the
product line organization since the strategy affects activities that
begin during requirements denition. But it still remains as
hypotheses, that need to be supported or refuted through formal
experiments and/or case studies.
A complete testing process should dene both static and dynamic analyses. We found that even though some studies emphasize the importance of static analysis, few detail how this is
performed in a SPL context [39,54,79], despite its relevance in single-system development. Static analysis is particularly important
in a product line process since many of the most useful assets
are non-code assets and particularly the quality of the software
architecture is critical to success.
Specic testing activities are divided across the two types of
activities: domain engineering and application engineering.
Alternatively, the testing activities can be grouped into core asset
and product development. From the set of studies, around four
[29,30,36,20] adopt (or advocate the use of) the V-model as an approach to represent testing throughout the software development
life cycle. As a widely adopted strategy in single-system development, tailoring V-model to SPL could result in improved quality.
However, there is no consensus on the correct set of testing levels
for each SPL phase.
We did not nd evidence regarding the impact for the SPL of not
performing a specic testing level in domain or application engineering. For example, is there any consequence if, for example
unit/integration/system testing was not performed in domain engineering? We need investigations to verify such an aspect. Moreover,
what are the needed adaptations for the V-model to be effective in
the SPL context? This is a point which experimentation is welcome,
in order to understand the behavior of testing levels in SPL.
A number of the studies addressed, or assumed, that testing activities are automated (e.g. [16,49]). In a software product line automation is more feasible because the resources required to automate are
amortized over the larger number of products. The resources are also
more narrowly focused due to the overlap of the products. Some of
the studies illustrated that the use of domain specic languages,
and the tooling for those languages, is more feasible in a software
product line context. Nevertheless, we need to understand if the
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
419
Acknowledgments
This work was partially supported by the National Institute of
Science and Technology for Software Engineering (INES4), funded
by CNPq and FACEPE, grants 573964/2008-4 and APQ-1037-1.03/08.
4
http://www.ines.org.br
420
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
REF
Study title
Year
1
2
Condron [16]
Feng et al. [22]
2004
2007
2
1.5
0
0
2
2.5
3
4
5
6
7
8
2003
2006
2003
2006
2004
2004
2.5
1.5
2
0
1
1
1
2
1
0
2
1.5
1.5
3
2.5
1
0.5
2.5
9
10
Harrold [27]
Li et al. [49]
1998
2007
0
1
0.5
1
2
2
11
12
13
14
15
16
McGregor [55]
Kolb and Muthig [46]
Cohen et al. [14]
Pohl and Sikora [69]
Kishi and Noda [39]
Kauppinen et al. [38]
2002
2003
2006
2005
2006
2004
2
0
1
1
2
0.5
2
3
1.5
0
1.5
0.5
0.5
1.5
2
1
2
3
17
2007
18
2006
1.5
1.5
19
20
21
2005
2005
2008
2
0
2.5
1
1
6
3.5
1
3.5
22
23
24
25
26
27
28
29
30
31
2003
2009
2005
2007
2003
2006
2001
2006
2001
2006
0.5
3
2.5
0
0
0.5
1.5
0
4
0
1
0.5
1
0.5
0
0
1
2
1.5
1
3
3.5
1
2
0.5
2.5
0.5
2
2
0.5
32
33
34
Kauppinen [36]
Edwin [20]
Al-Dallal and Sorenson [3]
2003
2007
2008
0.5
2
3
0.5
2.5
1
2
2
4
35
36
37
38
39
40
2003
2004
2006
2008
2007
2009
0.5
0
3
1
2
0
1.5
1
1
3
2
0
1.5
2.5
4.5
1.5
1
1
2008
2004
2003
0
0.5
0
0
1.5
2.5
2
2
1
2005
2003
1
1
1.5
1
1
2.5
41
42
43
44
45
The shaded lines represent the most relevant studies according to the grades.
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
421
Acronym
Conference name
Journals
AOSD
APSEC
ASE
CAiSE
CBSE
COMPSAC
CSMR
ECBS
ECOWS
ECSA
ESEC
ESEM
WICSA
FASE
GPCE
ICCBSS
ICSE
ICSM
ICSR
ICST
ICWS
IRI
ISSRE
MODELS
PROFES
QoSA
QSIC
ROSATEA
SAC
SEAA
SEKE
SERVICES
SPLC
SPLiT
TAIC PART
TEST
References
[1] W. Afzal, R. Torkar, R. Feldt, A systematic mapping study on non-functional
search-based software testing, in: SEKE08: Proceedings of the 20th
International Conference on Software Engineering and Knowledge
Engineering, Redwood City, California, USA, 2008, pp. 488493
[2] W. Afzal, R. Torkar, R. Feldt, A systematic review of search-based testing for
non-functional system properties, Information and Software Technology 51 (6)
(2009) 957976.
[3] J. Al-Dallal, P.G. Sorenson, Testing software assets of framework-based product
families during application engineering stage, Journal of Software 3 (5) (2008)
1125.
[4] P. Ammann, J. Offutt, Introduction to Software Testing, 1st ed., Cambridge
University Press, 2008.
[5] J. Bailey, D. Budgen, M. Turner, B. Kitchenham, P. Brereton, S. Linkman,
Evidence relating to object-oriented software design: a survey, in: ESEM 07:
Proceedings of the First International Symposium on Empirical Software
Engineering and Measurement, Washington, DC, USA, 2007, pp. 482484.
[6] Beatriz Prez Lamancha, M.P. Macario Polo Usaola, Towards an automated
testing framework to manage variability using the UML testing prole, in:
AST09: Proceedings of the Workshop on Automation of Software Test (ICSE),
Vancouver, Canada, 2009, pp. 1017.
[7] A. Bertolino, Software testing research: achievements, challenges, dreams, in:
FOSE 07: Future of Software Engineering, Washington, DC, USA, 2007, pp. 85
103.
[8] A. Bertolino, S. Gnesi, PLUTO: a test methodology for product families, in:
Software Product-Family Engineering, 5th International Workshop, PFE, Siena,
Italy, 2003a, pp. 181197.
[9] A. Bertolino, S. Gnesi, Use case-based testing of product lines, ACM SIGSOFT
Software Engineering Notes 28 (5) (2003) 355358.
[10] Y.M. Bezerra, T.A.B. Pereira, G.E. da Silveira, A systematic review of software
product lines applied to mobile middleware, in: ITNG 09: Proceedings of the
2009 Sixth International Conference on Information Technology: New
Generations, Washington, DC, USA, 2009, pp. 10241029.
[11] P. Brereton, B.A. Kitchenham, D. Budgen, M. Turner, M. Khalil, Lessons
from applying the systematic literature review process within the
software engineering domain, Journal of Systems and Software 80 (4)
(2007) 571583.
[12] D. Budgen, M. Turner, P. Brereton, B. Kitchenham, Using Mapping Studies in
Software Engineering, in: Proceedings of PPIG Psychology of Programming
Interest Group 2008, Lancaster University, UK, 2008, pp. 195204.
[13] L. Chen, M.A. Babar, N. Ali, Variability management in software product lines: a
systematic review, in: SPLC09: Proceedings of 13th Software Product Line
Conference, San Francisco, CA, USA, 2009.
[14] M.B. Cohen, M.B. Dwyer, J. Shi, Coverage and adequacy in software product line
testing, in: ROSATEA 06: Proceedings of the ISSTA 2006 Workshop on Role of
Software Architecture for Testing and Analysis, ACM, New York, NY, USA, 2006,
pp. 5363.
[15] N. Condori-Fernandez, M. Daneva, K. Sikkel, R. Wieringa, O. Dieste, O. Pastor, A
systematic mapping study on empirical evaluation of software requirements
specications techniques, in: ESEM 09: Proceedings of the 2009 3rd
International Symposium on Empirical Software Engineering and
Measurement, Washington, DC, USA, 2009, pp. 502505.
[16] C. Condron, A domain approach to test automation of product lines, in:
SPLiT04: In International Workshop on Software Product Line Testing, Boston,
MA, USA, 2004, pp. 2735.
[17] C. Denger, R. Kolb, Testing and inspecting reusable product line components:
rst empirical results, in: ISESE06: Proceedings of the International
Symposium on Empirical Software Engineering, New York, NY, USA, 2006,
pp. 184193
422
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
[47] R. Kolb, D. Muthig, Making testing product lines more efcient by improving
the testability of product line architectures, in: ROSATEA 06: Proceedings of
the ISSTA Workshop on Role of Software Architecture for Testing and Analysis,
New York, NY, USA, 2006, pp. 2227.
[48] B.P. Lamancha, M.P. Usaola, M.P. Velthius, Software product line testing a
systematic review, in: ICSOFT International Conference on Software and Data
Technologies, INSTICC Press, 2009, pp. 2330.
[49] J.J. Li, D.M. Weiss, J.H. Slye, Automatic system test generation from unit tests of
exvantage product family, in: SPLIT 07: Proceedings of the International
Workshop on Software Product Line Testing, Kyoto, Japan, 2007a, pp. 73
80.
[50] J.J. Li, B. Geppert, F. Roessler, D. Weiss, Reuse execution traces to reduce testing
of product lines, in: SPLIT 07: Proceedings of the International Workshop on
Software Product Line Testing, Kyoto, Japan, 2007b.
[51] L.B. Lisboa, V.C. Garcia, D. Lucrdio, E.S. de Almeida, S.R. de Lemos Meira, R.P.
de Mattos Fortes, A systematic review of domain analysis tools, Information
and Software Technology 52 (1) (2010) 113.
[52] J. McGregor, P. Sodhani, S. Madhavapeddi, Testing variability in a software
product line, in: SPLIT 04: Proceedings of the International Workshop on
Software Product Line Testing, Boston, Massachusetts, USA, 2004, p. 45
[53] J.D. McGregor, Structuring test assets in a product line effort, in: ICSE01: In
Proceedings of the 2nd International Workshop on Software Product Lines:
Economics, Architectures, and Implications, Toronto, Ontario, Canada, 2001a,
pp. 8992
[54] J.D. McGregor, Testing a software product line, Technical Report CMU/SEI2001-TR-022, 2001b.
[55] J.D. McGregor, Building reusable test assets for a product line, in: ICSR02:
Proceedings of 7th International Conference on Software Reuse, Austin, Texas,
USA, 2002, pp. 345346
[56] M.B.S. Moraes, E.S. Almeida, S.R. de Lemos Meira, A systematic review on
software product lines scoping, in: ESELAW09: Proceedings of the VI
Experimental Software Engineering Latin American Workshop, Sao Carlos-SP,
Brazil, 2009
[57] H. Muccini, A. van der Hoek, Towards testing product line architectures,
Electronic Notes in Theoretical Computer Science 82 (6) (2003).
[58] H. Muccini, M.S. Dias, D.J. Richardson, Towards software architecture-based
regression testing, in: WADS 05: Proceedings of the Workshop on Architecting
Dependable Systems, New York, NY, USA, 2005, pp. 17.
[59] H. Muccini, M. Dias, D.J. Richardson, Software architecture-based regression
testing, Journal of Systems and Software 79 (10) (2006) 13791396.
[60] C. Nebut, F. Fleurey, Y.L. Traon, J.-M. JTzTquel, A requirement-based approach
to test product families, in: PFE03: Proceedings of 5th International Workshop
Software Product-Family Engineering, Siena, Italy, 2003, pp. 198210.
[61] C. Nebut, Y.L. Traon, J.-M. Jzquel, System testing of product lines: from
requirements to test cases, in: [34], 2006, pp. 447477.
[62] D. Needham, S. Jones, A software fault tree metric, in: ICSM06: Proceedings of
the International Conference on Software Maintenance, Philadelphia,
Pennsylvania, USA, 2006, pp. 401410.
[63] L.M. Northrop, P.C. Clements, A framework for software product line practice,
version 5.0. Technical report, Software Engineering Institute, 2007.
[64] E. Olimpiew, H. Gomaa, Reusable system tests for applications derived from
software product lines, in: SPLIT 05: Proceedings of the International
Workshop on Software Product Line Testing, Rennes, France, 2005a.
[65] E.M. Olimpiew, H. Gomaa, Model-based testing for applications derived from
software product lines, in: A-MOST05: Proceedings of the 1st International
Workshop on Advances in model-based testing, New York, NY, USA., 2005b,
pp. 17.
[66] E.M. Olimpiew, H. Gomaa, Reusable model-based testing, in: ICSR 09:
Proceedings of the 11th International Conference on Software Reuse, Berlin,
Heidelberg, 2009, pp. 7685.
[67] K. Petersen, R. Feldt, S. Mujtaba, M. Mattsson, Systematic mapping studies in
software engineering, in: EASE 08: Proceedings of the 12th International
Conference on Evaluation and Assessment in Software Engineering, University
of Bari, Italy, 2008.
[68] K. Pohl, A. Metzger, Software product line testing, Communications of the ACM
49 (12) (2006) 7881.
[69] K. Pohl, E. Sikora, Documenting variability in test artefacts, in: Software
Product Lines, Springer, 2005, pp. 149158.
[70] K. Pohl, G. Bckle, F.J. van der Linden, Software Product Line Engineering:
Foundations, Principles and Techniques, Springer, 2005.
[71] R. Pretorius, D. Budgen, A mapping study on empirical evidence related to the
models and forms used in the UML, in: ESEM08: Proceedings of Empirical
Software Engineering and Measurement, Kaiserslautern, Germany, 2008, pp.
342344.
[72] S. Reis, A.P.K. Metzger, A reuse technique for performance testing of software
product lines, in: SPLIT 05: Proceedings of the International Workshop on
Software Product Line Testing, Baltimore, Maryland, USA, 2006.
[73] S. Reis, A. Metzger, K. Pohl, Integration testing in software product line
engineering: a model-based technique, in: FASE07: Proceedings of the
Fundamental Approaches to Software Engineering, Braga, Portugal, 2007, pp.
321335.
[74] A. Reuys, E. Kamsties, K. Pohl, S. Reis, Model-based system testing of software
product families, in: CAiSE05: Proceedings of International Conference on
Advanced Information Systems Engineering, 2005, pp. 519534.
[75] A. Reuys, S. Reis, E. Kamsties, K. Pohl, The scented method for testing software
product lines, in: [34], 2006, pp. 479520.
P.A. da Mota Silveira Neto et al. / Information and Software Technology 53 (2011) 407423
[76] G. Rothermel, M.J. Harrold, Analyzing regression test selection techniques,
IEEE Transactions on Software Engineering 22 (8) (1996) 529551.
[77] J. Rumbaugh, I. Jacobson, G. Booch, Unied Modeling Language Reference
Manual, second ed., Pearson Higher Education, 2004
[78] E.D. Souza Filho, R. Oliveira Cavalcanti, D.F. Neiva, T.H. Oliveira, L.B. Lisboa, E.S.
Almeida, S.R. Lemos Meira, Evaluating domain design approaches using
systematic review, in: ECSA 08: Proceedings of the 2nd European
conference on Software Architecture, Berlin, Heidelberg, 2008, pp. 5065.
[79] A. Tevanlinna, J. Taina, R. Kauppinen, Product family testing: a survey, ACM
SIGSOFT Software Engineering Notes 29 (2) (2004) 12.
[80] D. mite, C. Wohlin, T. Gorschek, R. Feldt, Empirical evidence in global software
engineering: a systematic review, Empirical Software Engineering 15 (1)
(2010) 91118.
423
[81] D.M. Weiss, The product line hall of fame, in: SPLC 08: Proceedings of the 2008
12th International Software Product Line Conference, IEEE Computer Society,
Washington, DC, USA, 2008, p. 39.
[82] R. Wieringa, N.A.M. Maiden, N.R. Mead, C. Rolland, Requirements engineering
paper classication and evaluation criteria: a proposal and a discussion,
Requirements Engineering 11 (1) (2006) 102107.
[83] A. Wbbeke, Towards an efcient reuse of test cases for software product lines,
in: SPLC08: Proceedings of Software Product Line Conference, 2008, pp. 361
368.
[84] H. Zeng, W. Zhang, D. Rine, Analysis of testing effort by using core assets in
software product line testing, in: SPLIT 04: Proceedings of the International
Workshop on Software Product Line Testing, Boston, MA. 2004, pp. 16.