1 software testing lecture 11. 2 organization of this lecture: zreview of last lecture. zdata flow...
TRANSCRIPT
![Page 1: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/1.jpg)
1
Software Testing Lecture 11
![Page 2: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/2.jpg)
2
Organization of this Lecture:
Review of last lecture. Data flow testingMutation testingCause effect graphing Performance testing.Test summary reportSummary
![Page 3: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/3.jpg)
3
Review of last lecture
White box testing: requires knowledge about internals of the software.
design and code is required. also called structural testing.
![Page 4: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/4.jpg)
4
Review of last lecture
We discussed a few white-box test strategies. statement coverage branch coverage condition coverage path coverage
![Page 5: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/5.jpg)
5
Data Flow-Based Testing
Selects test paths of a program: according to the locations of
definitions and uses of different variables in a program.
![Page 6: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/6.jpg)
6
Data Flow-Based Testing
For a statement numbered S, DEF(S) = {X/statement S contains a definition of X}
USES(S)= {X/statement S contains a use of X}
Example: 1: a=b; DEF(1)={a}, USES(1)={b}. Example: 2: a=a+b; DEF(1)={a}, USES(1)={a,b}.
![Page 7: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/7.jpg)
7
Data Flow-Based Testing
A variable X is said to be live at statement S1, if X is defined at a statement S: there exists a path from S to S1 not containing any definition of X.
![Page 8: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/8.jpg)
8
DU Chain Example
1 X(){2 a=5; /* Defines variable a */3 While(C1) { 4 if (C2) 5 b=a*a; /*Uses variable a */6 a=a-1; /* Defines variable a */7 }8 print(a); } /*Uses variable a */
![Page 9: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/9.jpg)
9
Definition-use chain (DU chain)
[X,S,S1], S and S1 are statement numbers, X in DEF(S) X in USES(S1), and the definition of X in the statement
S is live at statement S1.
![Page 10: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/10.jpg)
10
Data Flow-Based Testing
One simple data flow testing strategy: every DU chain in a program be covered at least once.
![Page 11: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/11.jpg)
11
Data Flow-Based Testing
Data flow testing strategies: useful for selecting test paths of a program containing nested if and loop statements
![Page 12: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/12.jpg)
12
1 X(){2 B1; /* Defines variable a */3 While(C1) { 4 if (C2) 5 if(C4) B4; /*Uses variable a */
6 else B5;7 else if (C3) B2; 8 else B3; }9 B6 }
Data Flow-Based Testing
![Page 13: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/13.jpg)
13
Data Flow-Based Testing
[a,1,5]: a DU chain.Assume:
DEF(X) = {B1, B2, B3, B4, B5} USED(X) = {B2, B3, B4, B5, B6} There are 25 DU chains.
However only 5 paths are needed to cover these chains.
![Page 14: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/14.jpg)
14
Mutation Testing
The software is first tested: using an initial testing method based on
white-box strategies we already discussed.
After the initial testing is complete, mutation testing is taken up.
The idea behind mutation testing: make a few arbitrary small changes to a
program at a time.
![Page 15: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/15.jpg)
15
Mutation Testing
Each time the program is changed, it is called a mutated program
the change is called a mutant.
![Page 16: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/16.jpg)
16
Mutation Testing
A mutated program: tested against the full test suite of the
program.
If there exists at least one test case in the test suite for which: a mutant gives an incorrect result, then the mutant is said to be dead.
![Page 17: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/17.jpg)
17
Mutation Testing
If a mutant remains alive: even after all test cases have been
exhausted, the test suite is enhanced to kill the mutant.
The process of generation and killing of mutants: can be automated by predefining a set of
primitive changes that can be applied to the program.
![Page 18: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/18.jpg)
18
Mutation Testing
The primitive changes can be: altering an arithmetic operator, changing the value of a constant,
changing a data type, etc.
![Page 19: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/19.jpg)
19
Mutation Testing
A major disadvantage of mutation testing: computationally very expensive,
a large number of possible mutants can be generated.
![Page 20: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/20.jpg)
20
Cause and Effect Graphs
Testing would be a lot easier: if we could automatically generate test
cases from requirements.
Work done at IBM: Can requirements specifications be
systematically used to design functional test cases?
![Page 21: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/21.jpg)
21
Cause and Effect Graphs
Examine the requirements: restate them as logical relation
between inputs and outputs. The result is a Boolean graph
representing the relationships called a cause-effect graph.
![Page 22: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/22.jpg)
22
Cause and Effect Graphs
Convert the graph to a decision table: each column of the decision table corresponds to a test case for functional testing.
![Page 23: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/23.jpg)
23
Steps to create cause-effect graph
Study the functional requirements.
Mark and number all causes and effects.
Numbered causes and effects: become nodes of the graph.
![Page 24: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/24.jpg)
24
Steps to create cause-effect graph
Draw causes on the LHSDraw effects on the RHSDraw logical relationship
between causes and effects as edges in the graph.
Extra nodes can be added to simplify the graph
![Page 25: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/25.jpg)
25
Drawing Cause-Effect Graphs
A B
If A then B
AB
If (A and B)then C
C
![Page 26: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/26.jpg)
26
Drawing Cause-Effect Graphs
AB
If (A or B)then C
C
AB
If (not(A and B))then C
C
![Page 27: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/27.jpg)
27
Drawing Cause-Effect Graphs
AB
If (not (A or B))then C
C
A B
If (not A) then B
![Page 28: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/28.jpg)
28
Cause effect graph- Example
A water level monitoring system used by an agency involved in flood control.
Input: level(a,b)a is the height of water in dam in meters
b is the rainfall in the last 24 hours in cms
![Page 29: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/29.jpg)
29
Cause effect graph- Example
Processing The function calculates whether the
level is safe, too high, or too low.Output
message on screenlevel=safelevel=highinvalid syntax
![Page 30: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/30.jpg)
30
Cause effect graph- Example
We can separate the requirements into 5 clauses: first five letters of the command is
“level” command contains exactly two
parameters separated by comma and enclosed in
parentheses
![Page 31: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/31.jpg)
31
Cause effect graph- Example
Parameters A and B are real numbers: such that the water level is calculated to
be low or safe.
The parameters A and B are real numbers: such that the water level is calculated to
be high.
![Page 32: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/32.jpg)
32
Cause effect graph- Example
Command is syntactically valid
Operands are syntactically valid.
![Page 33: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/33.jpg)
33
Cause effect graph- Example
Three effects level = safe level = high invalid syntax
![Page 34: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/34.jpg)
34
Cause effect graph- Example
10 E3
11
E1
E2
1
2
3
4
5
![Page 35: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/35.jpg)
35
Cause effect graph- Decision table
Cause 1
Cause 2
Cause 3
Cause 4
Cause 5
Effect 1
Effect 2
Effect 3
Test 1 Test 2 Test 3 Test 4 Test 5I I I
I
I
I I
S I
X S
S
SS
S
P P
S
I
S
A A A
AAP
PP
A
A
A
A A
X
XX
X
XXI
![Page 36: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/36.jpg)
36
Cause effect graph- Example
Put a row in the decision table for each cause or effect: in the example, there are five rows for causes and three for effects.
![Page 37: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/37.jpg)
37
Cause effect graph- Example
The columns of the decision table correspond to test cases.
Define the columns by examining each effect: list each combination of causes that
can lead to that effect.
![Page 38: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/38.jpg)
38
Cause effect graph- Example
We can determine the number of columns of the decision table by examining the lines flowing into
the effect nodes of the graph.
![Page 39: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/39.jpg)
39
Cause effect graph- Example
Theoretically we could have generated 25=32 test cases. Using cause effect graphing
technique reduces that number to 5.
![Page 40: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/40.jpg)
40
Cause effect graph
Not practical for systems which: include timing aspects feedback from processes is used for some other processes.
![Page 41: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/41.jpg)
41
Testing
Unit testing: test the functionalities of a single module
or function.Integration testing:
test the interfaces among the modules.System testing:
test the fully integrated system against its functional and non-functional requirements.
![Page 42: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/42.jpg)
42
Integration testing
After different modules of a system have been coded and unit tested: modules are integrated in steps
according to an integration plan partially integrated system is
tested at each integration step.
![Page 43: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/43.jpg)
43
System Testing
System testing: validate a fully developed system against its requirements.
![Page 44: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/44.jpg)
44
Integration Testing
Develop the integration plan by examining the structure chart : big bang approach top-down approach bottom-up approach mixed approach
![Page 45: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/45.jpg)
45
Example Structured Design
root
Get-good-data Compute-solution Display-solution
Get-data Validate-data
Valid-numbersValid-numbers
rmsrms
![Page 46: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/46.jpg)
46
Big bang Integration Testing
Big bang approach is the simplest integration testing approach: all the modules are simply put
together and tested. this technique is used only for very
small systems.
![Page 47: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/47.jpg)
47
Big bang Integration Testing
Main problems with this approach: if an error is found:
it is very difficult to localize the errorthe error may potentially belong to any
of the modules being integrated. debugging errors found during big
bang integration testing are very expensive to fix.
![Page 48: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/48.jpg)
48
Bottom-up Integration Testing
Integrate and test the bottom level modules first.
A disadvantage of bottom-up testing: when the system is made up of a
large number of small subsystems. This extreme case corresponds to
the big bang approach.
![Page 49: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/49.jpg)
49
Top-down integration testing
Top-down integration testing starts with the main routine: and one or two subordinate routines in the
system.
After the top-level 'skeleton’ has been tested: immediate subordinate modules of the
'skeleton’ are combined with it and tested.
![Page 50: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/50.jpg)
50
Mixed integration testing
Mixed (or sandwiched) integration testing: uses both top-down and bottom-up testing approaches.
Most common approach
![Page 51: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/51.jpg)
51
Integration Testing
In top-down approach: testing waits till all top-level
modules are coded and unit tested. In bottom-up approach:
testing can start only after bottom level modules are ready.
![Page 52: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/52.jpg)
52
Phased versus Incremental Integration Testing
Integration can be incremental or phased.
In incremental integration testing, only one new module is added to the partial system each time.
![Page 53: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/53.jpg)
53
Phased versus Incremental Integration Testing
In phased integration, a group of related modules are added to the partially integrated system each time.
Big-bang testing: a degenerate case of the phased integration testing.
![Page 54: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/54.jpg)
54
Phased versus Incremental Integration Testing
Phased integration requires less number of integration steps: compared to the incremental
integration approach. However, when failures are
detected, it is easier to debug if using
incremental testing since errors are very likely to be in the
newly integrated module.
![Page 55: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/55.jpg)
55
System Testing
System tests are designed to validate a fully developed system: to assure that it meets its requirements.
![Page 56: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/56.jpg)
56
System Testing
There are essentially three main kinds of system testing: Alpha Testing Beta Testing Acceptance Testing
![Page 57: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/57.jpg)
57
Alpha testing
System testing is carried out by the test team within the developing organization.
![Page 58: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/58.jpg)
58
Beta Testing
Beta testing is the system testing: performed by a select group of friendly customers.
![Page 59: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/59.jpg)
59
Acceptance Testing
Acceptance testing is the system testing performed by the customer to determine whether he should accept the delivery of the system.
![Page 60: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/60.jpg)
60
System Testing
During system testing, in addition to functional tests: performance tests are performed.
![Page 61: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/61.jpg)
61
Performance Testing
Addresses non-functional requirements. May sometimes involve testing
hardware and software together. There are several categories of
performance testing.
![Page 62: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/62.jpg)
62
Stress testing
Evaluates system performance when stressed for short periods of time.
Stress testing also known as endurance testing.
![Page 63: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/63.jpg)
63
Stress testing
Stress tests are black box tests: designed to impose a range of abnormal and even illegal input conditions
so as to stress the capabilities of the software.
![Page 64: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/64.jpg)
64
Stress Testing
If the requirements is to handle a specified number of users, or devices: stress testing evaluates system performance when all users or devices are busy simultaneously.
![Page 65: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/65.jpg)
65
Stress Testing
If an operating system is supposed to support 15 multiprogrammed jobs, the system is stressed by attempting to
run 15 or more jobs simultaneously.
A real-time system might be tested to determine the effect of simultaneous
arrival of several high-priority interrupts.
![Page 66: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/66.jpg)
66
Stress Testing
Stress testing usually involves an element of time or size, such as the number of records
transferred per unit time, the maximum number of users active at
any time, input data size, etc.
Therefore stress testing may not be applicable to many types of systems.
![Page 67: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/67.jpg)
67
Volume Testing
Addresses handling large amounts of data in the system: whether data structures (e.g. queues,
stacks, arrays, etc.) are large enough to handle all possible situations
Fields, records, and files are stressed to check if their size can accommodate all possible data volumes.
![Page 68: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/68.jpg)
68
Configuration TestingAnalyze system behavior:
in various hardware and software configurations specified in the requirements
sometimes systems are built in various configurations for different users
for instance, a minimal system may serve a single user, other configurations for additional users.
![Page 69: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/69.jpg)
69
Compatibility Testing
These tests are needed when the system interfaces with other systems: check whether the interface functions as required.
![Page 70: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/70.jpg)
70
Compatibility testingExample
If a system is to communicate with a large database system to retrieve information: a compatibility test examines speed and accuracy of retrieval.
![Page 71: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/71.jpg)
71
Recovery Testing
These tests check response to: presence of faults or to the loss of data, power, devices, or services
subject system to loss of resourcescheck if the system recovers properly.
![Page 72: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/72.jpg)
72
Maintenance Testing
Diagnostic tools and procedures: help find source of problems. It may be required to supply
memory mapsdiagnostic programstraces of transactions, circuit diagrams, etc.
![Page 73: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/73.jpg)
73
Maintenance Testing
Verify that: all required artifacts for maintenance exist
they function properly
![Page 74: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/74.jpg)
74
Documentation tests
Check that required documents exist and are consistent: user guides, maintenance guides, technical documents
![Page 75: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/75.jpg)
75
Documentation tests
Sometimes requirements specify: format and audience of specific documents
documents are evaluated for compliance
![Page 76: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/76.jpg)
76
Usability tests
All aspects of user interfaces are tested: Display screens messages report formats navigation and selection problems
![Page 77: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/77.jpg)
77
Environmental test
These tests check the system’s ability to perform at the installation site.
Requirements might include tolerance for heat humidity chemical presence portability electrical or magnetic fields disruption of power, etc.
![Page 78: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/78.jpg)
78
Test Summary Report
Generated towards the end of testing phase.
Covers each subsystem: a summary of tests which have
been applied to the subsystem.
![Page 79: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/79.jpg)
79
Test Summary Report
Specifies: how many tests have been applied to a
subsystem, how many tests have been successful, how many have been unsuccessful, and
the degree to which they have been unsuccessful,e.g. whether a test was an outright failure or whether some expected results of the test
were actually observed.
![Page 80: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/80.jpg)
80
Regression Testing
Does not belong to either unit test, integration test, or system test. In stead, it is a separate dimension to these three forms of testing.
![Page 81: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/81.jpg)
81
Regression testing
Regression testing is the running of test suite: after each change to the system or
after each bug fix ensures that no new bug has been
introduced due to the change or the bug fix.
![Page 82: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/82.jpg)
82
Regression testing
Regression tests assure: the new system’s performance is at least as good as the old system
always used during phased system development.
![Page 83: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/83.jpg)
83
Summary
We discussed two additional white box testing methodologies: data flow testing mutation testing
![Page 84: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/84.jpg)
84
Summary
Data flow testing: derive test cases based on definition and
use of dataMutation testing:
make arbitrary small changes see if the existing test suite detect these if not, augment test suite
![Page 85: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/85.jpg)
85
Summary
Cause-effect graphing: can be used to automatically derive
test cases from the SRS document. Decision table derived from cause-
effect graph each column of the decision table
forms a test case
![Page 86: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/86.jpg)
86
Summary
Integration testing: Develop integration plan by examining the structure chart:big bang approachtop-down approachbottom-up approachmixed approach
![Page 87: 1 Software Testing Lecture 11. 2 Organization of this Lecture: zReview of last lecture. zData flow testing zMutation testing zCause effect graphing zPerformance](https://reader036.vdocuments.net/reader036/viewer/2022070401/56649f1f5503460f94c37dc3/html5/thumbnails/87.jpg)
87
Summary: System testing
Functional testPerformance test
stressvolumeconfigurationcompatibilitymaintenance