For extensive software testing, normally multiple testing methods are used to test multiple objects.
The testing activities spread out over time, lasting over months or even more than a year. Software testing is generally divided into different sub-stages to permit testing to be performed in a smaller, more compliant scale.
Software Testing Sub-Stages
This picture elucidates the software testing sub-stages through the use of V-model, a variation of the generally used waterfall process with an accent on verification and validation.
It demonstrates an annotated V-model with supplementary data about the specific testing sub-stages. All the sub-stages not included in the original V-model are demonstrated in red ovals, with their interrelation to the other sub-stages.
There are some key moments about these sub-stages:
- In the case if software bugs are reported by clients at the time of operational use, diagnosis testing may be used to recreate and diagnose the defects.
- Controlled product release and operational use by limited clients lead to beta testing. Beta testing may be supplementary testing sub-stage closely linked to operational use. It usually straightly precedes the operational use.
- Acceptance testing is attached to the end of system testing, because it is normally conducted right after system testing to define if the software product should be released.
- System testing, integration testing and component testing have already been represented in the V-model.
- Unit testing is depicted as is, both as a sub-stage of software testing and as a part of the coding-and-unit-testing stage.
- Regression testing normally spreads over the general test activities for new product releases based on previous ones or other equal products. Nevertheless, as soon as a serious part of the existing product is used, the accent of regression testing is normally on the integration testing sub-stage and subsequently, where old and new product elements are integrated.