testing & continuous integration - computer science | …kena/classes/5828/s10/le… · ·...
TRANSCRIPT
![Page 1: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/1.jpg)
© University of Colorado, 2010
Testing &Continuous IntegrationKenneth M. AndersonUniversity of Colorado, BoulderCSCI 5828 — Lecture 20 — 03/19/2010
1
![Page 2: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/2.jpg)
Goals
Review material from Chapter 7 of Pilone & Miles
Testing of Systems
unit tests, integration tests, system tests, acceptance tests
Testing of Code
Black Box
Gray Box
White Box
Code Coverage
Continuous Integration
2
![Page 3: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/3.jpg)
Testing
Testing is a critical element of a larger software engineering concern / process known by many names
software quality control / software quality assurance
validation and verification
validation: are we building the right product?
verification: does “foo” meet its specification?
where “foo” can be code, a model, a design diagram, a requirement, …
At each stage, we need to verify that the thing we produce accurately represents its specification
3
![Page 4: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/4.jpg)
Terminology
An error is a mistake made by an engineer
A fault is a manifestation of that error in the code
A failure is an incorrect output/behavior that is caused by executing a fault
Testing attempts to surface failures in our software systems
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?
4
![Page 5: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/5.jpg)
No!
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; this is particularly insidious
However, if we do a good job in creating a test set thatcovers all functional capabilities of a systemcovers all code using a metric such as “branch coverage”
Then, having all tests pass increases our confidence that our system has high quality and can be deployed
5
![Page 6: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/6.jpg)
6Looking for Faults
All possible states/behaviors of a system
![Page 7: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/7.jpg)
7Looking for Faults
Tests are a way of sampling the behaviors of a software system, looking for failures
As you can see, its not very
comprehensive
![Page 8: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/8.jpg)
8One way forward? Fold
The testing literature advocates folding the space into equivalent behaviors and then sampling each partition
![Page 9: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/9.jpg)
What does that mean? 9
Consider a simple example like the greatest common denominator function
int gcd(int x, int y)At first glance, this function has an infinite number of test cases
But lets fold the spacex=6 y=9, returns 3, tests common case
x=2 y=4, returns 2, tests when x is the GCD
x=3 y=5, returns 1, tests two primes
x=9 y=0, returns ?, tests zero
x=-3 y=9, returns ?, tests negative
![Page 10: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/10.jpg)
Completeness
From this discussion, it should be clear that “completely” testing a system is impossible
So, we settle for heuristics
attempt to fold the input space into different functional categories
then create tests that sample the behavior/output for each functional partition
As we will see, we also look at our coverage of the underlying code; are we hitting all statements, all branches, all loops?
10
![Page 11: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/11.jpg)
Continuous Testing
Testing is a continuous process that should be performed at every stage of a software development process
Recall our requirements gathering process that continually queried the user, “Did we get this right?”
Recall our emphasis on iteration throughout the entire development process
at the end of each iteration, we check our results to see if what we built is meeting our requirements
11
![Page 12: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/12.jpg)
Testing the System (I)
Unit Tests
Tests that cover low-level aspects of a system
For each module, does each operation perform as expected
Integration Tests
Tests that check that modules work together in combination
Most projects on schedule until they hit this point
All sorts of hidden assumptions are surfaced when code written by different developers are used in tandem
Lack of integration testing has led to spectacular failures
12
![Page 13: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/13.jpg)
Testing the System (II)
System Tests
Tests performed by the developer to ensure that all major functionality has been implemented
Have all user stories been implemented and function correctly?
Acceptance Tests
Tests performed by the user to check that the delivered system meets their needs
In large, custom projects, developers will be on-site to install system and then respond to problems as they arise
13
![Page 14: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/14.jpg)
Multi-Level Testing
Once we have code, we can perform three types of tests
Black Box Testing
Does the system behave as predicted by its specification
Grey Box Testing
Having a bit of insight into the architecture of the system, does it behave as predicted by its specification
White Box Testing
Since, we have access to most of the code, lets make sure we are covering all aspects of the code: statements, branches, …
14
![Page 15: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/15.jpg)
15
Black Box Testing
SystemInput Actual Output
Spec Expected Output
A black box test passes input to a system, records the actual output and compares it to the expected output
== ??
![Page 16: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/16.jpg)
16Results
if actual output == expected output
TEST PASSED
else
TEST FAILED
Process
Write at least one test case per functional capability
Iterate on code until all tests pass
Need to automate this process as much as possible
![Page 17: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/17.jpg)
Black Box Categories
Functionality
User input validation (based off specification)
Output results
State transitions
are there clear states in the system in which the system is supposed to behave differently based on the state?
Boundary cases and off-by-one errors
17
![Page 18: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/18.jpg)
Grey Box Testing
Use knowledge of system’s architecture to create a more complete set of black box tests
Verifying auditing and logging information
for each function is the system really updating all internal state correctly
Data destined for other systems
System-added information (timestamps, checksums, etc.)
“Looking for Scraps”
Is the system correctly cleaning up after itself
temporary files, memory leaks, data duplication/deletion
18
![Page 19: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/19.jpg)
White Box Testing
Writing test cases with complete knowledge of code
Format is the same: input, expected output, actual output
But, now we are looking at
code coverage (more on this in a minute)
proper error handling
working as documented (is method “foo” thread safe?)
proper handling of resources
how does the software behave when resources become constrained?
19
![Page 20: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/20.jpg)
Code Coverage (I)
A criteria for knowing white box testing is “complete”
statement coverage
write tests until all statements have been executed
branch coverage (aka edge coverage)
write tests until each edge in a program’s control flow graph has been executed at least once (covers true/false conditions)
condition coverage
like branch coverage but with more attention paid to the conditionals (if compound conditional ensure that all combinations have been covered)
20
![Page 21: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/21.jpg)
Code Coverage (II)
A criteria for knowing white box testing is “complete”
path coverage
write tests until all paths in a program’s control flow graph have been executed multiple times as dictated by heuristics, e.g.,
for each loop, write a test case that executes the loop
zero times (skips the loop)
exactly one time
more than once (exact number depends on context)
21
![Page 22: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/22.jpg)
A Sample Ada Program to Test123456789
101112131415
function P return INTEGER isbegin
X, Y: INTEGER;READ(X); READ(Y);while (X > 10) loop
X := X – 10;exit when X = 10;
end loop;if (Y < 20 and then X mod 2 = 0) then
Y := Y + 20;else
Y := Y – 20;end if;return 2 ∗ X + Y;
end P;
![Page 23: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/23.jpg)
P’s Control Flow Graph (CFG)
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
![Page 24: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/24.jpg)
White-‐box Tes?ng CriteriaStatement Coverage
Select a test set T such that, by executing P for each d in T, each elementary statement of P is executed at least once
![Page 25: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/25.jpg)
All-‐Statements Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
![Page 26: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/26.jpg)
All-‐Statements Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-statements-adequate test set:
![Page 27: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/27.jpg)
All-‐Statements Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-statements-adequate test set:(X = 20, Y = 10)
![Page 28: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/28.jpg)
All-‐Statements Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-statements-adequate test set:(X = 20, Y = 10)(X = 20, Y = 30)
![Page 29: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/29.jpg)
White-‐box Tes?ng CriteriaEdge Coverage
Select a test set T such that, by executing P for each d in T, each edge of P’s control flow graph is traversed at least once
![Page 30: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/30.jpg)
All-‐Edges Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
![Page 31: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/31.jpg)
All-‐Edges Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-edges-adequate test set:
![Page 32: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/32.jpg)
All-‐Edges Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-edges-adequate test set:(X = 20, Y = 10)
![Page 33: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/33.jpg)
All-‐Edges Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-edges-adequate test set:(X = 20, Y = 10)(X =15, Y = 30)
![Page 34: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/34.jpg)
White-‐box Tes?ng CriteriaCondition Coverage
Select a test set T such that, by executing P for each d in T, each edge of P’s control flow graph is traversed at least once and all possible values of the constituents of compound conditions are exercised at least once
![Page 35: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/35.jpg)
All-‐Condi?ons Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
![Page 36: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/36.jpg)
All-‐Condi?ons Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-conditions-adequate test set:
![Page 37: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/37.jpg)
All-‐Condi?ons Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-conditions-adequate test set:(X = 20, Y = 10)
![Page 38: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/38.jpg)
All-‐Condi?ons Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-conditions-adequate test set:(X = 20, Y = 10)(X = 5, Y = 30)
![Page 39: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/39.jpg)
All-‐Condi?ons Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-conditions-adequate test set:(X = 20, Y = 10)(X = 5, Y = 30)(X = 21, Y = 10)
![Page 40: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/40.jpg)
White-‐box Tes?ng CriteriaPath Coverage
Select a test set T such that, by executing P for each d in T, all paths leading from the initial to the final node of P’s control flow graph are traversed at least once
![Page 41: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/41.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
![Page 42: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/42.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:
![Page 43: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/43.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)
![Page 44: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/44.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)
![Page 45: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/45.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)
![Page 46: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/46.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)
![Page 47: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/47.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)
![Page 48: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/48.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)
![Page 49: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/49.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)
![Page 50: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/50.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 51: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/51.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 52: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/52.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 53: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/53.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 54: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/54.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 55: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/55.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 56: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/56.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 57: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/57.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 58: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/58.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 59: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/59.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 60: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/60.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 61: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/61.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)
![Page 62: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/62.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 63: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/63.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 64: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/64.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 65: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/65.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 66: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/66.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 67: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/67.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 68: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/68.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 69: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/69.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 70: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/70.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 71: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/71.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 72: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/72.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 73: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/73.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 74: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/74.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)
![Page 75: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/75.jpg)
All-‐Paths Coverage of P
2,3,4 5
6
9ʹ′
10
12
14
T T
F
F9
T
F
7
TF
Example all-paths-adequate test set:(X = 5, Y = 10)(X = 15, Y = 10)(X = 25, Y = 10)(X = 35, Y = 10)…
![Page 76: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/76.jpg)
Code Coverage Tools
Doing this by hand would be hard!
Fortunately, there are tools that can track code coverage metrics for you
typically just statement and branch coverage
The book covers one tool that is part of a larger system called Cruise Control
These systems typically generate reports that show the percentage of the metric being achieved
they will also typically provide a view of the source code annotated to show which statements and conditions were “hit” by your test suite
76
![Page 77: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/77.jpg)
Testing Automation (I)
It is important that your tests be automated
More likely to be run
More likely to catch problems as changes are made
As the number of tests grow, it can take a long time to run the tests, so it is important that the running time of each individual test is as small as possible
If that’s not possible to achieve then segregate long running tests from short running tests
execute the latter multiple times per day, execute the former at least once per day (they still need to be run!!)
77
![Page 78: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/78.jpg)
Testing Automation (II)
It is important that running tests be easy
testing frameworks allow tests to be run with a single command
often as part of the build management process (as shown in last lecture)
The book presents details on JUnit (but there are lots of testing frameworks out there)
78
![Page 79: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/79.jpg)
Continuous Integration
Since test automation is so critical, systems known as continuous integration frameworks have emerged
The book covers one called CruiseControl
<http://cruisecontrol.sourceforge.net/>
Continuous Integration (CI) systems wrap version control, compilation, and testing into a single repeatable process
You create/debug code as usual;
You then check your code and the CI system builds your code, tests it, and reports back to you
79
![Page 80: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/80.jpg)
Wrapping Up
Testing is one element of software quality assurance
Verification and Validation can occur in any phase
Testing of Code involves
Black Box, Grey Box, and White Box tests
All require: input, expected output (via spec), actual output
White box additionally looks for code coverage
Testing of systems involves
unit tests, integration tests, system tests and acceptance tests
Testing should be automated and various tools exists to integrate testing into the version control and build management processes of a development organization
80
![Page 81: Testing & Continuous Integration - Computer Science | …kena/classes/5828/s10/le… · · 2010-03-18Goals Review material from Chapter 7 of Pilone & Miles Testing of Systems unit](https://reader031.vdocument.in/reader031/viewer/2022022505/5abd14f87f8b9a3a428b5154/html5/thumbnails/81.jpg)
Coming Up
Lecture 21: Deadlock
Read Chapter 6 of the Concurrency textbook
Lecture 22: Test-Driven Design / Development
Read Chapter 7 of Head First Software Development
81