Testing quite simply is the backbone of every project, whether you agree or not it’s not hard to state that testing has a place in each part of the System Development Life-Cycle. Employing a poor testing methodology will lead to the production of an unstable product and most likely one that will cost you more money and development time. Whether you decide to go Waterfall, Agile or DevOps it is essential to have a plan, especially a test plan, in place to ensure that the product is delivered in a robust and stable state, on a predictable timeline.
Every project has a start, middle and end and it doesn’t matter which method you use to develop, a set of general testing techniques must be incorporated if you want any chance of success. These start from testing very small pieces of code to testing the whole application functionality from end to end.
There are many different types of testing, but for this article we will stick to the core five components of testing:
1) Unit Tests
Unit testing is part of the software development process in which small parts of an application, called units, are individually tested for proper operation. Unit testing can be done manually but is often automated in Agile and DevOps projects.
2) Integration/System Tests
Integration testing is the part in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before functional testing.
3) Functional Tests
After the integration tests are performed, more complex levels of tests are used. The functional testing process in which software is tested to ensure that it conforms with all business requirements and to ensure that it has all the required functionality for the software to be used by the end user without issues.
4) Regression Tests
Regression testing verifies that software which was developed in previous releases still performs correctly after it was changed, changes may include software enhancements, compliance, bug fixes etc.
5) Acceptance Tests
Acceptance Testing is where a system is tested for acceptability by the end user. The purpose of this test is to evaluate the system's compliance with the business requirements and assess whether it is acceptable for delivery into production.
For more information on Testing Methodologies, visit our other blog article ‘Testing Methodologies – Picking the Right Modus Operandi’.