fall, 2006sw eng standalone progs, univ of colorado boulder 1 wk 11 glass box testing, flow graphs,...
Post on 21-Dec-2015
214 views
TRANSCRIPT
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
1
Wk 11 Glass Box Testing, Flow Graphs, Test Coverage
SW Engineering of Standalone Programs
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
2
Basis set for statement coverage testing
• Draw the flow graph• Count the bounded regions including the “outside
region”– N is the number of linearly independent paths through the
program control structure
– A linearly independent path includes one node of the control flow graph not contained in any other
– Create a basis set of linearly independent paths
• Prepare test cases to force execution of each path in the basis set.
• Execution of these test cases yields ______ coverage
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
6
Uses of Test Coverage Measurement
• Measure test suite completeness• Identify risk areas
– Combine execution counts with complexity– Understand complex code segments that are
frequently executed– Understand criticality
• Assist in creating new test cases • Assist in manual detection of faults• Prioritize test cases for regression tests
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
8
Test Coverage MeasuresCompleteness of Test Suite
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
9
Test Coverage MeasurementMinimize and select regression tests 377 Total Tests
Blocks Decisions P-uses All-uses
75% 65% 38% 44%
160 Total Tests
Blocks Decisions P-uses All-uses
75% 65% 38% 44% 18 Total Tests
Blocks Decisions P-uses All-uses
62% 52% 30% 37%
42% of the original tests provide identical coverage
5% of original tests provide 85% of original coverage
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
10
Unit Test Coverage vsSystem Test Errors
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
11
System Test Observed & Expected Failures
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
12
System Test Failure Rate over Active Hrs
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
14
HW 7 start of codegetop(s, lim) /*get next operator or operand */
char all;
int lim;
{
int i, c;
while ((c = getch ( ) ) == ‘ ‘|| c == ‘\t’ || c == ‘\n’)
;
if (c ! = ‘.’ && (c<‘0’ || c>’9’))
return (c);
s[0] = c;
for (i=1; (c=getchar()) >= ‘0’ && c <=‘9’; i++)
if (i < lim)
s[i] = c;
if ...
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
16
What are inspections?
• Means of verifying work products
• Manual examination technique
• One piece at a time
• Small group of peers – at least 4
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
17
Purpose
• Verification of a work product against– established criteria– product specifications
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
18
How performed?
• Planning
• Overview
• Preparation
• Meeting
• Re-work
• Follow up
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
19
Roles of participants
• Author
• Moderator
• Reader
• Recorder
• Inspector
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
20
The meeting
• Each participant reports preparation time• Reader paraphrases
– Pace should be effective
– Not too slow, not too fast
• Inspectors look, listen, and think simultaneously• Author and inspectors speak up if they disagree with
reader’s paraphrase – need to decide which is correct. If Reader, Recorder notes location & brief description of issue
• Moderator can adjust pace and “atmosphere”
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
21
End of meeting
• Recorder’s list goes to author
• After rework, at a minimum, author reviews changes with one inspector.
• Better – inspect the changed item
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
22
Benefits
• Errors found at faster rate
• Errors found early are cheaper to fix
• Cross-training
• Learn good and bad techniques by seeing them, e.g. coding techniques
Fall, 2006 SW Eng Standalone Progs, Univ of Colorado Boulder
23
A Word about Extreme Programming
• My personal view of extreme programming is that Beck & Cunningham managed to incorporate many effective software engineering tasks into short iterations with high feedback.
• One example: pair programming is ...