08 Software Testing and Validation
08 Software Testing and Validation
and Validation
2
Today’s Lesson
Introduction to Software Testing
Involves
using behaves as expected
tools to
verify meets specified requirements
COE 356: Introduction to Software Engineering
that the
software:
satisfies intended objectives
4
Introduction to Software Testing
Basic Concepts & Terminologies
output
System
input
Terminologies
the
A human action that produces an
following
terms: Error: incorrect result.
7
Terminologies
Types of Software Testing
1 2 3 4
Manual vs. Non-
Functional Regression
COE 356: Introduction to Software Engineering
Automated functional
Testing Testing
Testing Testing
9
Manual vs. Automated Testing
Manual Testing
▪ Manual testing is a sort of testing where the test is carried out
without the use of any tools or automation.
▪ Testers create test cases for the codes, test the software, and
provide the product's final report.
COE 356: Introduction to Software Engineering
Manual vs. Automated Testing
Manual Testing
Advantages Disadvantages
Human intuition can detect defects automations Time consuming for repetitive test cases and
may miss large-scale applications
Early testing can provide fast feedback Requires skilled testers in complex cases
Human testers can provide user experience Not possible to record and reuse manual test
feedback cases
Manual vs. Automated Testing
Automated Testing
▪ Automated testing is a kind of testing done with the assistance of
tools (automation).
▪ Test scripts are created using automation tools. These scripts are
run automatically to compare actual results with expected results
COE 356: Introduction to Software Engineering
Manual vs. Automated Testing
Automated Testing
Advantages Disadvantages
Can be executed repeatedly with consistent Difficult to inspect elements that require
results human assessment like visuals
Manual vs. Automated Testing
Differences
Initial Setup Less setup time because no automation Setup time is needed to develop scripts
tools are needed and select tools
Processing Time Time consuming because it relies on Executes tests much faster
human speed and efficiency
Testing Uses Exploratory testing, usability testing and Performance Testing, load testing, and
COE 356: Introduction to Software Engineering
Human Intervention Relies on human judgement and intuition Involves minimal human intervention
ones the scripts and tools are setup
Investment Directed towards human resource Directed towards tools and automated
engineers
14
Functional Testing
Functional Testing
Example
Functional Testing
Types of Functional Testing
Client verifies
Combined Complete
that
Functionality individual integrated
developed
of individual components system is
system
units or are tested to tested to
COE 356: Introduction to Software Engineering
functions as
modules are ensure they ensure it
desired and
verified work together complies with
fulfils
as expected requirements
requirements
17
Non-functional Testing
Non-functional Testing
Types of Non-functional Testing
Stress Compatibility
Load Testing
Testing Testing
COE 356: Introduction to Software Engineering
Security Scalability
Testing Testing
19
Regression Testing
Testing Strategies
Black Box Testing
Black Box Testing
Advantages Disadvantages
White Box Testing
White Box Testing
Advantages Disadvantages
Grey Box Testing
White
Box ▪ Eg: Testing of databases,
APIs and integrated
components
26
Validation and Verification
Verification
Validation
COE 356: Introduction to Software Engineering
Verification Techniques
1 2 3
Validation Techniques
1 2 3
Challenges in Software Testing
1 2 3 4
Test
Time Changing Lack of
COE 356: Introduction to Software Engineering
Environment
Constraints Requirements Resources
setup
30
Best Practices in Software Testing
1 • Early Testing
3 • Test Automation
Any Questions?
The End
Contact: [email protected]