Assuring the model evolution of protocol software specifications by regression testing process improvement

Model‐based testing helps test engineers automate their testing tasks so that they are more cost‐effective. When the model is changed because of the evolution of the specification, it is important to maintain the test suites up to date for regression testing. A complete regeneration of the whole test suite from the new model, although inefficient, is still frequently used in the industry, including Microsoft. To handle specification evolution effectively, we propose a test case reusability analysis technique to identify reusable test cases of the original test suite based on graph analysis. We also develop a test suite augmentation technique to generate new test cases to cover the change‐related parts of the new model. The experiment on four large protocol document testing projects shows that our technique can successfully identify a high percentage of reusable test cases and generate low‐redundancy new test cases. When compared with a complete regeneration of the whole test suite, our technique significantly reduces regression testing time while maintaining the stability of requirement coverage over the evolution of requirements specifications. Copyright © 2011 John Wiley & Sons, Ltd.

[1]  Rajeev Alur,et al.  Distinguishing tests for nondeterministic and probabilistic machines , 1995, STOC '95.

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

[3]  Thomas Ball,et al.  On the limit of control flow analysis for regression test selection , 1998, ISSTA '98.

[4]  Gregg Rothermel,et al.  Empirical Studies of a Safe Regression Test Selection Technique , 1998, IEEE Trans. Software Eng..

[5]  Phyllis G. Frankl,et al.  Empirical evaluation of the textual differencing regression testing technique , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[6]  Bogdan Korel,et al.  Requirement-based automated black-box test generation , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[7]  Amitabh Srivastava,et al.  Effectively prioritizing tests in development environment , 2002, ISSTA '02.

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

[9]  Nina Yevtushenko,et al.  FSM-based Re-Testing Methods , 2002, TestCom.

[10]  Gregg Rothermel,et al.  Test Case Prioritization: A Family of Empirical Studies , 2002, IEEE Trans. Software Eng..

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

[12]  Mary Lou Soffa,et al.  Regression testing of GUIs , 2003, ESEC/FSE-11.

[13]  Alexander K. Petrenko,et al.  The UniTesK Approach to Designing Test Suites , 2003, Programming and Computer Software.

[14]  Thierry Jéron,et al.  A tool for the automatic synthesis of conformance test cases for non-deterministic reactive systems , 2005 .

[15]  Alexander Romanovsky,et al.  Workshop on architecting dependable systems (WADS 2005) , 2005, ICSE 2005.

[16]  D. Richardson,et al.  Towards software architecture-based regression testing , 2005, WADS@ICSE.

[17]  Nikolai Tillmann,et al.  Action Machines: a Framework for Encoding and Composing Partial Behaviors , 2006, Int. J. Softw. Eng. Knowl. Eng..

[18]  Wolfgang Grieskamp,et al.  Multi-paradigmatic Model-Based Testing , 2006, FATES/RV.

[19]  Mary Lou Soffa,et al.  TimeAware test suite prioritization , 2006, ISSTA '06.

[20]  Y. N. Srikant,et al.  Specification Based Regression Testing Using Explicit State Space Enumeration , 2006, 2006 International Conference on Software Engineering Advances (ICSEA'06).

[21]  Zafar I. Malik,et al.  An approach for selective state machine based regression testing , 2007, A-MOST '07.

[22]  Gregg Rothermel,et al.  Using component metadata to regression test component‐based software , 2007, Softw. Test. Verification Reliab..

[23]  Mark Harman,et al.  Search Algorithms for Regression Test Case Prioritization , 2007, IEEE Transactions on Software Engineering.

[24]  A. Orso,et al.  Retesting software during development and maintenance , 2008, 2008 Frontiers of Software Maintenance.

[25]  Alessandro Orso,et al.  Test-Suite Augmentation for Evolving Software , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[26]  Matthew B. Dwyer,et al.  Differential symbolic execution , 2008, SIGSOFT '08/FSE-16.

[27]  Margus Veanes,et al.  Model-Based Testing of Object-Oriented Reactive Systems with Spec Explorer , 2008, Formal Methods and Testing.

[28]  Alok Nandan,et al.  Model-Based Quality Assurance of Windows Protocol Documentation , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[29]  T. H. Tse,et al.  Adaptive Random Test Case Prioritization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[30]  Debra J. Richardson,et al.  A model-based regression test selection technique , 2009, 2009 IEEE International Conference on Software Maintenance.

[31]  Tsong Yueh Chen,et al.  How Well Do Test Case Prioritization Techniques Support Statistical Fault Localization , 2009, 2009 33rd Annual IEEE International Computer Software and Applications Conference.

[32]  Tao Xie,et al.  Time-aware test-case prioritization using integer linear programming , 2009, ISSTA.

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

[34]  Xiang Li,et al.  Regression Testing Process Improvement for Specification Evolution of Real-World Protocol Software , 2010, 2010 10th International Conference on Quality Software.

[35]  Baowen Xu,et al.  An Improved Regression Test Selection Technique by Clustering Execution Profiles , 2010, 2010 10th International Conference on Quality Software.

[36]  Zhihong Xu,et al.  Directed test suite augmentation , 2011, 2011 33rd International Conference on Software Engineering (ICSE).