Testing is a process to execute any program with aim to find the errors. For making the platform of software well, this must be free of errors. If testing is successfully done, this would remove every error from software.
Unit testing helps to validate function of unit to ensure that inputs result in desired output. Unit testing provides foundation for much more integrated and complex software. Integration testing often is performed after unit testing. This testing helps to operate along with communicate seamlessly together (Tebes et al. 2020). Although, in system testing, the QA team test software as complete product, and not part by part as done in unit testing as well as integration testing. However, regression testing is performed for ensuring software functions same after change in code or feature. Acceptance testing is different from these testing, and ensures that end user could achieve goals set within business requirements.
In waterfall model, overall process is divided into several stages. In this model, one phase’s outcome acts as input for next phase. All requirements are captured in first stage and documented in specific document (Kramer 2018). Requirement specifications are studied and design of system is prepared. With the input from system design, system is developed first into small program that are integrated in next phase. Post integration, overall system is tested to look for any failures or faults. After successful testing, system is deployed.
In incremental model, the requirements are divided in several standalone modules of development cycle of software. Within this model, all modules go through requirements, implementation, design, along with testing phases. All subsequent releases of module add functions to previous release (Sobri et al. 2017). This process continues until overall system is achieved.
In V model, every phase of software development life cycle must be completed before beginning of next phase. This follows sequential design process just like waterfall model. Device’s testing is planned in the parallel with corresponding development phase. V model includes validation phase on one side and verification phase on other side. Validation and verification processes are joined by the coding phase as V shape.
Water model is the linear-sequential model as every phase of testing is completed one after one in the linear fashion. However, testing in V model follows sequential path to execute. In the waterfall model, activities of testing begin after activities of development are over; although, in V model, activities of testing begin with first phase. Hence, it could be said that waterfall model is alternate of V model (Saravanan et al. 2020). In incremental model, process of testing continues until overall system is achieved. In incremental model, testing is performed after each iteration of the phase; however, in V model, activities of testing begin with first phase. In waterfall model, testing is performed after completing every coding phase; however, in incremental model, testing is performed after each iteration of stage.
References
Gerasimou, S., Eniser, H.F., Sen, A. and Cakan, A., 2020, October. Importance-driven deep learning system testing. In 2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE) (pp. 702-713). IEEE.
Kramer, M., 2018. Best practices in systems development lifecycle: An analyses based on the waterfall model. Review of Business & Finance Studies, 9(1), pp.77-84.
Saravanan, T., Jha, S., Sabharwal, G. and Narayan, S., 2020, December. Comparative Analysis of Software Life Cycle Models. In 2020 2nd International Conference on Advances in Computing, Communication Control and Networking (ICACCCN) (pp. 906-909). IEEE.
Sobri, W.A.W.M., Fauzi, S.S.M., Nasir, M.H.N.M., Ahmad, R. and Suali, A.J., 2017. A mechanism to assess the relationship between socio-technical congruence and project performance in incremental model. Journal of Fundamental and Applied Sciences, 9(5S), pp.58-74.
Tebes, G., Peppino, D., Becker, P., Matturro, G., Solari, M. and Olsina, L., 2020. Analyzing and documenting the systematic review results of software testing ontologies. Information and Software Technology, 123, p.106298.
Zhang, C., Yan, Y., Zhou, H., Yao, Y., Wu, K., Su, T., Miao, W. and Pu, G., 2018, May. Smartunit: Empirical evaluations for automated unit testing of embedded software in industry. In 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP) (pp. 296-305). IEEE.