Software Testing Processes and Principles: A Comprehensive Analysis

Verified

Added on  2023/01/04

|10
|2144
|82
Report
AI Summary
This report provides a detailed analysis of software testing, encompassing its processes, principles, and the problems encountered. It begins with an introduction to software testing, emphasizing its role in verifying and validating software requirements. The report delves into the theory of software testing, explaining white box and black box testing methods, along with discussions on automated testing. It also addresses common problems in software testing, such as limitations in testing resources and techniques. The report highlights efficiency testing, including speed, stability, and recovery testing. It then outlines the phases of software testing, including preliminary, testing, and user acceptance phases, providing a comprehensive overview of the software testing lifecycle. The report concludes by summarizing the importance of software testing in software development and the application of various testing tools and techniques.
Document Page
Running head: THEORY OF SOFTWARE TESTING
SOFTWARE TESTING PROCESS AND PRINCIPALS
[Enter Name of the Student:]
[Enter Name of the University:]
[Author Note:]
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
1THEORY OF SOFTWARE TESTING
EXECUTIVE SUMMARY
The various software testing processes and tools and techniques have been discussed in this
report and also the various phases of the testing of the softwares have been discussed in the
report. The report also emphasizes on the various issues and problems related to the software
testing processes.
Document Page
2THEORY OF SOFTWARE TESTING
Table of Contents
Introduction......................................................................................................................................3
Discussion........................................................................................................................................3
Software testing theory................................................................................................................4
Various problems related to software testing..............................................................................5
Efficiency testing.........................................................................................................................5
Phases of software testing............................................................................................................6
Conclusion.......................................................................................................................................7
References........................................................................................................................................8
Document Page
3THEORY OF SOFTWARE TESTING
Introduction
The software testing is associated with the activities to check and examine the real time
outputs of a developed software with that of the desired or calculated output of the software. This
process involves the testing of sub process along with the entire process of the software building
in order to test and evaluate the various aspects of the software. The report emphasizes on the
various processes that are involved in the testing of a software and also the steps by which a
software testing can fail (Jorgensen 2013). However, the process of software testing has certain
problems and also various techniques can be applied to test a particular software. The software
testing are generally divide into various phases which makes the testing operation more precise
and efficient. Thus the process of software testing is very important aspect in the software
development life cycle and thus it is also needed in every software developed.
Discussion
The software testing includes the checking and real time testing of codes, consistency and
complexities of the software and also the debugging process is also a part of software testing
process where the softwares that are developed by various companies and organizations are
tested and debugged as the software contains various bugs which restrict the use of the software
for the intended purpose. The testing process can also be regarded as the validation process,
which validates that the requirements of the clients have been met or not (Lewis 2017). The
verification and validation of the softwares are thus as essential aspect in the software
development process. The software testing is divided into various phases and also the failure in
the softwares is an important part in software testings.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
4THEORY OF SOFTWARE TESTING
Software testing theory
The testing of software is related to the customer requirements and thus the software
testing theories involve various techniques and processes by which the developed softwares are
tested so that they would meet the needs and requirements of the clients. The verification of the
softwares are about making the software right in terms of requirements whereas the validation of
the softwares involve developing the appropriate software. The main two processes used can be
divided into two parts- white box testing and black box testing (Hass 2014). The testing process
involves white box testing which deals with the internal logic checking and structural checking
of the codes of the software. Data flowing testing can be defined as the process of defining and
usage of various program variables. The loop testing process is also an important aspect which
deals with validation of a loop constructed. Another process which can be referred here is the
control flow testing which verifies the control flow of the entire program and also allocates
various other sets of tests.
The Basis path testing is also a part of the software testing which deals with the logically
complex measures taken during the development of the testing phase. Various symmetric and
asymmetric analysis is also associated with the testing of the softwares. One such process is the
Array testing which is a symmetric testing procedure and it is mainly applied in case of the user
interface, system and regression testing in the entire process of software testing phase (Spillner,
Linz and Schaefer 2014). In the modern days, the process of automated testing has also been
introduced in the process which runs a particular software with the correct set of inputs and
evaluates the output by the software. The automated tester generally requires a test case
generator where no human intervention is needed and the entire testing process is carried out by
the tester itself, and appropriate feedbacks are also given after the testing process. In case of
Document Page
5THEORY OF SOFTWARE TESTING
manual testing, the tester divide the program of the software into smallest units and those small
units are further checked and tested to find out any flaws. This system also clarifies whether the
smallest unit can perform independently when separated from the main program code (Hooda
and Chhillar 2015). Another testing process is the black box testing which divides the entire
software code into many small units and those units are tested. Regression testing is one of the
types of black box testing which verifies whether the software is capable of the system and meets
with the functionalities as required.
Various problems related to software testing
The main problem related to the software testing is the limitations that the testing team
have to face during the testing of softwares. The causes of the limitations may be lack of
knowledge and resources, lack of training of the testers or the lack in the leadership in the higher
hierarchy of the testers. The testing team may not be provided with proper and efficient testing
methods and techniques (Fraser 2017). The manual testing process can also be a problem as
because the testing team gets busy in manually testing every unit whereas new technology and
tools must be developed in order to meet the requirements of the clients. The uncertainty in the
principles of a company may also be regarded as a problem in the software testing of a company.
Efficiency testing
The software testing process also includes the efficiency testing which defines how
efficient a software is and whether the software has met the requirements of the clients or not.
The efficiency testing includes speed, stability and scalability to the stakeholders and after this
test the tester will come to know whether the softwares are capable to perform on the real time
basis. Recovery testing is also an aspect of the efficiency testing which tests whether the
softwares will be able to recover themselves in case of crash or any malfunction (Lawanna
Document Page
6THEORY OF SOFTWARE TESTING
2019). This process of recovery should be done within a given time frame and also the bugs
should be removed. Alpha and beta testing are two factors for carrying out the efficiency testing
(Garousi and Mäntylä 2016). The Alpha testing is carried out when any old software is updated
into a newer version and this tests are usually done by the software developers. The Beta testing
is regarded as the next process that is carried out after the Alpha testing and it refers to the beta
versions of the software which are generally limited to only a specific number of people.
Phases of software testing
The software testing phases comprises of three main parts – preliminary testing phase,
testing phase and the user acceptance testing phase. The various phases of the software testing
helps the developers and the testers to test the softwares in a more efficient way. The preliminary
phase is conducted in order to check whether the softwares meet with the requirements of the
customers or not. Mainly automation tools are used for this phase and this is the first phase in the
testing process. The next part is the testing phase where the entire code of the software along
with the outputs of the software are tested (Fenton and Bieman 2014). The sub parts of this
process can be termed as the verification, validation and testing of the software developed.
The verification process is the technical reviews and software inspections in order to
check the requirement of the process. The validation and the testing process is used as a static
analytic tool used in the process of software testing. The user acceptance testing phase also
known as the (UAT) phase is associated with the integration testing, strategic development and
integration testing of the software which helps to divide the task into several units and again after
testing, combining the units into a complete software (Galster et al. 2013). The testing process
can also be regarded as the validation process, which validates that the requirements of the
clients have been met or not. The verification and validation of the softwares are thus as essential
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
7THEORY OF SOFTWARE TESTING
aspect in the software development process. The various other phases of the software testing life
cycle includes the analysis of the requirements, planning of the tests, development of various test
cases, setting up an environment for the tests and finally executing the tests. The two other
important part of the software testing life cycle is the entry and the exit criteria where, the entry
criteria is the list of requirements that must be done in advance of testing the softwares. The exit
criteria can be described as the tasks that must be completed before ending the tests. Thus the
software testing life cycle plays an important role in the manual testing and in case of automated
testing, the software testing life cycle is carried out without any human intervention.
Conclusion
The above report discusses about the software testing processes and how different tools
and techniques may be used for the testing of various softwares by the testers. Thus it can be
concluded from the above report, that the software testing is very much required in the
development of the softwares and the tools and techniques like white box and black box testing
should be used in the testing processes. Thus the various phases of the software testing are also
discussed in this report.
Document Page
8THEORY OF SOFTWARE TESTING
References
Fenton, N. and Bieman, J., 2014. Software metrics: a rigorous and practical approach. CRC
press.
Galster, M., Weyns, D., Tofan, D., Michalik, B. and Avgeriou, P., 2013. Variability in software
systems—a systematic literature review. IEEE Transactions on Software Engineering, 40(3),
pp.282-306.
Garousi, V. and Mäntylä, M.V., 2016. A systematic literature review of literature reviews in
software testing. Information and Software Technology, 80, pp.195-216.
Hass, A.M., 2014. Guide to advanced software testing. Artech House.
Hooda, I. and Chhillar, R.S., 2015. Software test process, testing types and techniques.
International Journal of Computer Applications, 111(13).
Jorgensen, P.C., 2013. Software testing: a craftsman's approach. Auerbach Publications.
Lawanna, A., 2019. The Theory of Software Testing. 1st ed. Bangkok, Thailand: Department of
Information Technology, Faculty of Science and Technology Assumption University.
Le Goues, C., Forrest, S. and Weimer, W., 2013. Current challenges in automatic software
repair. Software quality journal, 21(3), pp.421-443.
Lewis, W.E., 2017. Software testing and continuous quality improvement. Auerbach
publications.
Peled, D.A., 2013. Software reliability methods. Springer Science & Business Media.
Document Page
9THEORY OF SOFTWARE TESTING
Spillner, A., Linz, T. and Schaefer, H., 2014. Software testing foundations: a study guide for the
certified tester exam. Rocky Nook, Inc..
Jensen, C.S., Prasad, M.R. and Møller, A., 2013, July. Automated testing with targeted event
sequence generation. In Proceedings of the 2013 International Symposium on Software Testing
and Analysis (pp. 67-77). ACM.
Fraser, G., 2017, May. Gamification of software testing. In 2017 IEEE/ACM 12th International
Workshop on Automation of Software Testing (AST) (pp. 2-7). IEEE.
chevron_up_icon
1 out of 10
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]