Software Testing is a procedure applied to help identifying the accuracy, fullness and value of computer software. In simple terms, it can be defined as a structure of assuring quality to assess the software in each and every step it is developed and completed. Testing helps in (the VV concept) Verifying and Validating, to check if the Software is working supposed to. This means different methodologies are run to test the application.

The essentials of Software Testing includes

1. Executing a program with the aim of finding an error

2. High probability of finding an undiscovered error

3. Successful testing to uncover undiscovered errors before sale/shipment

Testing must automatically discover the various classes of errors in the minimum amount of time, with minimum effort. It should keep in mind that the software appears to be working as mentioned in the specifications. However, testing can only reveal the presence of defect but cannot fix the defect by itself. Hence it can be termed as an action of inspection; in better terms, an action to bring out the promised quality of that product prior to vending/dispatch.

Engineers use a range of methods to test the software. Testing can be broadly classified by its purpose, lifecycle phase and scope and its sub methods are as follows: –


by purpose

a) Correctness Testing

i) ? Blackbox Testing

ii) Whitebox Testing

b) Performance Testing

c) Reliability Testing

d) ? Security Testing

2. by lifecycle phase

a) Requirements Phase Testing

b) Design Phase Testing

c) Program Phase Testing

d) ? Evaluating Test Results

e) Installation Phase Testing

f) Acceptance Testing

g) Maintenance Testing

3. by scope

a) Unit Testing

b) Component Testing

c) Integration Testing

d) ? System Testing

In conclusion, software testing is an art and not just debugging. Though there are different methods of testing prevailing in modern times, some engineers follow the traditional waterfall method because they believe it goes well with them to give out quality in the process. Hence good testing requires a tester’s creativeness, technical know-how and perception, together with proper techniques.

Testing is not only used to discover defects and fix them but also used in validation, verification process, and reliability measurement. Complete testing is infeasible. At a certain point, it has to be stopped and shipped. So the stop time can be decided by the trade-off of time and budget. Testing may not be the most effective method to improve software quality. Alternative methods, such as inspection, and clean-room engineering, may be even better.

View the original article here


Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.