Software testing is a critical element of software quality assurance and represents the ultimate review of specification, designing and coding.
· Testing is the process of executing a program with the intent of finding an error.
· A good test case design is one that has a probability of finding a yet undiscovered error.
· A successful test is one that uncovers an as yet undiscovered error.
These above objectives imply a dramatic change in view port. Testing cannot show the absence of defects, it can only show the software errors are present.
TEST CASE DESIGN:
Any engineering product can be tested in one of two ways:
Levels of testing
1. White Box Testing: This testing is also called as glass box testing. In this testing, by knowing the specified function that a product has been designed to perform, test can be conducted that demonstrates each function is fully operation at the same time searching for errors in each function. It is a test case design method that uses the control structure of the procedural design to derive test cases. Basis path testing is a white box testing. Basis Path Testing:
· Flow graph notation
· Cyclomatic Complexity
· Deriving test cases
· Graph matrices
Control Structure Testing:
· Condition testing
· Data flow testing
· Loop testing
2. Black Box Testing: In this testing by knowing the internal operation of a product, tests can be conducted to ensure that “all gears mesh”, that is the internal operation performs according to specification and all internal components have been adequately exercised. It fundamentally focuses on the functional requirements of the software. The steps involved in black box test case design are:
· Graph based testing methods
· Equivalence partitioning
· Boundary value analysis
· Comparison testing
SOFTWARE TESTING STRATEGIES:
A software testing strategy provides a road map for the software developer. Testing is a set of activities that can be planned in advance and conducted systematically. For this reason a template for software testing a set of steps into which we can place specific test case design methods should be defined for software engineering process. Any software testing strategy should have the following characteristics:
1. Testing begins at the module level and works “outward” toward the integration of the entire computer based system.
2. Different testing techniques are appropriate at different points in time.
3. The developer of the software and an independent test group conducts testing.
4. Testing and Debugging are different activities but debugging must be accommodated in any testing strategy.
The Software Test Plan (STP) is designed to prescribe the scope, approach, resources, and schedule of all testing activities. The plan will identify items to be tested, the features to be tested, the types of testing to be performed, the personnel responsible for testing, the resources and schedule required to complete testing. The purpose of the software test plan is such as:
· To achieve the correct code and ensure all Functional and Design
· Requirements are implemented as specified in the documentation.
· To provide a procedure for Unit and System Testing.
· To identify the test methods for Unit and System Testing.