Deriving Tailored UML Interaction Models from Scenario-Based Runtime Tests

Documenting system behavior explicitly using graphical models (e.g. UML activity or sequence diagrams) facilitates communication about and understanding of software systems during development and maintenance tasks. Creating graphical models manually is a time-consuming and often error-prone task. Deriving models from system-execution traces, however, suffers from resulting model sizes which render the models unmanageable for humans. This paper describes an approach for deriving behavior documentation from runtime tests in terms of UML interaction models. Key to our approach is leveraging the structure of scenario-based runtime tests to render the resulting interaction models and diagrams tailorable by humans for a given task. Each derived model represents a particular view on the test-execution trace. This way, one can benefit from tailored graphical models while controlling the model size. The approach builds on conceptual mappings (transformation rules) between a test-execution trace metamodel and the UML2 metamodel. In addition, we provide means to turn selected details of test specifications and of testing environment (i.e. test parts and call scopes) into views on the test-execution trace (scenario-test viewpoint). A prototype implementation called KaleidoScope based on a software-testing framework (STORM) and model transformations (Eclipse M2M/QVTo) is available.

[1]  Isabel M. Ramos,et al.  Are forward designed or reverse-engineered UML diagrams more helpful for code maintenance?: a controlled experiment , 2013, EASE '13.

[2]  Krzysztof Czarnecki,et al.  Classification of Model Transformation Approaches , 2003 .

[3]  Pierre Poulin,et al.  Extracting Sequence Diagrams from Execution Traces Using Interactive Visualization , 2010, 2010 17th Working Conference on Reverse Engineering.

[4]  John M. Carroll,et al.  Five reasons for scenario-based design , 2000, Interact. Comput..

[5]  Gustaf Neumann,et al.  Filters as a Language Support for Design Patterns in Object-Oriented Scripting Languages , 1999, COOTS.

[6]  Gabriele Bavota,et al.  Recovering test-to-code traceability using slicing and textual analysis , 2014, J. Syst. Softw..

[7]  Philippe Kruchten,et al.  The value of design rationale information , 2013, TSEM.

[8]  Mark Strembeck TESTING POLICY-BASED SYSTEMS WITH SCENARIOS , 2011 .

[9]  Juan de Lara,et al.  Engineering model transformations with transML , 2011, Software & Systems Modeling.

[10]  Thomas Schmitt,et al.  JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI) , 2001, Software Visualization.

[11]  Arie van Deursen,et al.  Visualizing Testsuites to Aid in Software Understanding , 2006, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[12]  Tewfik Ziadi,et al.  A Fully Dynamic Approach to the Reverse Engineering of UML Sequence Diagrams , 2011, 2011 16th IEEE International Conference on Engineering of Complex Computer Systems.

[13]  Lionel C. Briand,et al.  Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software , 2006, IEEE Transactions on Software Engineering.

[14]  Johannes RyserÊÊÊÊÊÊÊÊÊÊÊÊÊÊMartin Glinz,et al.  A Scenario-Based Approach to Validating and Testing Software Systems Using Statecharts , 1999 .

[15]  Teemu Kanstrén Towards a deeper understanding of test coverage , 2008 .

[16]  Daniel M. Germán,et al.  A survey and evaluation of tool features for understanding reverse-engineered sequence diagrams , 2008, J. Softw. Maintenance Res. Pract..

[17]  Mark Strembeck,et al.  An approach for the semi-automated derivation of UML interaction models from scenario-based runtime tests , 2015, 2015 10th International Joint Conference on Software Technologies (ICSOFT).

[18]  Andy Zaidman,et al.  A Lightweight Approach to Determining the Adequacy of Tests as Documentation , 2006 .

[19]  Atanas Rountev,et al.  Interactive Exploration of UML Sequence Diagrams , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[20]  Matthias Jarke,et al.  Scenario Management: An Interdisciplinary Approach , 1998, Requirements Engineering.

[21]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[22]  Uwe Zdun,et al.  Patterns of Tracing Software Structures and Dependencies , 2003, EuroPLoP.

[23]  Yves Le Traon,et al.  Reverse-engineering of UML 2.0 Sequence Diagrams from Execution Traces , 2006 .

[24]  Mark Strembeck,et al.  Object-based and class-based composition of transitive mixins , 2007, Inf. Softw. Technol..

[25]  Abdelwahab Hamou-Lhadj,et al.  A survey of trace exploration tools and techniques , 2004, CASCON.

[26]  David Lo,et al.  Mining Scenario-Based Triggers and Effects , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[27]  Sai Peck Lee,et al.  Achievements and Challenges in State-of-the-Art Software Traceability Between Test and Code Artifacts , 2014, IEEE Transactions on Reliability.

[28]  Clémentine Nebut,et al.  Automatic test generation: a use case driven approach , 2006, IEEE Transactions on Software Engineering.

[29]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[30]  Yann-Gaël Guéhéneuc Automated Reverse-engineering of UML v 2 . 0 Dynamic Models , 2005 .

[31]  Stéphane Ducasse,et al.  Recovering high-level views of object-oriented applications from static and dynamic information , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[32]  Danilo Caivano,et al.  Are Forward Designed or Reverse-Engineered UML diagrams more helpful for code maintenance?: A family of experiments , 2015, Inf. Softw. Technol..