Software Testing
Defect Testing: The goal of defect testing is to expose latent defects in a software system before the system is delivered.
Black box testing: Functional or black box testing is an approach to testing where tests are delivered from program or component specification. The system is Black Box whose behavior can only be determined by studying its inputs and related outputs.
Equivalence Partitioning: The input data to a program fall into a number of different classes. These have common characteristics. E.g. positive number, negative number etc. test cases are designed so that the inputs or outputs lie within these partitions.
Structuring Testing: Structuring testing is an approach to testing
where testing is derived from knowledge of the software’s structure and
implementation.
e.g. binary search.
Path testing: path testing is a structure testing strategy whose objective is to exercise every independent execution path through a component or program. If every independent path is executed then all statements in component must have executed at least once. In object oriented development process path testing may be used.
The starting point of path testing is program flow graph. A flow graph consists of nodes representing decisions and edges showing flow of control.
Integration testing:
Once individual program components have been tested they must be integrated to create a partial complete system.
Interface testing:
Interface testing takes place when modules or subsystems are integrated to create larger systems. Each module has defined interface which is called by other program components.
The objective of interface testing is to defect faults due to interface errors or invalid assumptions about interfaces.
These are interface where data or sometimes function references are passed from one component to another.
These are interface where a block of memory is shared between subsystems. Data is placed in memory by one subsystem and retrieved from these by other subsystems.
These are interface
where one subsystem requests a service from another subsystem by passing a
message to it. A return message includes the results of executing the service.
Some object-oriented system has this form as do client server systems.