Supporting inheritance hierarchy changes in model-based regression test selection

Models can be used to ease and manage the development, evolution, and runtime adaptation of a software system. When models are adapted, the resulting models must be rigorously tested. Apart from adding new test cases, it is also important to perform regression testing to ensure that the evolution or adaptation did not break existing functionality. Since regression testing is performed with limited resources and under time constraints, regression test selection (RTS) techniques are needed to reduce the cost of regression testing. Applying model-level RTS for model-based evolution and adaptation is more convenient than using code-level RTS because the test selection process happens at the same level of abstraction as that of evolution and adaptation. In earlier work, we proposed a model-based RTS approach called MaRTS to be used with a fine-grained model-based adaptation framework that targets applications implemented in Java. MaRTS uses UML models consisting of class and activity diagrams. It classifies test cases as obsolete, reusable, or retestable based on changes made to UML class and activity diagrams of the system being adapted. However, MaRTS did not take into account the changes made to the inheritance hierarchy in the class diagram and the impact of these changes on the selection of test cases. This paper extends MaRTS to support such changes and demonstrates that the extended approach performs as well as or better than code-based RTS approaches in safely selecting regression test cases. While MaRTS can generally be used during any model-driven development or model-based evolution activity, we have developed it in the context of runtime adaptation. We evaluated the extended MaRTS on a set of applications and compared the results with code-based RTS approaches that also support changes to the inheritance hierarchy. The results showed that the extended MaRTS selected all the test cases relevant to the inheritance hierarchy changes and that the fault detection ability of the selected test cases was never lower than that of the baseline test cases. The extended MaRTS achieved comparable results to a graph-walk code-based RTS approach (DejaVu) and showed a higher reduction in the number of selected test cases when compared with a static analysis code-based RTS approach (ChEOPSJ).

[1]  Zafar I. Malik,et al.  A Model-Based Regression Testing Approach for Evolving Software Systems with Flexible Tool Support , 2010, 2010 17th IEEE International Conference and Workshops on Engineering of Computer Based Systems.

[2]  Gregg Rothermel,et al.  A safe, efficient regression test selection technique , 1997, TSEM.

[3]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[4]  Edoardo Vacchi,et al.  @Java: Bringing a richer annotation model to Java , 2014, Comput. Lang. Syst. Struct..

[5]  Per Runeson,et al.  Improving Class Firewall Regression Test Selection by Removing the Class Firewall , 2007, Int. J. Softw. Eng. Knowl. Eng..

[6]  Andy Zaidman,et al.  Change-Based Test Selection in the Presence of Developer Tests , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[7]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[8]  Tzilla Elrad,et al.  Motorola WEAVR: Aspect Orientation and Model-Driven Engineering , 2007 .

[9]  Gunter Saake,et al.  Co-evolving application code and design models by exploiting meta-data , 2007, SAC '07.

[10]  Sebastian Götz,et al.  JavAdaptor: unrestricted dynamic software updates for Java , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[11]  David Chenho Kung,et al.  Or Regression Testing of Object-Oriented Programs , 1996, J. Syst. Softw..

[12]  S. Demeyer,et al.  Delft University of Technology Change-based test selection An empirical evaluation , 2015 .

[13]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

[14]  Gunter Saake,et al.  JavAdaptor—Flexible runtime updates of Java applications , 2013, Softw. Pract. Exp..

[15]  Yanping Chen,et al.  Specification-based regression test selection with risk analysis , 2002, CASCON.

[16]  Robert B. France,et al.  Fine-Grained Semi-automated Runtime Evolution , 2014, Models@run.time@Dagstuhl.

[17]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[18]  Bogdan Korel,et al.  Model based regression test reduction using dependence analysis , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[19]  Per Runeson,et al.  A systematic review on regression test selection techniques , 2010, Inf. Softw. Technol..

[20]  Tzilla Elrad,et al.  Motorola WEAVR: Aspect and model-Driven Engineering , 2007, J. Object Technol..

[21]  Frank Eliassen,et al.  Using architecture models for runtime adaptability , 2006, IEEE Software.

[22]  Gordon Fraser,et al.  Unit Test Generation During Software Development: EvoSuite Plugins for Maven, IntelliJ and Jenkins , 2016, 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[23]  David Chenho Kung,et al.  A technique for the selective revalidation of OO software , 1997, J. Softw. Maintenance Res. Pract..

[24]  Thomas Vogel,et al.  Adaptation and abstract runtime models , 2010, SEAMS '10.

[25]  Richard N. Taylor,et al.  Using Architectural Models to Manage and Visualize Runtime Adaptation , 2009, Computer.

[26]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[27]  Gregg Rothermel,et al.  Analyzing Regression Test Selection Techniques , 1996, IEEE Trans. Software Eng..

[28]  David Grove,et al.  Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis , 1995, ECOOP.

[29]  Lionel C. Briand,et al.  Automating regression test selection based on UML designs , 2009, Inf. Softw. Technol..

[30]  Robert B. France,et al.  Using Models to Validate Unanticipated, Fine-Grained Adaptations at Runtime , 2016, 2016 IEEE 17th International Symposium on High Assurance Systems Engineering (HASE).

[31]  Walter Cazzola,et al.  Model-Based Regression Test Selection for Validating Runtime Adaptation of Software Systems , 2016, 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[32]  Mary Jean Harrold,et al.  Testing evolving software , 1999, J. Syst. Softw..

[33]  Lionel C. Briand,et al.  A Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance , 2008, IEEE Transactions on Software Engineering.

[34]  Alessandro Orso,et al.  Regression test selection for Java software , 2001, OOPSLA '01.

[35]  Hüsnü Yenigün Identifying the effects of modifications as data dependencies , 2013, Software Quality Journal.

[36]  Robert B. France,et al.  Fine-Grained Software Evolution Using UML Activity and Class Models , 2013, MoDELS.

[37]  Ruth Breu,et al.  A Generic Platform for Model-Based Regression Testing , 2012, ISoLA.