26
1 A Parallel Evolutionary Algorithm for Prioritized Pairwise Testing of Software Product Lines Roberto E. Lopez-Herrejon *, Javier Ferrer**, Francisco Chicano**, Evelyn Nicole Haslinger*, Alexander Egyed*, Enrique Alba** * Johannes Kepler University Linz, Austria ** University of Malaga, Spain

A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

Embed Size (px)

Citation preview

Page 1: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

1

A Parallel Evolutionary Algorithm for Prioritized Pairwise Testing of

Software Product Lines

Roberto E. Lopez-Herrejon*, Javier Ferrer**, Francisco Chicano**,

Evelyn Nicole Haslinger*, Alexander Egyed*, Enrique Alba*** Johannes Kepler University Linz, Austria

** University of Malaga, Spain

Page 2: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

2

Software Product Lines

Software Product Lines (SPLs)Families of software products

• Each product has different feature combinationsHave multiple economical and technological advantages

• Increased software reuse• Faster time to market• Better customization

FactSPL typically have a large number of products

Page 3: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

3

Software Product Lines Testing

ChallengeHow to test a Software Product Line effectively?

Important factors to considerAvoiding repeating testsWithin the economical and technical constraints

State of the artExtensive work on SPL testing but using SBSE

techniques remains largely unexplored

Page 4: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

4

Our Contributions

Formalization of prioritization testing scheme proposed by Johansen et al.

Implementation with the Parallel Prioritized product line Genetic Solver (PPGS)

Comprehensive evaluation and comparison against greedy approach.

Page 5: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

5

Prioritization Motivation

Key ideasEach feature combination represents an important

product of the SPL

For each relevant product give a positive integer value that reflects the priority of the product

• Market importance• Implementation costs• ...

Page 6: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

6

Feature Models Example

Feature models are the de facto standard to model all valid feature combinations of a product line

rootmandatory

optional

inclusive-or

exclusive-or

Page 7: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

7

Feature List and Feature Set

Example Feature List (FL)Aircraft, Wing, Engine, Materials, High, Shoulder, Low, Piston, Jet, Metal, Wood, Plastic, Cloth

Page 8: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

8

Feature Set Example

Selected = {Aircraft, Wing, High, Engine, Piston, Materials, Cloth}Unselected = {Shoulder, Low, Jet, Metal, Wood, Plastic}

Page 9: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

9

Terminology (3)

Examples of valid feature sets Aircraft, Wing, Engine, Materials, High, Shoulder, Low, Piston,

Jet, Metal, Wood, Plastic, Cloth

315 valid feature

sets

Page 10: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

10

Prioritized Product

Example

pp1 = [p1, 17]

Page 11: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

11

Pairwise configuration

pc1=[{Plastic},{Cloth}] pc2=[{High, Wood},{}]

240 pairwise configuratio

ns

Page 12: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

12

Weighted Pairwise Configuration

17171515131366

pc1=[{Plastic},{Cloth}]

wpc1.w=pp0.w + pp2.w =17 + 15= 32

weights

Page 13: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

13

Prioritized Pairwise Covering Array

Example of ppCA

p1, p2, p5

new products

Challenge: Find a ppCA with the minimum number of feature sets

Page 14: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

14

PPGS Algorithm

Page 15: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

15

Parameter setting

Parameter SettingCrossover type one-pointCrossover probability 0.8Selection strategy binary tournamentPopulation size 10Mutation probability 0.1Termination condition 1000 evaluations

Implemented in JMetal framework

Page 16: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

16

Evaluation

Compared against Prioritized-ICPL (pICPL)Proposed by Johansen et al. (2012)Uses data parallelization

Three different weight priority assignment methods

Different percentages of selected products Ranging from 5% upto 50%

Page 17: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

17

Weight priority assignment methods

1. Measured values 16 real SPL examples Code and feature model

available Non-functional properties

measured (e.g. footprint)

2. Ranked-based values Based on how dissimilar

two products are More dissimilar higher

chances of covering more pairs

3. Random values [Min..Max] range

Page 18: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

18

Experimental corpus

Problem instances G1 = 160 fm X 2 priority assig. X 3 percentages = 960 Problem instances G2 = 59 fm X 2 priority assig. X 3 percentages = 354 Problem instances G3 = 16 fm X 1 priority assig. = 16

Total independent runs = 1330 X 2 algorithms x 30 indep. runs = 79,800

G1 G2 G3 SummaryNumber Feature Models 160 59 16 235 Number Products 16-1K 1K-80K 32-≈3E24 16-≈3E24 Number Features 10-56 14-67 6-101 6-101

Weight Priority AssignmentRK Ranked-Based, RD Random, M Measured

RK,RD RK,RD M

Prioritized Products Percentage 20,30,50 5,10,20 ≈0.0 - 100Problem Instances 960 354 16 1330

Page 19: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

19

Wilcoxon Test (1)

Confidence level 95% We show the mean and standard deviation of number of

products required to cover 50% upto 100% of the total weighted coverage

We highlight where the difference is statistically significant

Group G1 – less than 1000 products

PPGS smaller sizepICPL faster

Page 20: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

20

Wilcoxon Test (2)

PPGS yields test suites of smaller sizes PPGS performs faster than pICPL

Group G2 – from 1,000 to 80,000 products

Page 21: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

21

Wilcoxon Test (3)

Group G3 – Measured Values, 32 to ≈3E24 products

PPGS smaller size

pICPL faster

Page 22: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

22

Â12 measure

Â12 is an effect size measure i.e. value 0.3 means that an algorithm A would obtain lower values

than algorithm B for a measure M in 70% of the times Lower values, PPGS obtains smaller test suites

PPGS obtains smaller size test suites most of the times

pICPL smaller

test suites

pICPL smaller

test suites

PPGS best performance

Page 23: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

23

Threats to Validity

Parameter settingWe use a standard values for our parameters

Experimental corpusSelection of feature models

• Counteract by selecting a large number of feature models, different characteristics, and different provenance

Selection of priority values• Counteract using 3 different approaches based on

ranked values, random values, and measure values from actual non-functional properties

Page 24: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

24

Related Work

Extensive work on software testing prioritization and SBSE but not in SPLs

Some SPL and SBSE testing examplesGarvin et al. – simulated annealingEnsan et al. – genetic algorithm with fitness function

based on cyclomatic complexityHenard et al. – genetic algorithm with fitness function

based on dissimilarity metric

Page 25: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

25

Conclusions and Future Work

Our contributionsFormalization of a prioritization scheme and its

implementation in PPGSEvaluation and comparison against state-of-the-art

greedy algorithm pICPL

Planned future workEvaluate alternative representations of individuals to

obtain better performanceAnalyze adaptable stopping conditions for PPGS

based on characteristics of the feature models

Page 26: A parallel evolutionary algorithm for prioritized pairwise testing of software product lines

26

Acknowledgements

Questions?

Spanish Ministry of Economy and Competitiveness,

FEDER