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

Software Testing Types

2019
Agenda
● What is a software Test Type
● Web, Desktop, Mobile Testing
● Test Approaches
● Test Types by Test Levels
● Test Types by Test Objectives
● Let’s Recap
● Useful links
What is a software Test Type
A test type is a group of test activities aimed at testing a
component or system focused on a specific test objective
(i.e. Finding defects, Gaining confidence, Preventing
defects etc.).

Test activities can be grouped according to:


● Test Approach
● Test Levels
● Test Objectives

Testing can be performed on Web (i.e applications that run 100% within a
browser), Desktop (i.e native application that executes on a user's local
machine) and Mobile (i.e. application built to run natively on a mobile device).
Web, Desktop, Mobile Testing

- Internet connection - Browser - Changing network


- Different Operating version/supported conditions
Systems features - Device differences
- Different hardware - Internet connection - Security
configurations - Hardware
- Software conflicts - APIs
- Security - External services
- Permissions - Security
Test Approaches
● Proactive and Reactive Testing
● Manual and Automated Testing
● Verification and Validation Testing
● Black-box, White-box and Grey-box Testing
● Positive and Negative Testing
● Scripted and Unscripted Testing
Proactive and Reactive Testing

Proactive behavior involves acting in Reactive behavior is reaching to


advance of a future situation, rather than problems when they occur instead of
just reacting. doing something to prevent them.

Testing design process is initiated as


Testing is not started until design and
early as possible in order to find and fix
coding are completed.
the defects before the build is created.
Manual and Automated Testing

Manual Testing - is the process through Automated testing - is the process through
which tests are run manually, comparing which automated tools run tests that repeat
program expectation and actual outcomes in predefined actions, comparing a developing
order to find software defects. program’s expected and actual outcome.
Verification and Validation Testing
Q: Are we building the product right? Q: Are we building the right product?

To ensure that the product actually meets


To ensure that work product meets its
the user’s needs, and that the specifications
specified requirements.
were correct in the first place.
Black-box, White-box and Grey-box Testing
Black Box Grey Box White Box

Only the user interface or


Somewhat knowledge of the Full knowledge of the internal
front-end of the application is
internal workings are known working of the application
seen
Combination of black box and Testing based on an analysis of
Testing without reference to the
white box testing the internal structure of the
internal structure of the
component or system
component or system
Positive and Negative Testing

In Positive testing our intention is to In Negative testing our intention is


prove that an application will work to prove that an application will not
on giving valid input data. work on giving invalid inputs.

i.e testing a system by giving its i.e testing a system by giving its
corresponding valid inputs corresponding invalid inputs
Scripted and Unscripted Testing

Scripted Testing Unscripted Testing

Test execution carried out by Test execution carried out without


following a previously documented previously documented sequence of
sequence of tests tests
Unscripted testing
Exploratory Testing Ad-hoc Testing

An informal test design technique where the Testing carried out informally; no formal
tester actively controls the design of the tests test preparation takes place, no recognized
as those tests are performed and uses test design technique is used, there are no
information gained while testing to design expectations for results and arbitrariness
new and better tests guides the test execution activity
Test Types by Test Levels
User Preparation Acceptance
requirements Acceptance test test execution

System Preparation System test


requirements System test execution

Global Preparation Integration


design Integration test test execution

Detailed Component
design test execution

Implementation
Component Testing

Acceptance Testing
Component (Unit) Test Level

Who DEV

When Component is developed


System Testing
Why To validate that each unit of the software
performs as designed

How White-box testing


Integration Testing

Component (Unit) Testing


Integration Testing

Acceptance Testing
Integration Test Level

Who DEV, QC

When Units to be integrated are developed


System Testing
Why To expose faults in the interaction between
integrated units

How White-box/ Black-box/ Grey-box


Depends on definite units
Integration Testing

Component (Unit) Testing


System Testing

Acceptance Testing
System Test Level

Who QC

When Separate units are integrated into System


System Testing
Why To evaluate the system’s compliance with
the specified requirements

How Black-box testing


Integration Testing

Component (Unit) Testing


Acceptance Testing

Acceptance Testing
Acceptance Test Level

Who People who have not been involved into


development

System Testing When Component is developed

Why To evaluate the system’s compliance with


the business requirements and assess
whether it is acceptable for delivery

Integration Testing How Black-box testing

Component (Unit) Testing


Test Types by Test Objectives
● Functional (testing the intended functionality of a component or system)
● Non-functional (testing the non-functional aspects of a component or
system (i.e. usability, performance))
● Structural (testing of the structure
or architecture of the component
or system)
● Confirmation and Regression
(testing related to change
(i.e “confirmation testing” - confirming
that defects have been fixed and
“regressions testing” -looking for
unintended changes))
Functional Testing

● Is the testing of “what” the system does;


● Is based on an analysis of the specification of the functionality of a
component or system;
● Consists of:
○ Suitability
○ Accuracy
○ Interoperability
○ Compliance
Non-Functional Testing

● Is the testing of “how” the system works;


● Describes the test required to measure characteristics of systems and
software that can be quantified on a varying scale;
● Consists of:
○ Reliability
○ Efficiency
○ Security
○ Usability
○ Maintainability
○ Portability
Functional vs Non-Functional Testing
Real-life examples of testing scenarios where these 2 methodologies are
applied:

EXAMPLE 1:
1. Functional testing: when the email notifications is enabled, the user
gets a message and email notifications get sent (the “WHAT”)
2. Non-functional testing: email notifications get sent within 3 minutes
(the "HOW")

EXAMPLE 2:
1. Functional Testing: when a user clicks the Settings menu he instantly
accesses the Settings page
2. Non-Functional testing: that specific Setting page has a look and feel
which is consistent with the GUI (Graphical User Interface)
Structural Testing (White-box)
● Is based on the inner workings of an application and revolves around
internal testing;
● Used in order to help measure the thoroughness of testing through
assessment of coverage of a type of structure.
Re-testing and Regression Testing

● Confirmation Testing - re-testing to confirm that the original defect has


been successfully removed.
● Regression Testing - repeated testing of an already tested program,
after modification, to discover any defect introduced or uncovered as a
result of change.
Smoke Testing
● Is also known as “Build Verification Testing” or “Build
Acceptance Testing”.
● Is a type of software testing that comprises of a non-exhaustive set of
tests that aim at ensuring that the most important functions work.
● The result of this testing is used to decide if a build is stable enough to
proceed with further testing.

Advantages:
● It exposes integration issues.
● It uncovers problems early.
● It provides some level of confidence that changes to the software have
not adversely affected major areas (the areas covered by smoke
testing, of course)
Let's Recap…
Useful links
● Desktop, Web, Mobile apps differences
● Manual vs Automation Testing Pros & Cons
● Static vs Dynamic Testing
● Black Box Testing Techniques with Examples
● White Box Testing Techniques with Examples
● Performance, Load, Stress Testing with Examples
● GUI Testing with Examples
● Localization Testing with Examples
● Confirmation vs Regression Testing

You might also like