Using search-based techniques for testing executable software models specified through graph transformations
- PDF / 5,488,706 Bytes
- 28 Pages / 595.276 x 790.866 pts Page_size
- 35 Downloads / 178 Views
ORIGINAL ARTICLE
Using search‑based techniques for testing executable software models specified through graph transformations Anvar Bahrampour1 · Vahid Rafe1 Received: 14 November 2019 / Accepted: 9 June 2020 © Springer-Verlag GmbH Germany, part of Springer Nature 2020
Abstract Design by contract is a software development methodology that uses contracts for defining interfaces among interacting components of a software system. Graph transformation system is used to specify the behavioral aspects of software components by defining the pre- and post-conditions of methods as contracts. In this paper, we focus on testing executable software models specified by a graph transformation system. A set of model-specific coverage criteria and a cost-aware search-based test generation approach are introduced. To evaluate the effectiveness of the proposed coverage criteria and the test generation approach, a type of mutation analysis is presented at the model level. Furthermore, a couple of fault-detection methods are used to assess the quality of the generated tests in the model-level mutation analysis. The proposed approach is implemented in GROOVE, a toolset for model checking graph transformation systems. The empirical results based on some well-known case studies demonstrate the efficiency and scalability of each proposed coverage criterion and testing approach. The comparison of the proposed test generation approach with state-of-the-art techniques indicates a significant improvement in terms of fault-detection capability and testing costs. Keywords Model testing · Graph transformation specification · Specification testing · Design by contract · Coverage criteria
1 Introduction Ensuring the quality of models is one of the challenges in modern model-based development techniques [1, 2]. To address the model correctness, model verification and validation are performed. In the complex systems, it is too costly or even impossible to substantiate the absolute validity of the model within its complete domain of applicability [3]. Tests are conducted to obtain some level of confidence in the validity of the model against its intended purposes [4–6]. Model testing is a type of early testing in which all activities such as test case generation, execution, evaluation, and fault detections are performed on executable models of the System Under Consideration (SUC) [7]. In this paper, we refer to model testing and specification testing as synonyms. * Vahid Rafe v‑[email protected] Anvar Bahrampour a‑[email protected] 1
Department of Computer Engineering, Faculty of Engineering, Arak University, Arak 3815688349, Iran
Design by contract is a software development methodology where the methods of the software components are specified as contracts. A contract consists of a pre and a post-condition. A pre-condition states the requirements to be fulfilled via the method invocation, while the post-conditions show the results of the method execution [8, 9]. Graphs are well-known mathematical tools for visualization, analysis, a
Data Loading...