Get Instant Help From 5000+ Experts For
question

Writing: Get your essay and assignment written from scratch by PhD expert

Rewriting: Paraphrase or rewrite your friend's essay with similar meaning at reduced cost

Editing:Proofread your work by experts and improve grade at Lowest cost

And Improve Your Grades
myassignmenthelp.com
loader
Phone no. Missing!

Enter phone no. to receive critical updates and urgent messages !

Attach file

Error goes here

Files Missing!

Please upload all relevant files for quick & complete assistance.

Guaranteed Higher Grade!
Free Quote
wave
Software Testing: Types and Models

Types of Software Testing

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: This is the testing of any unit, smallest section of code which could be isolated logically within the system. With most programming languages, this testing is done during development phase by software developers (Zhang et al. 2018). In this process, the units are independently and individually scrutinized for appropriate operation.
  • Integration testing: Integration testing is a phase within software testing where modules of software are combined as well as collected with certain functional requirements. Focus of this testing is exposing the defects during interaction between units. This is second level of this process of software testing which comes after the unit testing.
  • System testing: This testing is referred as system-integration or system-level testing. This is a process where team of quality assurance (QA) evaluates how several components of application interact in integrated and full application or system. This verifies that application performs the tasks as designed. It focuses on functionality of the application (Gerasimou et al. 2020). With this testing, team of QA gauges if the application meets every requirement that includes functional, business, and technical requirements.
  • Regression testing: This is the testing of existing software applications for making sure that an addition or change has not broken existing functionality. This is the re-running non-functional and functional tests for ensuring that previously developed as well as tested software performs still after the change. The changes that might need this testing include configuration changes, software enhancements, and bug fixes.
  • Acceptance testing: This is the method where system or application is tested for acceptability. Primary aim of the testing is evaluating compliance of system with business requirements along with assess if this is acceptable to be delivered or not.

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.

support
close