Information Systems Frontiers

, Volume 9, Issue 2–3, pp 151–162 | Cite as

Reducing verification effort in component-based software engineering through built-in testing

  • Daniel Brenner
  • Colin Atkinson
  • Rainer Malaka
  • Matthias Merdes
  • Barbara Paech
  • Dima Suliman
Article

Abstract

Today component- and service-based technologies play a central role in many aspects of enterprise computing. However, although the technologies used to define, implement, and assemble components have improved significantly over recent years, techniques for verifying systems created from them have changed very little. The correctness and reliability of component-based systems are still usually checked using the traditional testing techniques that were in use before components and services became widespread, and the associated costs and overheads still remain high. This paper presents an approach that addresses this problem by making the system verification process more component-oriented. Based on the notion of built-in tests (BIT)—tests that are packaged and distributed with prefabricated, off-the-shelf components—the approach partially automates the testing process, thereby reducing the level of effort needed to establish the acceptability of the system. The approach consists of a method that defines how components should be written to support and make use of run-time tests, and a resource-aware infrastructure that arranges for tests to be executed when they have a minimal impact on the delivery of system services. After providing an introduction to the principles behind component-based verification and explaining the main features of the approach and its supporting infrastructure, we show by means of a case study how it can reduce system verification effort.

Keywords

Integration test Run-time testing Built-in test MORABIT 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Atkinson, C., Groß, H. G., & Barbier, F. (2003). Component integration through built-in contract testing in component-based software quality: Methods and techniques. In A. Cechich, et al. (Eds.), Component-based software quality (pp. 159–183). Heidelberg: Springer.Google Scholar
  2. Beizer, B. (1990). Software testing techniques. New York: Van Nostrand Rheinold.Google Scholar
  3. Beydeda, S., & Gruhn, V. (2004). Black- and white-box self-testing COTS components. Software Engineering and Knowledge Engineering (SEKE).Google Scholar
  4. Binder, R. V. (1999). Testing object-oriented systems: Models, patterns, and tools. London: Addison-Wesley.Google Scholar
  5. Component+ project. (2006). http://www.component-plus.org/.
  6. Deck, M. (1996). Cleanroom and object-oriented software engineering: A unique synergy. In Proceedings of the Eighth Annual Software Technology Conference.Google Scholar
  7. Ehrenberger, W. (2002). Software-verifikation. Verfahren für den Zuverlässigkeitsnachweis von software. Munich: Hanser Fachbuch.Google Scholar
  8. Gross, H. G. (2004). Component-based software testing with UML. Berlin Heidelberg New York: Springer.Google Scholar
  9. Mariani, L., Pezze, M., & Willmor, D. (2004). Generation of integration tests for self-testing components. FORTE Workshop.Google Scholar
  10. Merdes, M., Malaka, R., Suliman, D., Paech, B., Brenner, D., & Atkinson, C. (2006). Ubiquitous RATs: How resource-aware run-time tests can improve ubiquitous software systems. In Proceedings of the Sixth International Workshop on Software Engineering and Middleware (SEM).Google Scholar
  11. Meyer, B. (1992). Applying design by contract. Computer, 25(10).Google Scholar
  12. MORABIT project (2006). http://www.morabit.org/.
  13. Musa, J. D. (1998). Software reliability engineering: More reliable software faster and cheaper. Osborne/McGraw-Hill.Google Scholar
  14. Neugebauer, R., & McAuley, D. (2001). Energy is just another resource: Energy accounting and energy pricing in the Nemesis OS. In Proceedings of the Eighth Workshop on Hot Topics in Operating Systems.Google Scholar
  15. Reussner, R. H., Poernomo, I. H., & Schmidt, H. W. (2003). Contracts and quality attributes for software components. In Proc. 8th Int’l Workshop on Component-Oriented Programming (WCOP’03).Google Scholar
  16. Szyperski, C. (1998). Component software-beyond object-oriented programming. London: Addison-Wesley.Google Scholar
  17. Traon, Y. L., Deveaux, D., & Jezequel, J. M. (1999). Self-testable components: From pragmatic tests to design-to-testability methodology. Technology of Object-Oriented Languages and Systems (TOOLS).Google Scholar
  18. Wang, G., Chen, A., Wang, C., Fung, C., & Uczekaj, S. A. (2004). Integrated quality of service (QoS) management in service-oriented enterprise architectures. Enterprise Distributed Object Computing (EDOC).Google Scholar
  19. Wang, Y., King, G., & Wickburg, H. (1999). A method for built-in tests in component-based software maintenance. In IEEE International Conference on Software Maintenance and Reengineering (CSMR’99).Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2007

Authors and Affiliations

  • Daniel Brenner
    • 1
  • Colin Atkinson
    • 1
  • Rainer Malaka
    • 2
  • Matthias Merdes
    • 3
  • Barbara Paech
    • 4
  • Dima Suliman
    • 4
  1. 1.Institute of Computer ScienceUniversity of MannheimMannheimGermany
  2. 2.Institute of Computer ScienceUniversity of BremenBremenGermany
  3. 3.EML Research gGmbhHeidelbergGermany
  4. 4.Institute of Computer ScienceUniversity of HeidelbergHeidelbergGermany

Personalised recommendations