Dipl.-Inf. Univ. Andreas Schildbach Homepage
LANGUAGE

   deutsch german
   english english

TU München Technical University of Munich
Department of Computer Science
Computer Science
 
DIPLOMA THESIS
Component Based Testing:
Towards Continuous Integration in Software Engineering
 
PEOPLE
Author: Andreas Schildbach
Supervisor: Dipl.-Inf. Univ. Oliver Creighton
Chair: Applied Software Engineering, Prof. Bernd Br�gge, Ph.D.
 
ABSTRACT
Part I deals with the problem domain and the motivation for the research. It provides the background for all following parts. Chapter 1 introduces the term reliability and how to control it. Chapters 2-4 deal with the trinity static aspects of a component, dynamic aspects of a component and the effect of change. The static aspects of a component are described as an anatomy, consolidating everything from source to executable in one coherent picture. The dynamic aspects are represented by dependencies between the anatomical parts of components and versions. An overview of related work in chapter 5 concludes part I.
Part II explains our approach to reaching the mission goal that was set in part I: extending the software engineering process by an omnipresent phase for component-based testing. Part II also describes our adoption of the software engineering process. As it goes through six phases (chapters 8-13), the problem statement is refined. In the end, the final product is reached: testbench, a test harness framework for software components. The framework is extendable in every aspect: languages, runtime systems and actions can be added with little effort.
Part III presents the products and insights that result from the application of the methods described in part II. Chapter 14 explains the usage of testbench and chapter 15 talks about a byproduct, an interpreter for the Object Constraint Language. The concept of a component is extended in chapter 16 by examining not only the outer interface, most commonly known as the public interface, but also what we call the inner interface, which is all the methods the component depends on. Chapter 17 concludes part III with a catalogue of process patterns for the development of software.
Part IV discusses the results that were presented in part III. It weighs up pros and cons of constraint checking techniques (chapter 18). Code instrumentation provides greater access to the component's features and external checking is more flexible as the interface to the component can vary. Chapter 19 makes clear that putting constraints into source code is not a good idea. Finally, future directions are given in chapter 20. Enhancement ideas concern testbench, which could not only provide the test driver but also the test stubs. It could also be of more use to integration and system testing if it provided methods for enhanced control flow. The OCL interpreter and the process pattern catalogue could be separated from this thesis and continued as projects of their own.
 
DOWNLOAD
thesis as PDF document

Spring Framework

Hibernate

MySQL database server

Jakarta Tomcat

Subversion

Debian GNU/Linux

Ubuntu