Practical Constraint Solving for Generating System Test Data

Ghanem Soltana, Mehrdad Sabetzadeh, Lionel C. Briand

Research output: Contribution to journalArticlepeer-review

Abstract

The ability to generate test data is often a necessary prerequisite for automated software testing. For the generated data to be fit for their intended purpose, the data usually have to satisfy various logical constraints. When testing is performed at a system level, these constraints tend to be complex and are typically captured in expressive formalisms based on first-order logic. Motivated by improving the feasibility and scalability of data generation for system testing, we present a novel approach, whereby we employ a combination of metaheuristic search and Satisfiability Modulo Theories (SMT) for constraint solving. Our approach delegates constraint solving tasks to metaheuristic search and SMT in such a way as to take advantage of the complementary strengths of the two techniques. We ground our work on test data models specified in UML, with OCL used as the constraint language. We present tool support and an evaluation of our approach over three industrial case studies. The results indicate that, for complex system test data generation problems, our approach presents substantial benefits over the state-of-the-art in terms of applicability and scalability.

Original languageEnglish
Article number3381032
JournalACM Transactions on Software Engineering and Methodology
Volume29
Issue number2
DOIs
Publication statusPublished - 4 Mar 2020
Externally publishedYes

Keywords

  • metaheuristic search
  • model-driven engineering
  • OCL
  • SMT
  • System testing
  • test data generation
  • UML

Fingerprint

Dive into the research topics of 'Practical Constraint Solving for Generating System Test Data'. Together they form a unique fingerprint.

Cite this