Skip to main content

Addressing the Regression Test Problem with Change Impact Analysis for Ada

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9695))

Abstract

The regression test selection problem—selecting a subset of a test-suite given a change—has been studied widely over the past two decades. However, the problem has seen little attention when constrained to high-criticality developments and where a “safe” selection of tests need to be chosen. Further, no practical approaches have been presented for the programming language Ada. In this paper, we introduce an approach to solving the selection problem given a combination of both static and dynamic data for a program and a change-set. We present a change impact analysis for Ada that selects the safe set of tests that need to be re-executed to ensure no regressions. We have implemented the approach in the commercial, unit-testing tool VectorCAST, and validated it on a number of open-source examples. On an example of a fully-functioning Ada implementation of a DNS server (Ironsides), the experimental results show a 97% reduction in test-case execution.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    In this paper, we use the term “subprogram”, without introducing ambiguity, to refer to either a function or a procedure inside of an Ada package.

  2. 2.

    www.vectorcast.com; in what follows, we write VectorCAST to mean VectorCAST/Ada.

  3. 3.

    where “impact” is the inverse relation of dependency.

References

  1. AdaIC: Comments on Ada in Relation to C++, November 1998. http://archive.adaic.com/docs/present/engle/comments/index.html. Accessed 22 Mar 2016

  2. Carlisle, M.C.: Ironsides homepage, April 2015. http://ironsides.martincarlisle.com. Accessed 22 Mar 2016

  3. Engström, E., Runeson, P., Skoglund, M.: A systematic review on regression test selection techniques. Inf. Softw. Technol. 52(1), 14–30 (2010)

    Article  Google Scholar 

  4. Fagin, B., Carlisle, M.: Provably secure DNS: a case study in reliable software. In: Keller, H.B., Plödereder, E., Dencker, P., Klenk, H. (eds.) Ada-Europe 2013. LNCS, vol. 7896, pp. 81–93. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  5. Harrold, M.J., Souffa, M.L.: An incremental approach to unit testing during maintenance. In: Proceedings of the Conference on Software Maintenance, pp. 362–367 (1988)

    Google Scholar 

  6. Huang, L., Song, Y.: Precise dynamic impact analysis with dependency analysis for object-oriented programs. In: Proceedings of the 5th International Conference on Software Engineering Research (SERA 2007), pp. 374–384. IEEE Computer Society (2007)

    Google Scholar 

  7. Hummel, J., Hendren, L.J., Nicolau, A.: A framework for data dependence testing in the presence of pointers. In: Proceedings of the 1994 International Conference on Parallel Processing, pp. 216–224. CRC Press (1994)

    Google Scholar 

  8. Jones, A.V.: CBT for Ada Examples, January 2016. https://github.com/andrewvaughanj/CBT_for_Ada_Examples. Accessed 22 Mar 2016

  9. Kaisti, M., Rantala, V., Mujunen, T., Hyrynsalmi, S., Könnölä, K., Mäkilä, T., Lehtonen, T.: Agile methods for embedded systems development - a literature review and a mapping study. EURASIP J. Emb. Sys. 2013(1), 1–16 (2013)

    Article  Google Scholar 

  10. Larsen, L., Harrold, M.J.: Slicing object-oriented software. In: Proceedinigs of the 18th International Conference on Software Engineering (ICSE 1996), pp. 495–505. IEEE Computer Society (1996)

    Google Scholar 

  11. Law, J., Rothermel, G.: Whole program path-based dynamic impact analysis. In: Proceedings of the 25th International Conference on Software Engineering (ICSE 2003), pp. 308–318. IEEE Computer Society (2003)

    Google Scholar 

  12. Li, B., Sun, X., Leung, H., Zhang, S.: A survey of code-based change impact analysis techniques. Softw. Test., Verif. Reliab. 23(8), 613–646 (2013)

    Article  Google Scholar 

  13. Loyall, J.P., Mathisen, S.A., Satterthwaite, C.P.: Impact analysis and change management for avionics software. In: Proceedings of the 1997 National Conference on Aerospace and Electronics, pp. 740–747 (1997)

    Google Scholar 

  14. Malaise, P.: PMA’s Ada contrib, January 2016. http://pmahome.cigecompta.fr/ada/html/REPOSIT_LIST.html. Accessed 22 Mar 2016

  15. Orso, A., Apiwattanapong, T., Harrold, M.J.: Leveraging field data for impact analysis and regression testing. In: Proceedings of the 11th Symposium on Foundations of Software Engineering, pp. 128–137. ACM (2003)

    Google Scholar 

  16. Orso, A., Apiwattanapong, T., Law, J., Rothermel, G., Harrold, M.J.: An empirical comparison of dynamic impact analysis algorithms. In: Proceedings of the 26th International Conference on Software Engineering (ICSE 2004), pp. 491–500. IEEE Computer Society (2004)

    Google Scholar 

  17. Parsai, A., Soetens, Q.D., Murgia, A., Demeyer, S.: Considering polymorphism in change-based test suite reduction. In: Dingsøyr, T., Moe, N.B., Tonelli, R., Counsell, S., Gencel, C., Petersen, K. (eds.) XP 2014. LNBIP, vol. 199, pp. 166–181. Springer, Heidelberg (2014)

    Google Scholar 

  18. Pezzè, M., Young, M.: Software Testing And Analysis - Process, Principles And Techniques. Wiley, Hoboken (2007)

    MATH  Google Scholar 

  19. Ren, X., Shah, F., Tip, F., Ryder, B.G., Chesley, O.: Chianti: a tool for change impact analysis of java programs. In: Proceedings of the 19th International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 432–448. ACM (2004)

    Google Scholar 

  20. Ren, X., Ryder, B.G., Störzer, M., Tip, F.: Chianti: a change impact analysis tool for Java programs. In: Proceedings of the 27th International Conference on Software Engineering (ICSE 2005), pp. 664–665. ACM (2005)

    Google Scholar 

  21. Ryder, B.G., Tip, F.: Change impact analysis for object-oriented programs. In: Proceedings of the 2001 Workshop on Program Analysis for Software Tools and Engineering, pp. 46–53. ACM (2001)

    Google Scholar 

  22. Soetens, Q.D., Demeyer, S., Zaidman, A., Pérez, J.: Change-based test selection: an empirical evaluation. Empirical Softw. Eng. 1–43 (2015)

    Google Scholar 

  23. Special Committee 205 of RTCA: DO-178C, Software Considerations In Airborne Systems And Equipment Certification. Radio Technical Commission for Aeronautics (2011)

    Google Scholar 

  24. Stålhane, T., Hanssen, G.K., Myklebust, T., Haugset, B.: Agile change impact analysis of safety critical software. In: Bondavalli, A., Ceccarelli, A., Ortmeier, F. (eds.) SAFECOMP 2014. LNCS, vol. 8696, pp. 444–454. Springer, Heidelberg (2014)

    Google Scholar 

  25. Watson, A.H., McCabe, T.J., Wallace, D.R.: Structured testing: a software testing methodology using the cyclomatic complexity metric. Technical report Special Publication 500–235, U.S. Department of Commerce/National Institute of Standards and Technology, September 1996

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Andrew V. Jones .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Jones, A.V. (2016). Addressing the Regression Test Problem with Change Impact Analysis for Ada. In: Bertogna, M., Pinho, L., Quiñones, E. (eds) Reliable Software Technologies – Ada-Europe 2016. Ada-Europe 2016. Lecture Notes in Computer Science(), vol 9695. Springer, Cham. https://doi.org/10.1007/978-3-319-39083-3_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-39083-3_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-39082-6

  • Online ISBN: 978-3-319-39083-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics