Regression Testing of Object-Oriented Software: A Technique Based on Use Cases and Associated Tool

  • Pierre-Luc Vincent
  • Linda Badri
  • Mourad Badri
Part of the Communications in Computer and Information Science book series (CCIS, volume 340)

Abstract

This paper presents a regression testing technique (and associated tool) for object-oriented software based on use cases. The basic models we use to describe use cases are UML statechart and collaboration diagrams. The technique combines, in fact, the analysis of these models to a simple static analysis of the code. The goal is to identify changes that may not be visible in design models (change in a method’s body). The developed tool identifies modified (impacted by modifications) use cases and selects the appropriate test cases from an existing test suite. New test cases are generated when necessary. The selected test cases (including the new ones) are automatically executed. A case study is reported to provide evidence of the feasibility of the approach and its benefits (reduction of regression testing effort).

Keywords

Software Maintenance Regression Testing Object-Oriented Test Case Selection Test Case Generation Use Cases UML Diagrams Static Analysis 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abdullah, K.: The Firewall Concept for Regression Testing and Impact Analysis of Object Oriented Systems, PhD thesis. Case Western Reserve University (1998)Google Scholar
  2. Badri, M., Badri, L., Naha, M.: A Use Case Driven Testing Process: Towards a Formal Approach Based on UML Collaboration Diagrams. In: Petrenko, A., Ulrich, A. (eds.) FATES 2003. LNCS, vol. 2931, pp. 223–235. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. Badri, L., Badri, M., St-Yves, D.: Supporting predictive change impact analysis: A control call graph based technique. In: Proc. of the 12th Asia-Pacific Software Engineering Conference, pp. 167–175 (2005)Google Scholar
  4. Badri, M., Badri, L., Bourque-Fortin, M.: Automated State-Based Unit Testing for Aspect-Oriented Programs: A Supporting Framework. Journal of Object Technology 8(3), 121–126 (2009)CrossRefGoogle Scholar
  5. Briand, L.C., Labiche, Y., Soccar, G.: Automating impact analysis and regression test selection based on UML designs. In: International Conference on Software Maintenance, pp. 252–261 (2002)Google Scholar
  6. Briand, L.C., Labiche, Y., Leduc, J.: Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software. IEEE Transactions on Software Engineering, 642–663 (2006)Google Scholar
  7. Chen, Y., Probert, R.L., Sims, D.P.: Specification-based Regression Test Selection with Risk Analysis. In: IBM Center Advanced Studies Conference (2002)Google Scholar
  8. Engström, E., Skoglund, M., Runeson, P.: Empirical evaluations of regression test selection techniques: A systematic review. In: Proceedings of the Second ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 22–31 (2008)Google Scholar
  9. Engström, E., Runeson, P., Skoglund, M.: A systematic review on regression test selection techniques. Information and Software Technology (2009)Google Scholar
  10. Fahad, M., Nadeem, A.: A survey of UML Based Regression Testing. In: Shi, Z., Mercier-Laurent, E., Leake, D. (eds.) IFIP International Federation for Information Processing. Intelligent Information Processing IV, vol. 288, pp. 200–210. Springer, Boston (2008)Google Scholar
  11. Graves, T.L., Harrold, M.J., Kim, J.M., Porter, A., And Rothermel, G.: An Empirical Study of Regression Test Selection Techniques. ACM Transactions on Software Engineering and Methodology 10(2), 184–208 (2001)MATHCrossRefGoogle Scholar
  12. Harrold, M.J.: Testing Evolving Software. Journal of Systems and Software 47, 173–181 (1999)CrossRefGoogle Scholar
  13. Harrold, M.J., Jones, J.A., Li, T., Liang, D., Orso, A., Pennings, M., Sinha, S., Spoon, S.A., Gujarathi, A.: Regression test selection for Java software. In: Proceedings of the 16th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 312–326 (2001)Google Scholar
  14. Kung, D., Gao, J., Hsia, P.: Class firewall, Test Order and Regression Testing of Object Oriented Programs. Journal of Object Oriented Programming, 51–65 (1995)Google Scholar
  15. Kung, D.: On regression testing of object-oriented programs. Journal of Systems and Software 32, 21–40 (1996)CrossRefGoogle Scholar
  16. Larman, C.: Applying UML and Design Patterns, An introduction to object-oriented analysis and design and the unified process. Prentice Hall (2004)Google Scholar
  17. Le Traon, Y., Jéron, T., Jézéquel, J.M., Morel, P.: Efficient Object-Oriented Integration and Regression Testing. IEEE Transactions on Reliability 49(1) (2000)Google Scholar
  18. Leung, H.K., White, L.: A study of integration testing and software regression at the integration level. In: The Proceedings of the Conference on Software Maintenance (1990)Google Scholar
  19. Leung, H.K., White, L.: Insights into testing and regression testing global variables. Journal of Software Maintenance: Research and Practice 2(4), 209–222 (1990)CrossRefGoogle Scholar
  20. Leung, H.K., White, L.: A Cost Model to Compare Regression Test Strategies. In: Proceedings of the Conference on Software Maintenance 1991, pp. 201–208 (1991)Google Scholar
  21. Mansour, N., Takkoush, H., Nehme, A.: UML-based regression testing for OO software. Journal of Software Maintenance and Evolution: Research and Practice 23, 51–68 (2011)CrossRefGoogle Scholar
  22. Massicotte, P., Badri, L., Badri, M.: Towards a Tool Supporting Integration Testing of Aspect-Oriented Programs. Journal of Object Technology 6(1), 671–689 (2007)CrossRefGoogle Scholar
  23. Offutt, J., Abdurazik, A.: Generating Tests from UML Specifications. In: France, R.B. (ed.) UML 1999. LNCS, vol. 1723, pp. 416–429. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  24. Pilskalns, O., Uyan, G., Andrews, A.: Regression Testing UML Designs. In: Proc. of the 22nd IEEE International Conference on Software Maintenance, ICSM 2006, pp. 254–264 (2006)Google Scholar
  25. Rothermel, G., Harrold, M.J.: A comparison of regression test selection techniques. Technical report 114. Clemson University, Clemson, SC (April 1993)Google Scholar
  26. Rothermel, G., Harrold, M.J.: Analyzing Regression Test Selection Techniques. IEEE Transactions on Software Engineering 22(8), 529–551 (1996)CrossRefGoogle Scholar
  27. Rothermel, G., Harrold, M.J.: A safe, efficient regression test selection technique. ACM Transactions on Software Engineering Methodology 6(2), 173–210 (1997)CrossRefGoogle Scholar
  28. Rothermel, G., Harrold, M.J., Dedhia, J.: Regression Test Selection for C++ Software. Journal of Software Testing Verification and Reliability 10 (2000)Google Scholar
  29. Skoglund, M., Runeson, P.: A case study of the class firewall regression test selection technique on a large scale distributed software system. In: Proc. of the ISESE (2005)Google Scholar
  30. Von Mayrhauser, A., Zhang, N.: Automated regression testing using DBT and Sleuth. Journal of Software Maintenance 11(2), 93–116 (1999)CrossRefGoogle Scholar
  31. White, L., Jaber, K., Robinson, B.: Utilization of extended firewall for object-oriented regression testing. In: Proc. of the IEEE International Conference on Software Maintenance, pp. 695–698 (2005)Google Scholar
  32. Wu, Y., Chen, M.-H., Kao, H.M.: Regression testing on object-oriented programs. In: Proc. of the 10th International Symposium on Software Reliability Engineering, pp. 270–279 (1999)Google Scholar
  33. Wu, Y., Offutt, J.: Maintaining evolving component based software with UML. In: Proceedings of the 7th European Conference on Software Maintenance and Reengineering (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Pierre-Luc Vincent
    • 1
  • Linda Badri
    • 1
  • Mourad Badri
    • 1
  1. 1.Software Engineering Research Laboratory, Department of Mathematics and Computer ScienceUniversity of Quebec at Trois-RivièresTrois-RivièresCanada

Personalised recommendations