SW Testing
SW Testing
1 1
Outline
SW Testing
– Basics of testing
– Levels of software testing
– Testing techniques
V and V
Testing Method
2 2
Testing Definition
3
Goals of Testing
Identify errors
– Make errors repeatable (when do they occur?)
– Localize errors (where are they?)
4
A Good Testing:
5
Who Does Testing
Software Tester
Software Developer
Project Lead/Manager
End User
Another companies have different team, include
Software Quality Assurance Engineer, QA Analyst
etc
6
Levels of Software
Testing
Unit/Component testing
Integration testing
System testing
Acceptance testing
Installation testing
7
When Start Testing
8
When to StopTesting
9
Levels of Software Testing
Unit/Component testing
– Verify implementation of each software element
– Trace each test to detailed design
Integration testing
System testing
Acceptance testing
Installation testing
10
Levels of Software Testing
Unit/Component testing
Integration testing
– Combine software units and test until the entire
system has been integrated
– Trace each test to high-level design
System testing
Acceptance testing
Installation testing
11
Levels of Software Testing
Unit/Component testing
Integration testing
System testing
– Test integration of hardware and software
– Ensure software as a complete entity complies with
operational requirements
– Trace test to system requirements
Acceptance testing
Installation testing
12
Levels of Software Testing
Unit/Component testing
Integration testing
System testing
Acceptance testing
– Determine if test results satisfy acceptance criteria of
project stakeholder
– Trace each test to stakeholder requirements
Installation testing
13
Levels of Software
Testing
Unit/Component testing
Integration testing
System testing
Acceptance testing
Installation testing
– Perform testing with application installed on its target
platform
14
Testing Phases: V-Model
Requirements System System Detailed
Specification Specification Design Design
15
Hierarchy of Testing
TESTING
17
VERIFICATION and
VALIDATION
(V and V)
18
What is V&V?
Verification
– Evaluation of an object to demonstrate that it meets its
specification. (Did we build the system right?)
– Evaluation of the work product of a development phase to
determine whether the product satisfies the conditions
imposed at the start of the phase.
Validation
– Evaluation of an object to demonstrate that it meets the
customer’s expectations. (Did we build the right system?)
19
V&V and Software Lifecycle
Throughout software lifecycle, e.g., V-model
20
Requirement Engineering
21
Design
22
Implementation and
Maintenance
Implementation
– Determine unit test strategy
– Techniques (static vs. dynamic)
– Tools, and whistles and bells (driver/harness, stub)
Maintenance
– Determine regression test strategy
– Documentation maintenance (vital!)
23
Hierarchy of V&V
Techniques
V&V
24
Definitions of V&V
Terms
“Correct” program and specification
– Program matches its specification
– Specification matches the client’s intent
25
– Actual output does not match the expected output
Definitions
26
Definitions
27
Sample Causes of Error
Incorrect documentation
Program Implementation
Incorrect semantics
Unit Testing
Incomplete testing
Requirements
Reviews:
walkthroughs/inspections
Design
Implementation Synthesis
Testing
Runtime monitoring
Operation
Model checking
Correctness proofs Maintenance
29
NON – FUNCTIONAL TESTING
TYPES
• Performance Testing
• Load Testing
• Stress Testing
• Compatibility Testing
• Security Testing
• Usability Testing
• Localization Testing