Lecture 1 Software Testing
Lecture 1 Software Testing
& Testing
1
Software Engineering Software Testing Slide 1
Module:1 Introduction
• Basics of Software Testing –Evolution - Myths and
Facts-Goals
• Definitions-Model for Software Testing
• Software Testing as a Process
• Software Testing Terminology and Methodology
• Software Testing Life Cycle(STLC)
• Types of testing
• Testing in the development life-cycle
• Testing principles-Verification and Validation
• Test case design strategies.
Software Engineering Software Testing Slide 2
What is Software?
3
Software Engineering Software Testing Slide 3
Software Engineering Definition
The seminal definition:
[Software engineering is] the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and works
efficiently on real machines.
5
Software Engineering Software Testing Slide 5
Software Testing
• mechanical faults
– earthquake
– virtual machine failure
(why is this a "mechanical" fault?)
Component Integration
testing testing
System Testing
Validation Testing
Integration Testing
Unit Testing
Code
Design
Requirements
System Engineering
80
Software Engineering Software Testing Slide 80
Levels of Testing for Conventional
Software
• Unit testing
– Concentrates on each component/function of the software as implemented in
the source code
• Integration testing
– Focuses on the design and construction of the software architecture
• Validation testing
– Requirements are validated against the constructed software
• System testing
– The software and other system elements are tested as a whole
81
Software Engineering Software Testing Slide 81
Testing Strategy applied to Conventional
Software
• Unit testing
– Exercises specific paths in a component's control structure to ensure complete
coverage and maximum error detection
– Components are then assembled and integrated
• Integration testing
– Focuses on inputs and outputs, and how well the components fit together and
work together
• Validation testing
– Provides final assurance that the software meets all functional, behavioral, and
performance requirements
• System testing
– Verifies that all system elements (software, hardware, people, databases) mesh
properly and that overall system function and performance is achieved
82
Software Engineering Software Testing Slide 82
Key points