Object-oriented program testing using formal requirements specification

Thumbnail Image
Subramanian, Senthil K.
Journal Title
Journal ISSN
Volume Title
Research on object-oriented paradigm has been mainly focussed on developing object-oriented programming languages and object-oriented analysis design tools. Recently, other aspects of object-oriented software life cycle have received attention. Testing warrants attention because software quality partly depends on testing. Testing methods can be broadly classified into two categories: specification-based and program-based testing. In specification-based approach, test cases are derived from the requirements specification of a software system, while in the other approach, they are derived from the semantics of the programming language. As requirements analysis precedes design in a life cycle model, specification-based test cases will be independent of the programming language. In this thesis, we present a method to generate test cases for an object-oriented software from its requirements specification. The Object-Z formal specification language has been used to specify the requirements, and Object Modeling Technique (OMT) proposed by Rumbaugh and others has been used as the design notation. The method was successfully applied to two different case studies: a Library Management System and an Automated Teller Machine, both of which were engineered through the software development life cycle. The generated test cases were used to validate two different implementations, one in C++ and the other in Smalltalk. We also address the issue of polymorphism and the resulting complexity to testing. In the proposed method, the presence of an application domain model at both the specification and design level, provides a clear understanding of the system under consideration. (Abstract shortened by UMI.)