Program may have errors. Testing is the process of checking the program for errors. Testing starts once the programmers finish coding work. The test is done in three stages: unit testing, integration testing and system testing. These will be followed by acceptance testing.
1. Unit Testing
Large programs are divided into a number of modules for fast coding and testing. A module is part of a large program. Many such parts make up a single program. Each module is then assigned to a programmer or a group of programmers. So, many teams of programmers work on different modules of the program. Once a module is fully coded by a team, it starts testing the module. Module level testing is called unit testing. Each module is tested for errors according to a pre-decided test plan. The errors in each module are detected and corrected at the unit test stage.
2. Integration testing
This test is done step by step by integrating one module with another module. It starts with a root module. It is combined with its subordinate module and tested for accuracy. Then, more modules are added one by one and tested. Each time any error detected is corrected. This process is continued until all modules are connected together and all errors are removed. This kind of testing helps in localizing errors and correcting them quickly.
3. System Testing
The procedure of integration testing is followed in system testing. Here modules and programs are tested a number of times for errors. At this stage, instead of modules, programs are integrated into system. Errors are located and corrected as integration progresses. This process is continued till the software system does not throw up any errors.
4. Acceptance Testing
Acceptance testing is the last stage of testing. It is done with real transaction data at the user's site. This may be done in two stages- alpha and beta. Alpha testing is done with simulated data. Beta testing is done by the user with live data. Acceptance testing means whether the user is satisfied with the software. If the software meets his needs, he accepts it by signing off on the system. The sign off is the end of software development and installation.