Software testing is performed at the end of the software development life cycle before the final release of software. Quality assurance is a process that takes place through out the software development life cycle and testing is one of the phases in the software assurance. Strategy for testing a software will be depending on the source code and internal function.
The primary objective of the software testing is to check if there are errors or defects in the software and thereby removing these errors. Other objective is to give quality products to the customers.
- Regression testing is done with the objective of finding defects after a major code change has occurred. The regression methods include, rerunning of previously used tests and checking whether previously fixed faults have reemerged.
- Acceptance testing is a block box testing performed on a system before delivery. It is also known as functional testing or application testing. A smoke test is used prior to introducing a build to the main testing process and it is also a acceptance test. Acceptance test can be performed by the user which is known as user acceptance testing.
- Alpha testing is employed for off-the-shelf software, before the software goes to beta testing. It is an operational testing done by independent test team at the developer’s site.
- Beta testing is done after alpha testing and it is considered as a form of external user acceptance testing. Beta version of the software is released to groups of people so that further testing can ensure the product has few faults.