Skip to main content
Log in

STECC: Selbsttestende Software-Komponenten

  • Reguläre Beiträge
  • Published:
Informatik - Forschung und Entwicklung

Zusammenfassung

Komponentenbasierte Softwareentwicklung kann verschiedene Vorteile in der Entwicklung von größeren Softwaresystemen haben. Diesen Vorteilen stehen aber häufig Nachteile gegenüber, wie beispielsweise die erschwerte Testbarkeit einer Komponente durch ihren Nutzer, der die Komponenten als Teil in ein größeres System integrieren möchte. Die erschwerte Testbarkeit resultiert insbesondere aus der Tatsache, dass der Quelltext vor allem bei kommerziellen Komponenten im Allgemeinen nicht offen gelegt wird und somit keine programmbasierten Tests möglich sind. Dieser Beitrag stellt die Self-Testing COTS Components (STECC) Method vor, die genau an dieser Stelle ansetzt. Die zugrunde liegende Strategie der STECC-Methode ist die Erweiterung einer Komponente mit Funktionalität von Testwerkzeugen, so dass die Komponente selbsttestend wird. Der Quelltext und andere kritische Informationen können innerhalb der Komponente in einer eingekapselten Art und Weise für Testzwecke genutzt werden, ohne dass diese Informationen nach außen, also zum Komponentennutzer, sichtbar werden. Die STECC-Methode stellt technisch einen Rahmen zur Verfügung, in den bestehende Verfahren, insbesondere solche für das pfadorientierte Testen, eingebettet werden können.

Abstract

Component-based development can have various benefits in the development of large software systems. However, component-based development can also introduce problems, such as obstacles in testing of a component by its user who intends to integrate the component into a larger system. Such an obstacle is, for instance, a lack of source code in the case of commercial components, which hinders program-based tests as one implication in particular. This article introduces the Self-Testing COTS Components (STECC) Method for such circumstances. The underlying strategy of the STECC method is to augment the functionality of a component by functionality specific to testing tools, so that the component is capable of testing itself. Source code and other detailed technical information can be processed within the component in an encapsulated form, without being disclosed to the component user for testing purposes. The STECC method provides a framework in which techniques of, in particular, path-oriented testing can be embedded.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

References

  1. Aho AV, Sethi R, Ullman JD (1988) Compilers, principles, techniques, and tools. Addison Wesley,

  2. Ariana Y, Beydeda S, Effner O, Gleis M, Gruhn V, Krzysiak M, Lauert J, Louis T, Röttgers C, Schwaighofer K, Testrot M, Ulrich U, Yuan X (2003) Endbericht PG-Nightshift: Dokumentation der verteilten Geschäftsprozesse im FBI und Umsetzung von Teilen dieser Prozesse im Rahmen eines FBI-Intranets basierend auf WAP- und Java-Technologie. Technical report, Universität Dortmund, Fachbereich Informatik, Lehrstuhl Software-Technologie

  3. Atkinson C, Groß H-G (2002) Built-in contract testing in model-driven, component-based development. In: ICSR Workshop on Component-Based Development Processes

  4. Avritzer A, Weyuker EJ (1995) The automatic generation of load test suites and the assessment of the resulting software. IEEE Trans Softw Eng 21(9):705–716

    Article  Google Scholar 

  5. Baudry B, Hanh VL, Jezequel J-M, Traon YL (2000) Trustable components: Yet another mutation-based approach. In: Symposium on Mutation Testing (Mutation), pp 69–76

  6. Baudry B, Hanh VL, Jezequel J-M, Traon YL (2001) Trustable components: Yet another mutation-based approach. In: Wong WE (ed) Mutation testing for the new century. Kluwer Academic Publishers, , pp 47–54

  7. Beydeda S (2004) The Self-Testing COTS Components (STECC) Method. Martin Meidenbauer Verlag, München

    Google Scholar 

  8. Beydeda S (2006) The stecc framework – an architecture for self-testable components (to appear). In: Dasso A, Funes A (eds) Verification, Validation and Testing in Software Engineering. Idea Group, Inc.

  9. Beydeda S, Gruhn V (2003) BINTEST – binary search-based test case generation. In: Computer Software and Applications Conference (COMPSAC). IEEE Computer Society Press, pp 28–33

  10. Beydeda S, Gruhn V (2003) State of the art in testing components. In: International Conference on Quality Software (QSIC). IEEE Computer Society Press, pp 146–153

  11. Beydeda S, Gruhn V (2003) Test case generation according to the binary search strategy. In: International Symposium on Computer and Information Sciences (ISCIS). LNCS vol 2869. Springer Verlag, pp 1000–1007

  12. Bundell GA, Lee G, Morris J, Parker K, Lam P (2000) A software component verification tool. In: International Conference on Software Methods and Tools (SMT). IEEE Computer Society Press, pp 137–146

  13. Cechich A, Polo M (2002) Black-box evaluation of COTS components using aspects and metadata. In: Product Focused Software Process Improvement (PROFES), vol 2559 of LNCS. Springer Verlag, pp 494–508

  14. Deveaux D, Frison P, Jezequel J-M (2001) Increase software trustability with self-testable classes in java. In: Australian Software Engineering Conference (ASWEC). IEEE Computer Society Press, pp 3–11

  15. Edwards S (2000) A framework for practical, automated black-box testing of component-based software. In: International ICSE Workshop on Automated Program Analysis, Testing and Verification

  16. Edwards SH (2001) A framework for practical, automated black-box testing of component-based software. Softw Test Verif Reliab 11(2):97–111

    Article  Google Scholar 

  17. Edwards SH (2001) Toward reflective metadata wrappers for formally specified software components. In: OOPSLA Workshop Specification and Verification of Component-Based Systems (SAVCBS)

  18. Gao J, Gupta K, Gupta S, Shim S (2002) On building testable software components. In: COTS-Based Software Systems (ICCBCC), LNCS vol 2255. Springer Verlag, pp 108–121

  19. Gao J, Zhu EY, Shim S (2000) Monitoring software components and component-based software. In: Computer Software and Applications Conference (COMPSAC). IEEE Computer Society Press, pp 403–412

  20. Grossman M (1998) Component testing. In: International Workshop on Component-Oriented Programming (in conjunction with ECOOP)

  21. Haddox JM, Kapfhammer GM, Michael CC (2002) An approach for understanding and testing third party software components. In: Annual Reliability and Maintainability Symposium. IEEE Computer Society Press, pp 293–239

  22. Hoffman D, Strooper P, White L (1999) Boundary values and automated component testing. Softw Test Verif Reliab 9(1):3–26

    Article  Google Scholar 

  23. Hörnstein J, Edler H (2002) Test reuse in cbse using built-in tests. In: Workshop on Component-based Software Engineering, Composing systems from components

  24. Hunsicker M (2003) Jalopy – java source code formatter beautifier pretty printer. http://jalopy.sourceforge.net/

  25. Jezequel J-M, Deveaux D, Traon YL (2001) Reliable objects: Lightweight testing for oo languages. IEEE Softw 18(4):76–83

    Article  Google Scholar 

  26. Korel B (1990) Automated software test data generation. IEEE Trans Softw Eng 16(8):870–879

    Article  Google Scholar 

  27. Kropp NP, Koopman PJ, Siewiorek DP (1998) Automated robustness testing of off-the-shelf software components. In: Annual International Symposium on Fault-Tolerant Computing (FTCS). IEEE Computer Society Press, pp 230–239

  28. Liu C, Richardson D (1998) Software components with retrospectors. In: International Workshop on the Role of Software Architecture in Testing and Analysis, pp 63–68

  29. Liu W, Dasiewicz P (1999) Formal test requirements for component interactions. In: Canadian Conference on Electrical and Computer Engineering. IEEE Computer Society Press, pp 295–299

  30. Mansour N, Salame M, Joumaa R (2000) Integer- and real-value test generation for path coverage using a genetic algorithm. In: Software Engineering and Applications Conference (SEA), pp 49–54

  31. Martins E, Toyota CM, Yanagawa RL (2001) Constructing self-testable software components. In: International Conference on Dependable Systems and Networks (DSN). IEEE Computer Society Press, pp 151–160

  32. McGregor JD (1997) Component testing. J Object Oriented Program 10(1):6–9

    Google Scholar 

  33. McGregor JD (1997) Parallel architecture for component testing. J Object Oriented Program 10(2):10–14

    Google Scholar 

  34. Orso A, Harrold MJ, Rosenblum D (2000) Component metadata for software engineering tasks. In: International Workshop on Engineering Distributed Objects (EDO), LNCS vol 1999. Springer Verlag, pp 129–144

  35. Pargas RP, Harrold MJ, Peck RR (1999) Test-data generation using genetic algorithms. Softw Test Verif Reliab 9(4):263–282

    Article  Google Scholar 

  36. Parr T (2003) ANTLR website. http://www.antlr.org

  37. Ramamoorthy C, Ho S, Chen W (1976) On the automated generation of program test data. IEEE Trans Softw Eng 2(4):293–300

    Article  Google Scholar 

  38. Soundarajan N, Tyler B (2001) Testing components. In: OOPSLA Workshop Specification and Verification of Component-Based Systems (SAVCBS), pp 1–6

  39. Sun Microsystems (2003) Code conventions for the java programming language. http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

  40. Sun Microsystems (2003) Pattern (Java 2 Platform SE v1.4.1). http://java.sun.com/j2se/1.4.1/docs/api/java/util/regex/Pattern.html

  41. Traon YL, Deveaux D, Jezequel J-M (1999) Self-testable components: from pragmatic tests to design-to-testability methodology. In: Technology of Object-Oriented Languages and Systems (TOOLS). IEEE Computer Society Press, pp 96–107

  42. Wang Y, King G, Wickburg H (1999) A method for built-in tests in component-based software maintenance. In: European Conference on Software Maintenance and Reengineering (CSMR). IEEE Computer Society Press, pp 186–189

  43. Zhu H, Hall PAV, May JHR (1997) Software unit test coverage and adequacy. ACM Comput Surv 29(4):366–427

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sami Beydeda.

Additional information

CR Subject Classification

D.2.5

Rights and permissions

Reprints and permissions

About this article

Cite this article

Beydeda, S. STECC: Selbsttestende Software-Komponenten. Informatik Forsch. Entw. 21, 243–253 (2007). https://doi.org/10.1007/s00450-006-0004-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00450-006-0004-y

Schlüsselwörter

Keywords

Navigation