Automating system test case classification and prioritization for use case-driven testing in product lines

  • PDF / 4,516,413 Bytes
  • 59 Pages / 439.642 x 666.49 pts Page_size
  • 80 Downloads / 229 Views

DOWNLOAD

REPORT


Automating system test case classification and prioritization for use case-driven testing in product lines Ines Hajri1 · Arda Goknil1 · Fabrizio Pastore1

· Lionel C. Briand1,2

© Springer Science+Business Media, LLC, part of Springer Nature 2020

Abstract Product Line Engineering (PLE) is a crucial practice in many software development environments where software systems are complex and developed for multiple customers with varying needs. At the same time, many development processes are use case-driven and this strongly influences their requirements engineering and system testing practices. In this paper, we propose, apply, and assess an automated system test case classification and prioritization approach specifically targeting system testing in the context of use case-driven development of product families. Our approach provides: (i) automated support to classify, for a new product in a product family, relevant and valid system test cases associated with previous products, and (ii) automated prioritization of system test cases using multiple risk factors such as fault-proneness of requirements and requirements volatility in a product family. Our evaluation was performed in the context of an industrial product family in the automotive domain. Results provide empirical evidence that we propose a practical and beneficial way to classify and prioritize system test cases for industrial product lines. Keywords Product Line Engineering · Use case driven development · Regression testing · Test case selection and prioritization · Automotive · Requirements engineering

Communicated by: Sven Apel  Fabrizio Pastore

[email protected] Ines Hajri [email protected] Arda Goknil [email protected] Lionel C. Briand [email protected]; [email protected] 1

SnT Centre, University of Luxembourg, Luxembourg, Luxembourg

2

School of EECS, University of Ottawa, Ottawa, Canada

Empirical Software Engineering

1 Introduction Product Line Engineering (PLE) is a common practice in many domains such as automotive and avionics to enhance product quality, to reduce development costs, and to improve time-to-market (Pohl et al. 2005). In such domains, many development processes are use case-driven and this strongly influences their requirements engineering and system testing practices (Nebut et al. 2006a, b; Wang et al. 2015a, b). For example, IEE S.A. (in the following “IEE”) (IEE 2018), a leading supplier of embedded software and hardware systems in the automotive domain and the case study supplier in this paper, develops automotive sensing systems enhancing safety and comfort in vehicles for multiple major car manufacturers worldwide. The current development and testing practice at IEE is use case-driven, and IEE, like many other development environments, follows the common product line testing strategy referred to as opportunistic reuse of test assets (Da Mota Silveira Neto et al. 2011). A new product line is typically started with a first product from an initial customer. Analysts elicit requirements as use case specific