Software Testing Types

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Software

Testing
Types
Unit Test

Acceptance
Tests Integration
Tests

Regression
Tests Functional
Tests

Smoke
Tests

Swipe
02
Introduction to
Software Testing
Software Testing is a method to check whether the actual software
product matches expected requirements and to ensure that the
software product is DEFECT free.

It is a process that verifies and validates the software product.

Importance of Software Testing:

Though testing itself costs money, companies can save millions per year
in development and support if they have a good testing technique and

QA processes in place. Early software testing uncoverS problems before a


product goes to market. The sooner development teams receive test
feedback, the soonerthey can address issues such as:

Architectural flaws

Poor design decisions

Invalid or incorrect functionality

Security vulnerabilities

Scalability issues

When development leaves ample room for testing, it improves software


reliabilityand high-quality applications are delivered with few errors. A
system that meets or even exceeds customer expectations leads to
potentially more sales and greater market share.
03
Types of Software
Testing
There are two main types of software testing:

Functional

Non-functional Testing

For each of these, we have many testing types that we will be discussing
further in this presentation.

VS
Functional Testing Non-Functional Testing
04
Functional Testing
Functional testing a stage in the software delivery lifecycle in which
is

quality engineers verify whether the application under test's features

behaves as per their requirements.

Examples of functional Testing:

Unit Testing

Integration Testing

SmokeTesting
Sanity Testing

Regression Testing

End-to-End Testing STEP


5
LO
Acceptance Testing User

White Box Testing Acceptance


1

Black Box Testing Unit

InterfaceTesting Functional

Testing

4
2 Regression
Integration

3
System
05
Non-Functional
Testing
When performing non-functional testing, testers evaluate other
attributes of system behavior, such as the system's performance,
reliability, and stability.

Examples of non-functional Testing:

Performance Testing

Security Testing

Usability Testing
Security testing
Installation Testing

Reliability Testing

Interoperability Performance
Testing Testing

Non
Functional
Testing

Reliability Scalability
Testing Testing

Usability Testing
06
Unit Testing
Unit testing a type of software testing which
is is done on an individual
unit or component to test its corrections.

Typically, Unit testing done by the developer at the application


is

development phase. Each unit in unit testing can be viewed as a method,


function, procedure, or object.

Developers often use test automation tools such as NUnit, Xunit, JUnit,
Chai, Jest for the test execution.

UNIT
TESTING
08
Regression Testing
Any new change or feature added to the software can wreck its existing
functionalities. Regression testing is performed every time alterations
are made to check for the software's stability and functionalities. Due to
its work-intensive nature, regression testing is often automated.

Example: A food delivery


app added a function to help users add multiple
promotions on top of each other. A regression test needs to be done to
make sure the checkout and payment process is not affected.

REGRESSION
TESTING
07
Integration Testing
Integration testing a type of software testing where two or more
is

modules of an application are logically grouped together and tested as a


whole. The focus of this type of testing is to find the defect on interface,
communication, and data flow among modules. Top-down or Bottom-up
approach is used while integrating modules into the whole system.

This type of testing is done on modules of a system or


integrating
between systems. For example, a user is buying a flight ticket from any
airline website. Users can see flight details and payment information
while buying a ticket, but flight details and payment processing are two
different systems. Integration testing should be done while integrating of

airline website and payment processing system.

Integration Testing
09
Sanity Testing
Similar to regression testing, sanity testing is conducted for a new build

with minor bug Fixes, or new code added. If rejected in the sanity testing
phase, the build will not proceed to further testing. While regression
testing checks the entire system after alterations, sanity testing targets
specific areas that are affected by the new code or bug fixes only.

Example: On an e-commerce webpage, users cannot add a particular


product to their cart even when the stock is available. After the issue was

fixed, sanity testing is performed to ensure that the "add to cart"


function is indeed working.

Sanity Testing
10
Smoke Testing
When a new build is completed, it is handed to the QAs for smoke testing.

In this phase, only the mostand core functionalities are tested


critical

to ensure that they yield the intended results. As an early-stage


acceptance test, smoke testing adds a verification layer to determine
whether or not the new build can proceed to the next stage or needs re
work.

Example: A company built an app with the function to report


utility

outages in customers' homes. This function reports the address and other
relevant information as well as notifies the homeowner when a
dispatcher on the way to help. Smoke testing will validate this feature
is

on a fundamental level to assure that when an outage is reported, the


correct information is sent so a dispatcher can be there on time.
11

End to End Testing


It involves testing a complete application environment in a situation that
mimics real-world use, such as interacting with a database, using
network communications, or interacting with other hardware,
applications, or systems if appropriate.

For example, a tester is a pet insurance website. End to End


testing

testing involves testing of buying an insurance policy, LPM, tag, adding


another pet, updating credit card information on users' accounts,

updating user address information, receiving order confirmation emails


and policy documents.

End to End Testing


12
Security Testing
It is a type of testing performed by a special team.Any hacking method
can penetrate the system.

Security Testing done to check how the software, application, or


is

website is secure from internal and/or external threats. This testing


includes how much software is secure from malicious programs, viruses
and how secure & strong the authorization and authentication processes
are.

It how software behaves for any hacker's attack & malicious


also checks
programs and how software is maintained for data security after such a
hacker attack.
13
Performance Testing
Performance testing is testing of an application's stability and
response ime by applying load.

The word stability means the ability of the application to withstand in


the presence of load. Response time is how quickly an application is
available to users. Performance testing is done with the help of tools.

Loader.IO, JMeter, LoadRunner, etc. are good tools available in the


market.

TESTING
500

beta test
14
Types of Performance
Testing
Load testing

Load testing is testing of an application's stability and response time


by applying load, which is equal to or less than the designed number
of users for an application.
For example, your application 100 users at a time with a
handles
response time of 3seconds, then load testing can be done by applying
a load of the maximum of 100 or less than 100 users. The goal is to
verify that the application is responding within 3 seconds for all the
Users.

Stress Testing

Stress testing is testing an application's stability and response time by


applying load, which is more than the designed number of users for an
application.

For example, your application 1000 users at a time with a


handles
response time of 4 seconds, then stress testing can be done by
applying a load of more than 1000 users. Test the application with
1100,1200,1300 users and notice the response time. The goal is to
verify the stability of an application under stress.

Endurance Testing

Endurance testing is testing an application's stability and response


time by applying load continuously for a longer period to verify that
the application is working fine.

For example, car companies soak testing to verify that users can drive
cars continuously for hours without any problem.
15
Usability Testing
Usability testing is testing an application from the user's perspective to
check the look and feel and user-friendliness.

For example, there is a mobile app for stock and a tester is


trading,
performing usability testing. Testers can check the scenario like if the
mobile app is easy to operate with one hand or not, scroll bar should be
vertical, background color of the app should be black and price of and
stock is displayed in red or green color.

The main idea of usability testing of this kind of app is that as soon as the
user opens the app, the user should get a glance atthe market.

USABILITY
TESTING
16
UAT (User
Acceptance Testing)
User acceptance testing (UAT), also called application testing or end
user testing, is a phase of software development in which the software is
tested in the real world by its intended audience.

User acceptance testing validates the testing done at the end of the
development cycle. It is typically completed after unit testing, quality
assurance, system testing and integration testing. The software may
undergo other testing phases and be completely functional but might
still not meet its requirements if it is not well received by its intended

Users.

Who performs UAT?


End users normally perform user acceptance testing. They are the
most effective group to test software in this form because they know
exactly how the software will be used on a daily basis and what
changes need to be made to be suitable for this day-to-day use.

Internal functional experts also playa role in UAT, as they help shape
UAT Cycles and test management, as well as interpret the results.

USER ACCEPTANCE
T
TESTING
17
AlphaTesting
Alpha Testing is a type of acceptance testing; performed to identify all
possible issues and bugs before releasing the final product to the end
users. Alpha testing is carried out by the testers who are internal

employees of the organization. The main goal is to identify the tasks


that a typical user might perform and test them.

To put it as simple as possible, this kind of testing is called alpha only


because it is done early on, near the end of the development of the
software, and before beta testing. The main focus of alpha testing is to
simulate real users by using a black box and white box techniques.

USer Acceptance Testing

Unit Integration Systern Alpha Beta


Testing Testing Testing Testing Testing
18
BetaTesting

Beta Testing is performed by "real users" of the software applica tion


in "real environment" and it can be considered as a form of external

User Acceptance Testing. It is the final test before shipping aproduct to


the customers. Direct feedback from customers is a major advantage of
Beta Testing. This testing helps to test products in customer's
environment.

Beta version of the software is released to a limited number of end


users of the product to obtain feedback on the product quality. Beta
testing reduces product failure risks and provides increased quality of the
product through customer validation.

USer Acceptance Testing

Unit Integration Systen Alpha Beta


Testing Testing Testing Testing Testing
19
A/B Testing
A/B testing an experimental method in which two versions
is of
anything are contrasted to see which is "better" or more effective.

This is done in marketing when two different types of content


often
whether it be emailing copy, a display ad, a call-to-action (CTA) on a web
page, or any other marketing asset-are being compared. This is usually
done before launching any product in the market so that the company
can get better results.

This also helps in comparing the performance of two or more variants of


emails and then selecting the best among themon the result given
based
by the audience. So, now without waiting any time let's move forward and
take a look that what is A/B testing:

A B
75% 85%
19
Ad Hoc-Monkey
Testing
Ad Hoc Testing is a kindof testing where testers who know the software
well test it without a strict plan. It's also called Random Testing or
Monkey Testing.
Testers might use some existing test cases or choose them randomly to
test the software.

The term "Monkey Testing" comes from the idea that testers are
essentially "monkeying around" with the software, mimicking a playful

and exploratory approach to uncover hidden problems.

Adhoc Testing

Adhoc -Unplanned
Testing -Unstructured
-No Documentation

You might also like