Software Product Lines: Concepts and Implementation, Lecture notes of Software Engineering

The concepts and implementation of software product lines, with a focus on quality assurance testing. It includes reading assignments, principles for SPL system testing, domain testing, test strategies, and open vs closed world specifications. based on a course taught by Christian Kaestner at Carnegie Mellon University's Institute for Software Research.

Typology: Lecture notes

2021/2022

Uploaded on 05/11/2023

shahid_88c
shahid_88c ๐Ÿ‡บ๐Ÿ‡ธ

4.4

(26)

261 documents

1 / 15

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
17-708 SOFTWARE PRODUCT LINES:
CONCEPTS AND IMPLEMENTATION
QUALITY ASSURANCE: TESTING
CHRISTIAN KAESTN E R
CARNEGIE M E L L O N U N I V E R S I T Y
INSTITUTE FOR SOF T W A R E R E S E A R C H
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Software Product Lines: Concepts and Implementation and more Lecture notes Software Engineering in PDF only on Docsity!

17-708 SOFTWARE PRODUCT LINES: CONCEPTS AND IMPLEMENTATION QUALITY ASSURANCE: TESTING CHRISTIAN KAESTNER CARNEGIE MELLON UNIVERSITY INSTITUTE FOR SOFTWARE RESEARCH 1

READING

ASSIGNMENT NOV 16

Textbook, Chapter 10 Thaker et al. Safe Composition. GPCE 2007

Requirements-based SPL testing Source: Klaus Pohl and Andreas Metzger. 2006. Software product line testing. Commun. ACM 49, 12 (December 2006), 78-

PRINCIPLES FOR SPL

SYSTEM TESTING

P-1: Preserve Variability in Domain Test Artifacts P-2: Test Commonalities in Domain Engineering P-3: Use Reference Applications to Determine Defects in Frequently Used Variants P-4: Test Commonalities based on a Reference Application P-5: Test Correct Variability Bindings P-6: Reuse Application Test Artifacts across Different Applications Source: Klaus Pohl and Andreas Metzger. 2006. Software product line testing. Commun. ACM 49, 12 (December 2006), 78-

TEST STRATEGIES

Brute Force Strategy Pure Application Strategy Sample Application Strategy Commonality and Reuse Strategy

  • Domain testing aims at testing common parts and preparing test artefacts for variable parts. Application testing aims at reusing the test artefacts for common parts and reusing the predefined, variable domain test artefacts to test specific applications. Source: Pohl et al. Software Product Line Engineering. Chapter Domain Testing. Springer 2005

Source: Greiler, Michaela, Arie Van Deursen, and Margaret-Anne Storey. "Test confessions: a study of testing practices for plug-in systems." Software Engineering (ICSE), 2012 34th International Conference on. IEEE, 2012.

OPEN VS CLOSED

WORLD

What's the Specification?

Typically global property ๐‘ฅ for every program Syntactically correct, well-typed Absence of double-free vulnerabilities Returns positive number for parameter 3 Terminates within 10 seconds Challenge is checking all configurations e.g., โˆ€๐‘ โˆˆ ๐‘ƒ๐ฟ: ๐‘โŠจ๐‘ฅ

Feature-Based Specifications

Property ๐‘ฅ for every program with feature ๐‘“ No access to the file system Renders โ€œ[:weather:]โ€ as Challenge is checking many configurations e.g., โˆ€๐‘ โˆˆ ๐‘ƒ๐ฟ: (๐‘“ โˆˆ ๐‘) (๐‘ โŠจ ๐‘ฅ)

Feature-Based Specification AG (incoming(email e ) & e.isEncrypted => ((outgoing(email e ) => e.isEncrypted) R outgoing(email e )) [Apel et al., COMNETโ€™13]