Object oriented testing is a method that uses object oriented techniques to test the software and find the errors, bugs, and flaws in it. Object-oriented testing systems are built using two or more interrelated objects. A program is tested by providing a set of particular, relevant working conditions, and observing the results and behavior of the program. The object oriented testing is performed by software that has a structure which includes a number of techniques and methods along with the ability of specification-based testing to check the response of the program under its targeted working conditions.
The goal of specification based testing is to determine whether the program meets its targeted and non-targeted specifications. It also determines the performance of the program under the conditions that it may have an exposure to. There are a number of methods of object-oriented software specifications. These methods may include graphical techniques, decomposition and specification method, interconnection measurement techniques, functional specification techniques and behavior specification techniques (Wieringa, 1998).
Object-oriented testing of software is usually done at four different levels
(a) Method-level testing (also known as a unit or algorithm level testing) is the internal testing of an individual process in a class. Existing testing techniques for conventional programming languages are fully applicable to method-level testing.
(b) Class-level or intra-class testing is the testing of interactions among the different components of a specific class.
(c) Cluster-level (or inter-class) is the testing of interactions among the cooperating classes of objects.
(d) System-level testing is concerned with the external inputs and outputs visible to users of a system. It is the testing of the interaction between the clusters.
Despite of the widespread usage of Object oriented testing method, a number of problems have not been adequately addressed. These tests are based on practical understanding of areas in which errors are mostly expected. For example, certain syntax in a specific and specialized programming language or boundaries like the beginning and end conditions. Checklists may be used for each specific type of programming or development environments. These steps can help formalize a proper procedure and ensure better consistency and coverage in mounting the standard of these types of tests (Borysowich, 2007).
Class Testing
Class testing is the testing of the categorized basic components of the software module, it refers to the tests that check and validate the functionality of a definite section of the software individually, usually at the task level. In an object-oriented situation, the least unit tests also take account of the destructors and constructors.
This type of testing is normally created by the programmers along with the code (white-box style), this is done in order to make sure that the detailed function is operational and performing the work as expected. A single function may required to be checked by multiple tests, to find the corner cases that may not work under certain specific cases. Class testing cannot validate the performance of a large part of software, it can only be used to ensure that individual building blocks of the ...