Skip to main content

Software Verification — A Scalable, Model-Driven, Empirically Grounded Approach

  • Chapter
  • First Online:
Simula Research Laboratory

Abstract

Software is present in most systems across all industries, including energy, automotive, health care, maritime, aerospace, and banking, to name just a few. Software systems are increasingly taking on safety- and business-critical roles and growing in complexity. One crucial aspect of software development is therefore to ensure the dependability of such systems, that is, their reliability, safety, and robustness. This is achieved by several complementary means of verification, ranging from early analysis of system specifications and designs to systematic testing of the executable software. Such verification activities are, however, difficult and time-consuming. This stems in part from the sheer complexity of most software systems and because they must accommodate changing requirements from many stakeholders.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. L. C. Briand, Y. Labiche, L. O’Sullivan, and M. Sowka. Automated impact analysis of UML models. Journal of Systems and Software, 79(3):339–352, 2006.

    Article  Google Scholar 

  2. R. France, I. Ray, G. Georg, and S. Ghosh. Aspect-oriented approach to early design modelling. IEE Proceedings-Software, 151(4):173–185, 2004.

    Article  Google Scholar 

  3. P. Godefroid, N. Klarlund, and K. Sen. DART: directed automated random testing. PLDI ’05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 213–223, New York, NY, USA, 2005. ACM.

    Chapter  Google Scholar 

  4. V. Garousi, L. Briand, and Y. Labiche. A UML-based quantitative framework for early prediction of resource usage and load in distributed real-time systems. Software and Systems Modeling (Springer), 2008.

    Google Scholar 

  5. IBM. Rational test RealTime. 2005.

    Google Scholar 

  6. S. Ali, L. C. Briand, M. J. Rehman, H. Asghar, M. Z. Z. Iqbal, and A. Nadeem. A state-based approach to integration testing based on UML models. Information and Software Technology, 49(11-12):1087–1106, 2007.

    Article  Google Scholar 

  7. M. Shousha, L. Briand, and Y. Labiche. A uml/spt model analysis methodology for concurrent systems based on genetic algorithms. ACM/IEEE 11th International Conference in Model Driven Engineering Languages and Systems (MODELS 2008), 2008.

    Google Scholar 

  8. T. Y. Chen, P. L. Poon, S. F. Tang, and T. H. Tse. On the identification of categories and choices for specification-based test case generation. Information and software technology, 46(13):887–898, 2004.

    Article  Google Scholar 

  9. T. J. Ostrand and M. J. Balcer. The category-partition method for specifying and generating fuctional tests. 1988.

    Google Scholar 

  10. G. Zoughbi, L. C. Briand, and Y. Labiche. A uml profile for developing airworthiness-compliant (rtca do-178b) safety-critical software. International Conference on Model Driven Engineering Languages, 2007.

    Google Scholar 

  11. C. Ghezzi, M. Jazayeri, and D. Mandrioli. Fundamentals of software engineering. 1991.

    Google Scholar 

  12. Y. L. Traon, B. Baudry, and J. M. Jezequel. Design by contract to improve software vigilance. IEEE Transactions on Software Engineering, 32(8):571, 2006.

    Article  Google Scholar 

  13. L. C. Briand, Y. Labiche, and H. Sun. Investigating the use of analysis contracts to improve the testability of object oriented code. Software Practice and Experience, 33(7), 2003.

    Google Scholar 

  14. G. Tassey. The economic impacts of inadequate infrastructure for software testing. National Institute of Standards and Technology RTI Project, 2002.

    Google Scholar 

  15. P. Baker, Z. R. Dai, J. Grabowski, Ã. Haugen, S. Lucio, E. Samuelsson, I. Schieferdecker, and C. Williams. The UML 2.0 testing profile. 8th Conference on quality Engineering in Software Technology, Nuremberg, Germany, 2004.

    Google Scholar 

  16. B. F. Jones. Special issue on metaheuristic algorithms in software engineering. Information and Software Technology, 43:14, 2001.

    Article  Google Scholar 

  17. N. Fenton and S. L. Pfleeger. Software metrics: a rigorous and practical approach. PWS Publishing Co. Boston, MA, USA, 2nd edition, 1998.

    Google Scholar 

  18. S. Mouchawrab, L. C. Briand, and Y. Labiche. Assessing, comparing, and combining statechart-based testing and structural testing: An experiment. International Symposium on Empirical Software Engineering and Measurement (ESEM), 2007.

    Google Scholar 

  19. E. Weyuker, T. Goradia, and A. Singh. Automatically generating test data from a boolean specification. IEEE Transactions on Software Engineering, 20(5):353–363, 1994.

    Article  MATH  Google Scholar 

  20. W. Araujo, L. Briand, and Y. Labiche. Concurrent contracts for java in JML. Software Reliability Engineering, 2008. ISSRE 2008. 19th International Symposium on, pages 37–46, 2008.

    Google Scholar 

  21. L. C. Briand, Y. Labiche, and Y. Wang. An investigation of graph-based class integration test order strategies. IEEE Transactions on Software Engineering, 29(7):594–607, 2003.

    Article  Google Scholar 

  22. R. Binder. Testing object-oriented systems: models, patterns, and tools. Addison-Wesley Professional, 1999.

    Google Scholar 

  23. R. V. Binder. Testing object-oriented software: a survey. Software Testing, Verification and Reliability, 6(3–4):125–252, 1996.

    Article  Google Scholar 

  24. T. Pender UML bible. John Wiley & Sons, Inc. New York, NY, USA, 2003.

    Google Scholar 

  25. E. Foundation. Eclipse modeling framework (EMF). May 2005.

    Google Scholar 

  26. L. Briand, Y. Labiche, and S. He. Automating regression test selection based on uml designs. Information and Software Technology (Elsevier), 51(1), 2009.

    Google Scholar 

  27. L. C. Briand, Y. Labiche, and T. Yue. Automated traceability analysis for UML model refinements. Information and Software Technology, 51(2):512–527, 2009.

    Article  Google Scholar 

  28. M. J. Harrold, J. A. Jones, T. Li, D. Liang, A. Orso, M. Pennings, S. Sinha, S. A. Spoon, and A. Gujarathi. Regression test selection for java software. Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 312–326. ACM New York, NY, USA, 2001.

    Chapter  Google Scholar 

  29. S. Mouchawrab, L. C. Briand, and Y. Labiche. A measurement framework for object-oriented software testability. Journal of Information & Software Technology, 47(15):979–997, 2005.

    Article  Google Scholar 

  30. V. Garousi, L. C. Briand, and Y. Labiche. Traffic-aware stress testing of distributed systems based on UML models. Proceedings of the 28th international conference on Software engineering, pages 391–400. ACM New York, NY, USA, 2006.

    Google Scholar 

  31. M. Pezzé. Software Testing and Analysis: Process, Principles and Techniques. Wiley, 2008.

    Google Scholar 

  32. A. C. D. Neto, R. Subramanyan, M. Vieira, and G. H. Travassos. A survey on model-based testing approaches: a systematic review. Proceedings of the 1st ACM international workshop on Empirical assessment of software engineering languages and technologies: held in conjunction with the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE) 2007, pages 31–36. ACM New York, NY, USA, 2007.

    Google Scholar 

  33. J. H. Andrews, L. C. Briand, Y. Labiche, and A. S. Namin. Using mutation analysis for assessing and comparing testing coverage criteria. IEEE Transactions on Software Engineering, 32(8):608, 2006.

    Article  Google Scholar 

  34. L. C. Briand, Y. Labiche, and J. Leduc. Towards the reverse engineering of uml sequence diagrams for distributed java software. IEEE Transactions on Software Engineering, 32(9), 2006.

    Google Scholar 

  35. W. E. Wong, J. R. Horgan, A. P. Mathur, and A. Pasquini. Test set size minimization and fault detection effectiveness: A case study in a space application. The Journal of Systems & Software, 48(2):79–89, 1999.

    Article  Google Scholar 

  36. G. Rothermel and M. J. Harrold. A safe, efficient regression test selection technique. ACM Transactions on Software Engineering and Methodology (TOSEM), 6(2):173–210, 1997.

    Article  Google Scholar 

  37. N. Juristo, A. M. Moreno, and S. Vegas. A survey on testing technique empirical studies: how limited is our knowledge. Empirical Software Engineering, 2002. Proceedings. 2002 International Symposium n, pages 161–172, 2002.

    Google Scholar 

  38. U. OMG. Profile for modeling quality of service and fault tolerance characteristics and mechanisms. Object Management Group, 2005.

    Google Scholar 

  39. U. OMG. Profile for schedulability, perfomance and time specification. 2005.

    Google Scholar 

  40. S. Ali, L. C. Briand, H. Hemmati, and R. K. Panesar-Walawege. A systematic review of the application and empirical investigation of evolutionary testing. Technical report, Simula Research Laboratory, 2008.

    Google Scholar 

  41. J. Voas, M. Schmid, M. Schatz, and D. Wallace. Testability-Based assertion placement tool for Object-Oriented software. NASA, (19980045759), 1998.

    Google Scholar 

  42. B. Marick. The craft of software testing. PTR Prentice Hall Englewood Cliffs, NJ, 1995.

    Google Scholar 

  43. G. Rothermel, R. H. Untch, C. Chu, and M. J. Harrold. Prioritizing test cases for regression testing. IEEE Transactions on Software Engineering, 27(10):929–948, 2001.

    Article  Google Scholar 

  44. S. J. Mellor and M. Balcer. Executable UML: A foundation for model-driven architectures. Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 2002.

    Google Scholar 

  45. L. C. Briand, Y. Labiche, and Y. Wang. Using simulation to empirically investigate test coverage criteria based on statechart. Proceedings of the 26th International Conference on Software Engineering, pages 86–95. IEEE Computer Society Washington, DC, USA, 2004.

    Chapter  Google Scholar 

  46. R. Conradi, P. Mohagheghi, T. Arif, L. C. Hegde, G. A. Bunde, A. Pedersen, and E. Norway-Grimstad. Object-Oriented reading techniques for inspection of UML models— an industrial experiment.

    Google Scholar 

  47. L. C. Briand, M. D. Penta, and Y. Labiche. Assessing and improving state-based class testing: a series of experiments. IEEE Transactions on Software Engineering, 30(11):770–783, 2004.

    Article  Google Scholar 

  48. OMG. The official OMG MARTE website. 2008.

    Google Scholar 

  49. D. Lee and M. Yannakakis. Principles and methods of testing finite state machines-A survey. Proceedings of the IEEE, 84(8):1090–1123, 1996.

    Article  Google Scholar 

  50. O. M. G. Uml. 2.0 superstructure specification. OMG ed, 2003.

    Google Scholar 

  51. A. G. Kleppe, J. Warmer, and W. Bast. MDA explained: the model driven architecture: practice and promise. Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 2003.

    Google Scholar 

  52. L. C. Briand, Y. Labiche, and M. Shousha. Using genetic algorithms for early schedulability analysis and stress testing in real-time systems. Journal of Genetic Programming and Evolvable Machines, 7(2), 2006.

    Google Scholar 

  53. D. C. Petriu. Performance analysis with the SPT profile. pages 205–224, 2005.

    Google Scholar 

  54. V. Garousi, L. C. Briand, and Y. Labiche. Traffic-aware stress testing of distributed real-time systems based on uml models using genetic algorithms. Journal of Systems and Software, 81(2):161–185, 2008.

    Article  Google Scholar 

  55. J. A. Jones and M. J. Harrold. Empirical evaluation of the tarantula automatic fault-localization technique. Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, pages 273–282. ACM New York, NY, USA, 2005.

    Chapter  Google Scholar 

  56. L. C. Briand, Y. Labiche, and Q. Lin. Improving statechart testing criteria using data flow information. 16th IEEE International Symposium on Software Reliability Engineering, 2005. ISSRE 2005, page 10, 2005.

    Google Scholar 

  57. H. Gomaa. Designing Concurrent, Distributed, and Real-Time Applications With Uml. Addison-Wesley Professional, 2000.

    Google Scholar 

  58. B. F. Jones, H. H. Sthamer, and D. E. Eyres. Automatic structural testing using genetic algorithms. Software Engineering Journal, 11(5):299–306, 1996.

    Article  Google Scholar 

  59. T. S. Chow. Testing software design modeled by finite-state machines. IEEE Transactions on Software Engineering, pages 178–187, 1978.

    Google Scholar 

  60. C. Yilmaz, M. B. Cohen, and A. A. Porter. Covering arrays for efficient fault characterization in complex configuration spaces. IEEE Transactions on Software Engineering, 32(1):20–34, 2006.

    Article  Google Scholar 

  61. P. Ammann and J. Offutt. Introduction to software testing. Cambridge University Press, 2008.

    Google Scholar 

  62. L. C. L. Briand, Y. Labiche, and M. Sowka. Automated, contract-based user testing of commercial-off-the-shelf components. ACM/IEEE International Conference on Software Engineering (ICSE). ACM Press, 2006.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Briand, L.C. (2010). Software Verification — A Scalable, Model-Driven, Empirically Grounded Approach. In: Tveito, A., Bruaset, A., Lysne, O. (eds) Simula Research Laboratory. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-01156-6_28

Download citation

Publish with us

Policies and ethics