Software Testing
Software Testing
Our
so ware tes ng tutorial is designed for beginners and professionals.
So ware tes ng is widely used technology because it is compulsory to test each and
every so ware before deployment.
Our So ware tes ng tutorial includes all topics of So ware tes ng such as Methods
such as Black Box Tes ng, White Box Tes ng, Visual Box Tes ng and Gray Box Tes ng.
Levels such as Unit Tes ng, Integra on Tes ng, Regression Tes ng, Func onal Tes ng.
System Tes ng, Acceptance Tes ng, Alpha Tes ng, Beta Tes ng, Non-Func onal tes ng,
Security Tes ng, Portability Tes ng.
What is So ware Tes ng
So ware tes ng is a process of iden fying the correctness of so ware by considering
its all a ributes (Reliability, Scalability, Portability, Re-usability, Usability) and
evalua ng the execu on of so ware components to find the so ware bugs or errors
or defects.
So ware tes ng provides an independent view and objec ve of the so ware and gives
surety of fitness of the so ware. It involves tes ng of all components under the
required services to confirm that whether it is sa sfying the specified requirements or
not. The process is also providing the client with informa on about the quality of the
so ware.
Tes ng is mandatory because it will be a dangerous situa on if the so ware fails any of
me due to lack of tes ng. So, without tes ng so ware cannot be deployed to the end
user.
What is Tes ng
Tes ng is a group of techniques to determine the correctness of the applica on under
the predefined script but, tes ng cannot find all the defect of applica on. The main
intent of tes ng is to detect failures of the applica on so that failures can be discovered
and corrected. It does not demonstrate that a product func ons properly under all
condi ons but only that it is not working in some specific condi ons.
Tes ng furnishes comparison that compares the behavior and state of so ware against
mechanisms because the problem can be recognized by the mechanism. The
mechanism may include past versions of the same specified product, comparable
products, and interfaces of expected purpose, relevant standards, or other criteria but
not limited up to these.
Tes ng includes an examina on of code and also the execu on of code in various
environments, condi ons as well as all the examining aspects of the code. In the current
scenario of so ware development, a tes ng team may be separate from the
development team so that Informa on derived from tes ng can be used to correct the
process of so ware development.
The success of so ware depends upon acceptance of its targeted audience, easy
graphical user interface, strong func onality load test, etc. For example, the audience
of banking is totally different from the audience of a video game. Therefore, when an
organiza on develops a so ware product, it can assess whether the so ware product
will be beneficial to its purchasers and other audience.
Type of So ware tes ng
We have various types of tes ng available in the market, which are used to test the
applica on or the so ware.
With the help of below image, we can easily understand the type of so ware tes ng:
Manual tes ng
The process of checking the func onality of an applica on as per the customer needs
without taking any help of automa on tools is known as manual tes ng. While
performing the manual tes ng on any applica on, we do not need any specific
knowledge of any tes ng tool, rather than have a proper understanding of the product
so we can easily prepare the test document.
Manual tes ng can be further divided into three types of tes ng, which are as follows:
o White box tes ng
o Black box tes ng
o Gray box tes ng
o Requirement Phase
o Design Phase
o Build /Development Phase
o Tes ng Phase
o Deployment/ Deliver Phase
o Maintenance
1. Requirement Phase
This is the most crucial phase of the so ware development life cycle for the developing
team as well as for the project manager. During this phase, the client states
requirements, specifica ons, expecta ons, and any other special requirement related
to the product or so ware. All these are gathered by the business manager or project
manager or analyst of the service providing company.
The requirement includes how the product will be used and who will use the product
to determine the load of opera ons. All informa on gathered from this phase is cri cal
to developing the product as per the customer requirements.
2. Design Phase
The design phase includes a detailed analysis of new so ware according to the
requirement phase. This is the high priority phase in the development life cycle of a
system because the logical designing of the system is converted into physical designing.
The output of the requirement phase is a collec on of things that are required, and the
design phase gives the way to accomplish these requirements. The decision of all
required essen al tools such as programming language like Java, .NET, PHP,
a database like Oracle, MySQL, a combina on of hardware and so ware to provide a
pla orm on which so ware can run without any problem is taken in this phase.
There are several techniques and tools, such as data flow diagrams, flowcharts, decision
tables, and decision trees, Data dic onary, and the structured dic onary are used for
describing the system design.
3. Build /Development Phase
A er the successful comple on of the requirement and design phase, the next step is
to implement the design into the development of a so ware system. In this phase, work
is divided into small units, and coding starts by the team of developers according to the
design discussed in the previous phase and according to the requirements of the client
discussed in requirement phase to produce the desired result.
Front-end developers develop easy and a rac ve GUI and necessary interfaces to
interact with back-end opera ons and back-end developers do back-end coding
according to the required opera ons. All is done according to the procedure and
guidelines demonstrated by the project manager.
Since this is the coding phase, it takes the longest me and more focused approach for
the developer in the so ware development life cycle.
4. Tes ng Phase
Tes ng is the last step of comple ng a so ware system. In this phase, a er ge ng the
developed GUI and back-end combina on, it is tested against the requirements stated
in the requirement phase. Tes ng determines whether the so ware is actually giving
the result as per the requirements addressed in the requirement phase or not. The
Development team makes a test plan to start the test. This test plan includes all types
of essen al tes ng such as integra on tes ng, unit tes ng, acceptance tes ng, and
system tes ng. Non-func onal tes ng is also done in this phase.
If there are any defects in the so ware or it is not working as per expecta ons, then
the tes ng team gives informa on to the development team in detail about the issue.
If it is a valid defect or worth to sort out, it will be fixed, and the development team
replaces it with the new one, and it also needs to be verified.
5. Deployment/ Deliver Phase
When so ware tes ng is completed with a sa sfying result, and there are no remaining
issues in the working of the so ware, it is delivered to the customer for their use.
As soon as customers receive the product, they are recommended first to do the beta
tes ng. In beta tes ng, customer can require any changes which are not present in the
so ware but men oned in the requirement document or any other GUI changes to
make it more user-friendly. Besides this, if any type of defect is encountered while a
customer using the so ware; it will be informed to the development team of that
par cular so ware to sort out the problem. If it is a severe issue, then the development
team solves it in a short me; otherwise, if it is less severe, then it will wait for the next
version.
A er the solu on of all types of bugs and changes, the so ware finally deployed to the
end-user.
6. Maintenance
The maintenance phase is the last and long-las ng phase of SDLC because it is the
process which con nues un l the so ware's life cycle comes to an end. When a
customer starts using so ware, then actual problems start to occur, and at that me
there's a need to solve these problems. This phase also includes making changes in
hardware and so ware to maintain its opera onal effec veness like to improve its
performance, enhance security features and according to customer's requirements
with upcoming me. This process to take care of product me to me is called
maintenance.
"So, all these are six phases of so ware development life cycle (SDLC) under which the
process of development of so ware takes place. All are compulsory phases without any
one of the development cannot be possible because development con nues for the
life me of so ware with maintenance phase".
Requirement Analysis:
The first step of the manual tes ng procedure is
requirement analysis. In this phase, tester
analyses requirement document of SDLC
(So ware Development Life Cycle) to examine requirements stated by the client. A er
examining the requirements, the tester makes a test plan to check whether the
so ware is mee ng the requirements or not.
Defect Logging:
Testers and developers evaluate the comple on criteria of the so ware based on test
coverage, quality, me consump on, cost, and cri cal business objec ves. This phase
determines the characteris cs and drawbacks of the so ware. Test cases and bug
reports are analyzed in depth to detect the type of defect and its severity.
Defect logging analysis mainly works to find out defect distribu on depending upon
severity and types.If any defect is detected, then the so ware is returned to the
development team to fix the defect, then the so ware is re-tested on all aspects of the
tes ng.
Once the test cycle is fully completed then test closure report, and test metrics are
prepared.
o Manual Tes ng
o Automa on Tes ng
What is Manual Tes ng?
Tes ng any so ware or an applica on according to the client's needs without using any
automa on tool is known as manual tes ng.
In other words, we can say that it is a procedure of verifica on and valida on. Manual
tes ng is used to verify the behavior of an applica on or so ware in contradic on of
requirements specifica on.
We do not require any precise knowledge of any tes ng tool to execute the manual test
cases. We can easily prepare the test document while performing manual tes ng on
any applica on.
To get in-detail informa on about manual tes ng, click on the following link: manual-
tes ng.
Classifica on of Manual Tes ng
In so ware tes ng, manual tes ng can be further classified into three different types
of tes ng, which are as follows:
o White Box Tes ng
o Black Box Tes ng
o Grey Box Tes ng
White box tes ng is also known as open box tes ng, glass box tes ng, structural
tes ng, clear box tes ng, and transparent box tes ng.
To get the in-depth knowledge about white box tes ng refers to the below link: white-
box-tes ng.
Black Box Tes ng
Another type of manual tes ng is black-box tes ng. In this tes ng, the test engineer
will analyze the so ware against requirements, iden fy the defects or bug, and sends
it back to the development team.
Then, the developers will fix those defects, do one round of White box tes ng, and send
it to the tes ng team.
Here, fixing the bugs means the defect is resolved, and the par cular feature is working
according to the given requirement.
The main objec ve of implemen ng the black box tes ng is to specify the business
needs or the customer's requirements.
In other words, we can say that black box tes ng is a process of checking the
func onality of an applica on as per the customer requirement. The source code is not
visible in this tes ng; that's why it is known as black-box tes ng.
For more informa on about Black box tes ng, refers to the below link: black-box-
tes ng.
Types of Black Box Tes ng
Black box tes ng further categorizes into two parts, which are as discussed below:
o Func onal Tes ng
o Non-func on Tes ng
In other words, we can say that if a single-person team done both white box and black-
box tes ng, it is considered grey box tes ng.
To get the in-details informa on about Grey box tes ng, we can refer to the below link:
grey-box-tes ng.
Automa on Tes ng
The most significant part of So ware tes ng is Automa on tes ng. It uses specific tools
to automate manual design test cases without any human interference.
Automa on tes ng is the best way to enhance the efficiency, produc vity, and coverage
of So ware tes ng.
It is used to re-run the test scenarios, which were executed manually, quickly, and
repeatedly.
In other words, we can say that whenever we are tes ng an applica on by using some
tools is known as automa on tes ng.
We will go for automa on tes ng when various releases or several regression cycles
goes on the applica on or so ware. We cannot write the test script or perform the
automa on tes ng without understanding the programming language.
For more informa on about automa on tes ng, we can refer to the below link:
automa on-tes ng.
Some other types of So ware Tes ng
In so ware tes ng, we also have some other types of tes ng that are not part of any
above discussed tes ng, but those tes ng are required while tes ng any so ware or an
applica on.
o Smoke Tes ng
o Sanity Tes ng
o Regression Tes ng
o User Acceptance Tes ng
o Exploratory Tes ng
o Adhoc Tes ng
o Security Tes ng
o Globaliza on Tes ng
Let's understand those types of tes ng one by one:
In smoke tes ng, we will test an applica on's basic and cri cal features before doing
one round of deep and rigorous tes ng.
Or before checking all possible posi ve and nega ve values is known as smoke tes ng.
Analyzing the workflow of the applica on's core and main func ons is the main
objec ve of performing the smoke tes ng.
For more informa on about smoke tes ng, refers to the following link:
smoke-tes ng.
Sanity Tes ng
It is used to ensure that all the bugs have been fixed and no added issues come into
existence due to these changes. Sanity tes ng is unscripted, which means we cannot
documented it. It checks the correctness of the newly added features and components.
To get the in-detail informa on about sanity tes ng, we can refer to the below link:
sanity-tes ng.
Regression Tes ng
Regression tes ng is the most commonly used type of so ware tes ng. Here, the
term regression implies that we have to re-test those parts of an unaffected
applica on.
Regression tes ng is the most suitable tes ng for automa on tools. As per the project
type and accessibility of resources, regression tes ng can be similar to Retes ng.
Whenever a bug is fixed by the developers and then tes ng the other features of the
applica ons that might be simulated because of the bug fixing is known as regression
tes ng.
In other words, we can say that whenever there is a new release for some project, then
we can perform Regression Tes ng, and due to a new feature may affect the old
features in the earlier releases.
To get thorough knowledge related to regression tes ng, refer to the below link:
regression-tes ng.
User Acceptance Tes ng
The User acceptance tes ng (UAT) is done by the individual team known as domain
expert/customer or the client. And knowing the applica on before accep ng the final
product is called as user acceptance tes ng.
In user acceptance tes ng, we analyze the business scenarios, and real- me scenarios
on the dis nct environment called the UAT environment. In this tes ng, we will test the
applica on before UAI for customer approval.
For more informa on about the User acceptance tes ng, click on the below link:
acceptance-tes ng.
Exploratory Tes ng
Whenever the requirement is missing, early itera on is required, and the tes ng team
has experienced testers when we have a cri cal applica on. New test engineer entered
into the team then we go for the exploratory tes ng.
To execute the exploratory tes ng, we will first go through the applica on in all possible
ways, make a test document, understand the flow of the applica on, and then test the
applica on.
Click on the following link to get the complete informa on about exploratory tes ng:
exploratory-tes ng.
Adhoc Tes ng
Tes ng the applica on randomly as soon as the build is in the checked sequence is
known as Adhoc tes ng.
It is also called Monkey tes ng and Gorilla tes ng. In Adhoc tes ng, we will check the
applica on in contradic on of the client's requirements; that's why it is also known
as nega ve tes ng.
When the end-user using the applica on casually, and he/she may detect a bug. S ll,
the specialized test engineer uses the so ware thoroughly, so he/she may not iden fy
a similar detec on.
Refers to the following to get the in-detail informa on about Adhoc tes ng:
adhoc-tes ng.
Security Tes ng
It is an essen al part of so ware tes ng, used to determine the weakness, risks, or
threats in the so ware applica on.
The execu on of security tes ng will help us to avoid the nasty a ack from outsiders
and ensure our so ware applica ons' security.
In other words, we can say that security tes ng is mainly used to define that the data
will be safe and endure the so ware's working process.
To get the complete detail about security tes ng, refer to the below link: security-
tes ng.
Globaliza on Tes ng
Another type of so ware tes ng is Globaliza on tes ng. Globaliza on tes ng is used
to check the developed so ware for mul ple languages or not. Here, the
words globaliza on means enlightening the applica on or so ware for various
languages.
Globaliza on tes ng is used to make sure that the applica on will support mul ple
languages and mul ple features.
In present scenarios, we can see the enhancement in several technologies as the
applica ons are prepared to be used globally.
Levels of Tes ng
In this sec on, we are going to understand the various levels of so ware tes ng.
As we learned in the earlier sec on of the so ware tes ng tutorial that tes ng any
applica on or so ware, the test engineer needs to follow mul ple tes ng techniques.
In order to detect an error, we will implement so ware tes ng; therefore, all the errors
can be removed to find a product with more excellent quality.
What are the levels of So ware Tes ng?
Tes ng levels are the procedure for finding the missing areas and avoiding overlapping
and repe on between the development life cycle stages. We have already seen the
various phases such as Requirement collec on, designing, coding tes ng,
deployment, and maintenance of SDLC (So ware Development Life Cycle).
In order to test any applica on, we need to go through all the above phases of SDLC.
Like SDLC, we have mul ple levels of tes ng, which help us maintain the quality of the
so ware.
Different Levels of Tes ng
The levels of so ware tes ng involve the different methodologies, which can be used
while we are performing the so ware tes ng.
In so ware tes ng, we have four different levels of tes ng, which are as discussed
below:
1. Unit Tes ng
2. Integra on Tes ng
3. System Tes ng
4. Acceptance Tes ng
As we can see in the above image that all of these tes ng levels have a specific objec ve
which specifies the value to the so ware development lifecycle.
For our be er understanding, let's see them one by one:
Level1: Unit Tes ng
Unit tes ng is the first level of so ware tes ng, which is used to test if so ware
modules are sa sfying the given requirement or not.
The first level of tes ng involves analyzing each unit or an individual component of the
so ware applica on.
Unit tes ng is also the first level of func onal tes ng. The primary purpose of execu ng
unit tes ng is to validate unit components with their performance.
A unit component is an individual func on or regula on of the applica on, or we can
say that it is the smallest testable part of the so ware. The reason of performing the
unit tes ng is to test the correctness of inaccessible code.
Unit tes ng will help the test engineer and developers in order to understand the base
of code that makes them able to change defect causing code quickly. The developers
implement the unit.
For more informa on on unit tes ng, refers to the following link:
unit-tes ng.
Level2: Integra on Tes ng
The second level of so ware tes ng is the integra on tes ng. The integra on tes ng
process comes a er unit tes ng.
It is mainly used to test the data flow from one module or component to other
modules.
In integra on tes ng, the test engineer tests the units or separate components or
modules of the so ware in a group.
The primary purpose of execu ng the integra on tes ng is to iden fy the defects at the
interac on between integrated components or units.
When each component or module works separately, we need to check the data flow
between the dependent modules, and this process is known as integra on tes ng.
We only go for the integra on tes ng when the func onal tes ng has been completed
successfully on each applica on module.
In simple words, we can say that integra on tes ng aims to evaluate the accuracy of
communica on among all the modules.
For more informa on on integra on tes ng, refers to the following link:
integra on-tes ng.
Level3: System Tes ng
The third level of so ware tes ng is system tes ng, which is used to test the so ware's
func onal and non-func onal requirements.
It is end-to-end tes ng where the tes ng environment is parallel to the produc on
environment. In the third level of so ware tes ng, we will test the applica on as a
whole system.
To check the end-to-end flow of an applica on or the so ware as a user is known
as System tes ng.
In system tes ng, we will go through all the necessary modules of an applica on and
test if the end features or the end business works fine, and test the product as a
complete system.
In simple words, we can say that System tes ng is a sequence of different types of tests
to implement and examine the en re working of an integrated so ware computer
system against requirements.
For more informa on on System tes ng, refers to the following link:
system-tes ng.
Level4: Acceptance Tes ng
The last and fourth level of so ware tes ng is acceptance tes ng, which is used to
evaluate whether a specifica on or the requirements are met as per its delivery.
The so ware has passed through three tes ng levels (Unit Tes ng, Integra on Tes ng,
System Tes ng). Some minor errors can s ll be iden fied when the end-user uses the
system in the actual scenario.
In simple words, we can say that Acceptance tes ng is the squeezing of all the tes ng
processes that are previously done.
The acceptance tes ng is also known as User acceptance tes ng (UAT) and is done by
the customer before accep ng the final product.
Usually, UAT is done by the domain expert (customer) for their sa sfac on and checks
whether the applica on is working according to given business scenarios and real- me
scenarios.
For more informa on on System tes ng, refers to the following link:
acceptance-tes ng.