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