SOFTWARE TESTING
NUSRAT MEHNAZ CHOWDHURY
SQA Engineer, Vivasoft Ltd.
Adjunct Faculty, Daffodil International University
Contact: nmehnaz27@[Link]
A method to check whether
Software Testing
the actual software
product matches expected
requirements and to ensure
What is it? that software product is
Defect free
[Link]
● Enhance product quality
● Improve security
● Detect compatibility
Software Testing
with different devices
and platforms
● Make sure that the end
Why this is important? result meets the
business and user
requirements and
specifications
[Link]
Software Quality A procedure to ensure the
Assurance
quality of software
products or services
provided to the customers
What is it? by an organization
[Link]
Software Quality
● To monitor and improve
the software
Assurance
development process
● Make sure that the
standards and
Why this is important? procedures are followed
● Preventing the quality
problems from occurring
[Link]
Software Quality Assurance VS Software Testing
1. To monitor the quality of the 1. To ensure the functionality of
process used to produce the final product meets the user's
software requirement
2. Aims to prevent the defect 2. Aims to identify and fix
3. Involves in full Software defects
Development Life Cycle 3. Involves in full Software
4. Process oriented Testing Life Cycle
4. Product oriented
[Link]
[Link]
[Link]
Software Development Life
SDLC
Cycle
Defines all the standard phases
which are involved during the
What is it? software development process
[Link]
SDLC Phases
1
Requirement
Gathering
6 2
Maintenance Design
5 3
Deployment Build
4
Test
[Link]
Software Testing Life
STLC
Cycle
A sequence of specific
activities conducted during the
What is it? testing process to ensure
software quality goals are met
[Link]
STLC Phases
1
Requirement
Analysis
6 2
Test Cycle Test Planning
Closure
5 3
Test Execution Test Case
Development
4
Environment
Setup
[Link]
Test Case Writing
1. Testing shows presence
of defects
2. Exhaustive testing is
7 Principles of
not possible
3. Early testing
Software Testing
4. Defect clustering
5. Pesticide paradox
6. Testing is context
dependent
7. Absence of error
fallacy
[Link]
1. Functional Testing
Software Testing 2. Non-Functional Testing
3. Maintenance
a. Regression testing
Types? b. Maintenance
[Link]
Functional Testing
It validates the software
system against the
functional requirements or
What is it? specifications
[Link]
● Unit testing
● Smoke testing
Functional Testing
● Sanity testing
● User Acceptance testing
● Integration testing
Types? ● Black Box testing
● White Box testing
● And so on…
[Link]
Non - Functional Checks the non functional
Testing
aspects such as
performance, usability,
reliability etc. of a
What is it? software application
[Link]
[Link]
Non - Functional ●
●
Performance testing
Volume testing
Testing
● Usability testing
● Load testing
● Stress testing
Types? ● Scalability testing
● And so on…
[Link]
Functional testing VS Non - Functional Testing
1. Based on customer requirements 1. Based on customer expectation
2. To validate the behavior of the 2. To validate the performance of
application the application
3. Performed before Non Functional 3. Performed after Functional
testing testing
4. Easy to define functional 4. Difficult to define non
requirements functional requirements
[Link]
[Link]
Manual Testing
Test cases are executed by
a tester without using any
automation tools
What is it?
[Link]
Automation
Testing
Test cases are performed
using special automated
testing software tools
What is it?
[Link]
Manual testing VS Automation Testing
1. Time-consuming 1. Faster
2. Not much accurate because of 2. Reliable method because of the
the possibility of the human tools and scripts
errors 3. Performance Tests have to test
3. Performance Testing is not by an automation tool
feasible manually 4. Its accurate and never gets
4. Repetitive manual test bored
execution can be boring and
error-prone
[Link]
● Focuses on input and
output and it is entirely
based on software
requirements and
specifications
Functionalities are tested
Black Box Testing
●
without having knowledge
of
○ Internal code
structure
○ Implementation details
What is it? ○ Internal paths
● Also known as Behavioral
Testing
[Link]
● Internal structure, design
and coding of software are
tested to verify flow of
input-output
White Box Testing
● Also known as
○ Clear box testing
○ Open box testing
○ Transparent box
testing
What is it? ○ Code-based testing
○ Glass box testing
[Link]
● Test a software product
or application with
partial knowledge of
Gray Box Testing internal structure of
the application
● Combination of Black
What is it? and White Box testing
[Link]
Black Box VS White Box Testing
1. Internal structure is not known 1. Internal structure is known to
to the tester the tester
2. Validate the functional 2. Validate the internal structure
requirements and working of software code
3. Programming knowledge is not 3. Programming knowledge is
needed required
4. Less exhaustive and less 4. Exhaustive and time-consuming
time-consuming
[Link]
Only individual units or
components of a software
Unit Testing are tested
It is done before integration
testing and it is a white box
What is it? testing technique performed by
developer
[Link]
Integration
Software modules are
integrated logically and
tested as a group
Testing The purpose of this level of
testing is to expose defects in
the interaction between these
What is it? software modules when they are
integrated and performed by the
testers
[Link]
Performed on a complete
integrated system to
System Testing evaluate the compliance of
the system with the
corresponding requirements
What is it?
Performed by the testers
[Link]
[Link]
To verify/accept the
software system before
User Acceptance moving the software
application to the
Testing production environment
Performed by the end user or the
What is it? client and it is done in the
final phase of testing after
functional, integration and
system testing is done
[Link]
Regression To confirm that a recent
program or code change has
Testing
not affected the existing
features
It ensures that the old code
What is it? still works once the latest code
changes are done.
[Link]
To check specific test
cases that are found with
bug/s in the final
execution
Retesting Testers find the bugs while
testing the software application
and assign it to the developers
What is it? to fix it. Then the developers
fix the bug/s and assign it back
to the testers for verification.
This continuous process is
called Retesting.
[Link]
Performed after receiving
a software build with
Sanity Testing
minor changes in code or
functionality, to check
that the bugs have been
What is it? fixed and no further
issues are introduced due
to these changes
[Link]
To verify that the
critical functionalities
Smoke Testing
of software are working
fine
It is executed before any
What is it? detailed functional or
regression tests are executed
[Link]
Sanity Testing VS Smoke Testing
1. To check the new 1. To check the critical
functionality/bugs have been functionalities of the program
fixed is working fine
2. Subset of Regression Testing 2. Subset of Acceptance testing
3. Exercises only the particular 3. Exercises the entire system
component of the entire system from end to end
[Link]
Boundary Value
Testing
Testing between extreme
ends or boundaries between
partitions of the input
What is it? values
[Link]
Select input variable
Boundary Value
values at their,
1. Minimum
Testing 2. Just above the
minimum
3. Nominal
How to test?
4. Just below the
maximum
5. Maximum
[Link]
Severity and
Severity is a degree of
impact a bug or a Defect
Priority
has on the software
Priority is defined as the
What is it?
order in which a defect
should be fixed
[Link]
Severity,
Severity and
1. Critical
2. Major
Priority
3. Medium
4. Low
Priority,
Types?
1. High
2. Medium
3. Low
[Link]