For Object-Oriented Programs
Submitted in partial fulfillment of the requirements
for the award of the degree of
Master of Computer Application
Object-oriented programs involve many unique features that are not present in their conventional counterparts. Examples are message passing, synchronization, dynamic binding, object instantiation, persistence, encapsulation, inheritance, and polymorphism. Integration testing for such program is, therefore, more difficult than that for conventional programs. In this paper, we present an overview of current work on integration testing for object-oriented and/or concurrent programs, with a view to identifying areas for future research. We cover state-based testing, event based testing, fault-based testing, deterministic and reachability techniques, and formal and semiformal techniques.
1. Introduction 6 2. Objective 7 3. Integration testing 8
4. Interface testing 10
5. Strategies 11 6. Object Oriented Integration Testing 16 7. Differences with traditional testing 23 8. Common integration testing techniques 29 a) State Based Testing 30
b)Event Based Techniques 34
c) Testing against Formal Specifications 35
d) Deterministic and Reachability Testing Techniques 36 e) Fault Based Techniques 38 f)UML Based Techniques 39 g) Data Flow Analysis 40 9. Conclusion 41
Integration testing (sometimes called Integration and Testing, abbreviated "I&T") is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before validation testing. Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. Object-oriented programming is considered as the paradigm of choice today. However most testing techniques were originally developed for the imperative programming paradigm, with relative less consideration to object-oriented features such as message passing, synchronization, dynamic binding, object instantiation, persistence, encapsulation, inheritance, and polymorphism.
Object-oriented programs can be tested at four levels, namely the algorithmic level, class level, cluster level, and system level. At the algorithmic level, individual methods are tested separately, so that conventional testing techniques can be applied without much problem. At the class level, the objective is to verify the integrity of a class by testing it as an individual entity. The cluster level is concerned about the integration of classes. As the functionality of individual classes has already been verified, the focal points are usually placed on the synchronization of different concurrent components as well as interclass method invocations. At the system level,...