Using aspects for testing of embedded software: Experiences from two industrial case studies

Jani Metsä, Shahar Maoz, Mika Katara*, Tommi Mikkonen

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

Abstract

Aspect-oriented software testing is emerging as an important alternative to conventional procedural and object-oriented testing techniques. This paper reports experiences from two case studies where aspects were used for the testing of embedded software in the context of an industrial application. In the first study, we used code-level aspects for testing non-functional properties. The methodology we used for deriving test aspect code was based on translating high-level requirements into test objectives, which were then implemented using test aspects in AspectC++. In the second study, we used high-level visual scenario-based models for the test specification, test generation, and aspect-based test execution. To specify scenario-based tests, we used a UML2-compliant variant of live sequence charts. To automatically generate test code from the models, a modified version of the S2A Compiler, outputting AspectC++ code, was used. Finally, to examine the results of the tests, we used the Tracer, a prototype tool for model-based trace visualization and exploration. The results of the two case studies show that aspects offer benefits over conventional techniques in the context of testing embedded software; these benefits are discussed in detail. Finally, towards the end of the paper, we also discuss the lessons learned, including the technological and other barriers to the future successful use of aspects in the testing of embedded software in industry.

Original languageEnglish
Pages (from-to)185-213
Number of pages29
JournalSoftware Quality Journal
Volume22
Issue number2
DOIs
StatePublished - Jun 2014

Keywords

  • Aspect-oriented programming
  • Case studies
  • Embedded software
  • Software testing

Fingerprint

Dive into the research topics of 'Using aspects for testing of embedded software: Experiences from two industrial case studies'. Together they form a unique fingerprint.

Cite this