Upload
shauna-spencer
View
226
Download
0
Tags:
Embed Size (px)
Citation preview
Verification and ValidationVerification refers to the set of activities
that ensure that software correctly implements a specific function.It asks the question: “Are we building the product right?”
Validation refers to a different set of activities that ensure that the software that has been built is traceable to customer requirements.It asks the question: “Are we building the right product?”
2
Unit Testing
5
interface
local data structures
boundary conditions
independent pathserror handling paths
moduleto betested
test cases
Unit Test Environment
6
Module
stub stub
driver
RESULTS
interface
local data structures
boundary conditions
independent paths
error handling paths
test cases
Integration Testing Strategies
7
Options:• the “big bang” approach• an incremental construction strategy
Top Down Integration
8
top module is tested with stubs
stubs are replaced one at a time, "depth first"
as new modules are integrated, some subset of tests is re-run
A
B
C
D E
F G
Bottom-Up Integration
9
drivers are replaced one at a time, "depth first"
worker modules are grouped into builds and integrated
A
B
C
D E
F G
cluster
Sandwich Testing
10
Top modules aretested with stubs
Worker modules are grouped into builds and integrated
A
B
C
D E
F G
cluster
Validation TestingValidation Testing can be defined as
ensuring that software functions in a manner that can be reasonably expected by the customer.
Achieve through a series of black-box testings tha demonstrate conformity with requirements.
A series of acceptance tests (include both alpha and beta testing) are conducted with the end users.
11
Alpha vs. Beta Testing
Alpha TestingIs conducted at
the Developer’s site by a customer
The developer would supervise
Is conducted in a controlled environment
Beta TestingIs conducted at
customer’s site by the end user of the software
The developer is generally not present
Is conducted in a “live” environment
12
System TestingSystem testing is actually a
series of different tests whose primary purpose is to fully exercise the computer-based system
Although each system test has a different purpose, all work to verify that all system elements have been integrated and perform allocated functions
13
System Testing ExamplesRecovery Testing
A system test that forces software to fail in a variety of ways and verifies that recovery is properly performed
Security TestingAttempts to verify tha protection mechanism built into a system will in fact protect it from improper penetration
Stress TestingIs designed to confront programs with abnormal situation where unusual quantity, frequency, or volume of resources are demanded
Performance TestingSeeks to test the run-time performance of software within the context of an integrated system
14
The Debugging Process
16
test cases
results
Debugging
suspectedcauses
identifiedcauses
corrections
regressiontests
new testcases
Debugging Effort
17
time requiredto diagnose thesymptom anddetermine thecause
time requiredto correct the errorand conductregression tests
Symptoms & Causes
18
symptomcause
symptom and cause may be geographically separated
symptom may disappear when another problem is fixed
cause may be due to a combination of non-errors
cause may be due to a system or compiler error
cause may be due to assumptions that everyone believes
symptom may be intermittent
Debugging: Final Thoughts
20
Don't run off half-cocked, think about the symptom you're seeing.
Use tools (e.g., dynamic debugger) to gain more insight.
If at an impasse, get help from someone else.
Be absolutely sure to conduct regression tests when you do "fix" the bug.
1.
2.
3.
4.