A number of coverage criteria have been proposed for testing classes and class clusters modeled with state machines. Previous research has revealed their limitations in terms of their capability to detect faults. As these criteria can be considered to execute the control flow structure of the state machine, we are investigating how data flow information can be used to improve them in the context of UML state machines. More specifically, we investigate how such data flow analysis can be used to further refine the selection of a cost-effective test suite among alternative, adequate test suites for a given state machine criterion. This paper presents a comprehensive methodology to perform data flow analysis of UML state machines-with a specific focus on identifying the data flow from OCL guard conditions and operation contracts-and applies it to a widely referenced coverage criterion, the round-trip path (transition tree) criterion. It reports on two case studies whose results show that data flow information can be used to select the best transition tree, in terms of cost effectiveness, when more than one satisfies the transition tree criterion. The results also suggest that different trees are complementary in terms of the data flow that they exercise, thus, leading to the detection of intersecting but distinct subsets of faults. Copyright

Additional Metadata
Keywords Data flow analysis, OCL, State-based testing, UML
Persistent URL dx.doi.org/10.1002/stvr.410
Journal Software Testing Verification and Reliability
Briand, L. (Lionel), Labiche, Y, & Lin, Q. (2010). Improving the coverage criteria of UML state machines using data flow analysis. Software Testing Verification and Reliability, 20(3), 177–207. doi:10.1002/stvr.410