SOFTWARE TESTING
NUSRAT MEHNAZ CHOWDHURY
SQA Engineer, Vivasoft Ltd.
Adjunct Faculty, Daffodil International University
Contact: nmehnaz27@gmail.com
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
https://www.guru99.com/software-testing-introduction-importance.html
● 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
https://www.guru99.com/software-testing-introduction-importance.html
Software Quality A procedure to ensure the
Assurance
quality of software
products or services
provided to the customers
What is it? by an organization
https://www.guru99.com/all-about-quality-assurance.html
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
https://www.guru99.com/all-about-quality-assurance.html
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
https://www.quora.com/What-is-the-difference-between-QA-and-software-testing
https://www.guru99.com/quality-assurance-vs-quality-control.html
https://www.tutorialspoint.com/software_testing/software_testing_qa_qc_testing.htm
Software Development Life
SDLC
Cycle
Defines all the standard phases
which are involved during the
What is it? software development process
https://www.guru99.com/sdlc-vs-stlc.html
SDLC Phases
1
Requirement
Gathering
6 2
Maintenance Design
5 3
Deployment Build
4
Test
https://www.guru99.com/sdlc-vs-stlc.html
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
https://www.guru99.com/software-testing-life-cycle.html
STLC Phases
1
Requirement
Analysis
6 2
Test Cycle Test Planning
Closure
5 3
Test Execution Test Case
Development
4
Environment
Setup
https://www.guru99.com/software-testing-life-cycle.html
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
https://www.guru99.com/software-testing-seven-principles.html
1. Functional Testing
Software Testing 2. Non-Functional Testing
3. Maintenance
a. Regression testing
Types? b. Maintenance
https://www.guru99.com/software-testing-introduction-importance.html
Functional Testing
It validates the software
system against the
functional requirements or
What is it? specifications
https://www.guru99.com/functional-testing.html
● Unit testing
● Smoke testing
Functional Testing
● Sanity testing
● User Acceptance testing
● Integration testing
Types? ● Black Box testing
● White Box testing
● And so on…
https://www.guru99.com/functional-testing.html
Non - Functional Checks the non functional
Testing
aspects such as
performance, usability,
reliability etc. of a
What is it? software application
https://www.guru99.com/non-functional-testing.html
https://www.guru99.com/reliability-testing.html
Non - Functional ●
●
Performance testing
Volume testing
Testing
● Usability testing
● Load testing
● Stress testing
Types? ● Scalability testing
● And so on…
https://www.guru99.com/non-functional-testing.html
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
https://www.guru99.com/functional-testing-vs-non-functional-testing.html
https://www.guru99.com/functional-testing.html
Manual Testing
Test cases are executed by
a tester without using any
automation tools
What is it?
https://www.guru99.com/manual-testing.html
Automation
Testing
Test cases are performed
using special automated
testing software tools
What is it?
https://www.guru99.com/automation-testing.html
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
https://www.guru99.com/difference-automated-vs-manual-testing.html
● 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
https://www.guru99.com/black-box-testing.html
● 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
https://www.guru99.com/white-box-testing.html
● 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
https://www.guru99.com/grey-box-testing.html
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
https://www.guru99.com/back-box-vs-white-box-testing.html
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
https://www.guru99.com/unit-testing-guide.html
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
https://www.guru99.com/integration-testing.html
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
https://www.guru99.com/system-testing.html
https://www.geeksforgeeks.org/system-testing
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
https://www.guru99.com/user-acceptance-testing.html
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.
https://www.guru99.com/regression-testing.html
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.
https://www.guru99.com/re-testing-vs-regression-testing.html
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
https://www.guru99.com/smoke-sanity-testing.html
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
https://www.guru99.com/smoke-sanity-testing.html
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
https://www.guru99.com/smoke-sanity-testing.html
Boundary Value
Testing
Testing between extreme
ends or boundaries between
partitions of the input
What is it? values
https://www.guru99.com/equivalence-partitioning-boundary-value-analysis.html
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
https://www.guru99.com/equivalence-partitioning-boundary-value-analysis.html
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
https://www.guru99.com/defect-severity-in-software-testing.html
Severity,
Severity and
1. Critical
2. Major
Priority
3. Medium
4. Low
Priority,
Types?
1. High
2. Medium
3. Low
https://www.guru99.com/defect-severity-in-software-testing.html