Software Testing L1
Software Testing L1
Course
4. Black-box vs. Structural testing.
5. Testing strategies: Unit testing, integration
testing, profiling, test driven development.
contents
6. State based testing; configuration testing;
compatibility testing; web site testing.
7. Alpha, beta, and acceptance testing.
BSD 3107
8. Coverage criteria.
9. Test instrumentation and tools.
10. Developing test plans and cases
11. Managing the testing process.
12. Problem reporting, tracking, and analysis
Software Development Lifecycle
• A Software Development
Lifecycle Model describes the
types of activities performed
at each stage in a software
development project, and how
the activities relate to one
another logically and
chronologically.
• Approaches maybe sequential
or iterative/incremental
development approaches
Sequential Development
V Shaped
Agile Model
Introduction
• Most people have had an experience with software that did
not work as expected.
• Software that does not work correctly can lead to many
problems, including:
✓loss of money, time, or business reputation
✓ Injury or death
Introduction
• Software Testing is a method to check whether the actual
software product matches expected requirements and to
ensure that software product is defect free.
• It involves execution of software/system components using
manual or automated tools to evaluate one or more properties
of interest.
• The purpose of software testing is to identify errors, gaps or
missing requirements in contrast to actual requirements
• It aims at measuring specification, functionality and
performance of a software program or application.
Terminology
• An error is a mistake made by an engineer - often a
misunderstanding of a requirement or design specification
• A fault is a manifestation of that error in the code - what we
often call “a bug”
• A failure is an incorrect output/behavior that is caused by
executing a fault - the failure may occur immediately (crash!) or
much, much later in the execution
• Debugging attempts to associate failures with faults so they can
be removed from the system
• If a system passes all of its tests, is it free of all faults?
Terminology
• Faults may be hiding in portions of the code that only rarely
get executed
• “Testing can only be used to prove the existence of faults
not their absence” or “Not all faults have failures”
• Sometimes faults mask each other resulting in no visible
failures!
Terminology
Software Testing Goals