Testing aspect-oriented programs with finite state machines

Dianxiang Xu, Omar El-Ariss, Weifeng Xu, Linzhang Wang

Research output: Contribution to journalArticle

10 Citations (Scopus)

Abstract

Aspect-oriented programming yields new types of programming faults due to the introduction of new constructs for dealing with crosscutting concerns. To reveal aspect faults, this paper presents a framework for testing whether or not aspect-oriented programs conform to their state models. It supports two families of strategies (i.e. structure-oriented and property-oriented) for automated generation of aspect tests from aspect-oriented state models. A structure-oriented testing strategy derives tests and test code from an aspect-oriented state model to meet a given structural coverage criterion, such as state coverage, transition coverage, or round trip. A property-oriented testing strategy generates test code from the counterexamples of model checking. Two such strategies are checking an aspect-oriented state model against trap properties and checking mutants of aspect models against system properties. Mutation analysis of aspect-oriented programs is used to evaluate the effectiveness of these testing strategies. The experiments demonstrate that testing aspect-oriented programs against their state models can detect many aspect faults. The comparative evaluations also reveal that the structure-oriented and property-oriented testing strategies complement each other-some aspect faults were detected by the structure-oriented strategies, but not by the property-oriented strategies and vice versa.

Original languageEnglish (US)
Pages (from-to)267-293
Number of pages27
JournalSoftware Testing Verification and Reliability
Volume22
Issue number4
DOIs
StatePublished - Jun 1 2012

Fingerprint

Finite automata
Testing
Aspect oriented programming
Model checking
Computer programming
Experiments

All Science Journal Classification (ASJC) codes

  • Software
  • Safety, Risk, Reliability and Quality

Cite this

Xu, Dianxiang ; El-Ariss, Omar ; Xu, Weifeng ; Wang, Linzhang. / Testing aspect-oriented programs with finite state machines. In: Software Testing Verification and Reliability. 2012 ; Vol. 22, No. 4. pp. 267-293.
@article{19ddbfe2d6fe479e87cc396a624f5a55,
title = "Testing aspect-oriented programs with finite state machines",
abstract = "Aspect-oriented programming yields new types of programming faults due to the introduction of new constructs for dealing with crosscutting concerns. To reveal aspect faults, this paper presents a framework for testing whether or not aspect-oriented programs conform to their state models. It supports two families of strategies (i.e. structure-oriented and property-oriented) for automated generation of aspect tests from aspect-oriented state models. A structure-oriented testing strategy derives tests and test code from an aspect-oriented state model to meet a given structural coverage criterion, such as state coverage, transition coverage, or round trip. A property-oriented testing strategy generates test code from the counterexamples of model checking. Two such strategies are checking an aspect-oriented state model against trap properties and checking mutants of aspect models against system properties. Mutation analysis of aspect-oriented programs is used to evaluate the effectiveness of these testing strategies. The experiments demonstrate that testing aspect-oriented programs against their state models can detect many aspect faults. The comparative evaluations also reveal that the structure-oriented and property-oriented testing strategies complement each other-some aspect faults were detected by the structure-oriented strategies, but not by the property-oriented strategies and vice versa.",
author = "Dianxiang Xu and Omar El-Ariss and Weifeng Xu and Linzhang Wang",
year = "2012",
month = "6",
day = "1",
doi = "10.1002/stvr.440",
language = "English (US)",
volume = "22",
pages = "267--293",
journal = "Software Testing Verification and Reliability",
issn = "0960-0833",
publisher = "John Wiley and Sons Ltd",
number = "4",

}

Testing aspect-oriented programs with finite state machines. / Xu, Dianxiang; El-Ariss, Omar; Xu, Weifeng; Wang, Linzhang.

In: Software Testing Verification and Reliability, Vol. 22, No. 4, 01.06.2012, p. 267-293.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Testing aspect-oriented programs with finite state machines

AU - Xu, Dianxiang

AU - El-Ariss, Omar

AU - Xu, Weifeng

AU - Wang, Linzhang

PY - 2012/6/1

Y1 - 2012/6/1

N2 - Aspect-oriented programming yields new types of programming faults due to the introduction of new constructs for dealing with crosscutting concerns. To reveal aspect faults, this paper presents a framework for testing whether or not aspect-oriented programs conform to their state models. It supports two families of strategies (i.e. structure-oriented and property-oriented) for automated generation of aspect tests from aspect-oriented state models. A structure-oriented testing strategy derives tests and test code from an aspect-oriented state model to meet a given structural coverage criterion, such as state coverage, transition coverage, or round trip. A property-oriented testing strategy generates test code from the counterexamples of model checking. Two such strategies are checking an aspect-oriented state model against trap properties and checking mutants of aspect models against system properties. Mutation analysis of aspect-oriented programs is used to evaluate the effectiveness of these testing strategies. The experiments demonstrate that testing aspect-oriented programs against their state models can detect many aspect faults. The comparative evaluations also reveal that the structure-oriented and property-oriented testing strategies complement each other-some aspect faults were detected by the structure-oriented strategies, but not by the property-oriented strategies and vice versa.

AB - Aspect-oriented programming yields new types of programming faults due to the introduction of new constructs for dealing with crosscutting concerns. To reveal aspect faults, this paper presents a framework for testing whether or not aspect-oriented programs conform to their state models. It supports two families of strategies (i.e. structure-oriented and property-oriented) for automated generation of aspect tests from aspect-oriented state models. A structure-oriented testing strategy derives tests and test code from an aspect-oriented state model to meet a given structural coverage criterion, such as state coverage, transition coverage, or round trip. A property-oriented testing strategy generates test code from the counterexamples of model checking. Two such strategies are checking an aspect-oriented state model against trap properties and checking mutants of aspect models against system properties. Mutation analysis of aspect-oriented programs is used to evaluate the effectiveness of these testing strategies. The experiments demonstrate that testing aspect-oriented programs against their state models can detect many aspect faults. The comparative evaluations also reveal that the structure-oriented and property-oriented testing strategies complement each other-some aspect faults were detected by the structure-oriented strategies, but not by the property-oriented strategies and vice versa.

UR - http://www.scopus.com/inward/record.url?scp=84862106269&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84862106269&partnerID=8YFLogxK

U2 - 10.1002/stvr.440

DO - 10.1002/stvr.440

M3 - Article

AN - SCOPUS:84862106269

VL - 22

SP - 267

EP - 293

JO - Software Testing Verification and Reliability

JF - Software Testing Verification and Reliability

SN - 0960-0833

IS - 4

ER -