Final review of software testing
The third chapter Black box testing
Equivalence class division
1. Divide equivalence class : Divide a large number of input cases into several equivalent classes
If you test with an input condition in the set as test data, you can't find the error in the program , Then testing with other input conditions in the set is unlikely to find errors
Effective equivalence class vs Invalid equivalence class
An effective equivalence class can be a , It can be more than one
(1) If the input condition specifies the value range or the number of values , Then one valid equivalence class and two invalid equivalence classes can be determined .
(2) The input condition specifies the set of input values , Or it stipulates “ How to ” Conditions , Then an effective equivalence class and an invalid equivalence class can be determined .
(3) If we know for sure , Each element in the divided equivalence class is handled differently in the program , Then this equivalence class should be further divided into smaller equivalence classes .
Invalid equivalence class is at least one , There may be more than one
2. Identify test cases
Eg: Some procedure stipulates that : Enter three integers as the length of the three sides to form a triangle , When this triangle is a general triangle 、 Isosceles triangle and equilateral triangle , Calculate separately ……. Try the equivalence class division method to design test cases for the triangular part of the program .
(1) List the equivalence classes :
(2) List the test cases that cover the above equivalent classes
(3) List test cases that override invalid equivalence classes
Cause and effect diagram
1. Steps for exporting test cases : Analyze the causes and results -> Draw a cause and effect diagram ( Indicate constraints )-> Convert to decision table -> Write test cases
2. Causal relationship
Basic symbols of causality :
(1) Identity : if c1 yes 1, be e1 It's also 1; otherwise e1 by 0
(2) Not : if c1 yes 1, be e1 yes 0; otherwise e1 yes 1
(3) or : if c1 or c2 or c3 yes 1, be e1 yes 1; otherwise e1 by 0.“ or ” There can be any number of inputs
(4) And : if c1 and c2 All are 1, be e1 by 1; otherwise e1 by 0.“ And ” You can also have any number of inputs
3. Constraints on input and output conditions
Constraint symbols :
Enter the constraint of the condition :
(1)E constraint ( different ):a and b At most one of them may be 1, namely a and b You can't do it at the same time 1
(2)I constraint ( or ):a、b and c At least one of them has to be 1, namely a、b and c You can't do it at the same time 0
(3)O constraint ( only ):a and b There has to be one , And only 1 A for 1
(4)R constraint ( requirement ):a yes 1 when ,b Must be 1, That is, it is impossible a yes 1 when b yes 0
Constraints on output conditions :
M constraint ( mandatory ): If it turns out a yes 1, Then the result b Force to 0
Eg: A software specification contains such requirements : The first column of characters must be A perhaps B, The second column of characters must be a number , In this case, modify the file , But if 1 Incorrect column characters , Then give the information L; If the first 2 Column characters are not numbers , Then give the information M.
reason :
1: The first column of characters is A;
2: The first column of characters is B;
3: The characters in the second column are numbers ;
result :
21: Make changes to the document ;
22: Give information L;
23: Give information M.
Boundary value analysis
1. Selection of univariate boundary value
Five point method vs Seven point method
Five point method : Select the maximum value 、 Slightly below the maximum 、 Normal value 、 Slightly above the minimum 、 minimum value
Seven point method : Select slightly greater than the maximum value 、 Maximum 、 Slightly below the maximum 、 Normal value 、 Slightly above the minimum 、 minimum value 、 Slightly below the minimum
The weak boundary value is calculated by the five point method , The strong analysis method uses the seven point method
2. Selection of boundary value in the case of multivariable combination
about n Variable function , Make all variables except one take normal values , Apply the five point method to the remaining variable ( Or seven point method ) Minimum value 、 Slightly above the minimum 、 Normal value 、 Slightly below the maximum 、 Maximum , Repeat for each variable .
A functional test
1. Systematization of functional testing
(1) Numeric simple variable
(2) Array 、 Vector variable
(3) Multidimensional arrays
A composite component of a multidimensional array satisfies a certain canonical structure . At this time , We should take this composite component as the basic test data generation unit
2. Decomposition test of module function ( Functional testing of sub functions )
(1) Parallel subfunctions
(2) Sequential subfunction
(3) Control subfunction ( It is often used to select calculation functions or terminate loops and recursive processes )
Chapter four White box testing
Logical coverage
1. Several common logic coverage test methods
Statement override : When testing , First, several test cases are designed , Then run the program under test , Make each executable statement in the program execute at least once
Eg:
The test case :
A=2,B=0,X=3 Path is ace, Statement coverage is reached
A=2,B=1,X=3 Path is abe, Failed to reach statement override
Determine coverage : So that the true branch and false branch of each judgment in the program go through at least once , That is, the true and false values of judgment have been satisfied .
The test case :
A=2,B=0,X=3
A=1,B=1,X=1
Reach decision coverage
Conditional coverage : The possible value of each condition in each judgment shall be satisfied at least once
T1:A>1
T2: B=0
T3: A=2
T4: X>1
3 A test case puts 4 Conditional 8 Both cases are covered . However, satisfying the conditional coverage does not necessarily satisfy the decision coverage .
determine - Conditional coverage : Make all possible occurrences of each condition in the judgment occur at least once , And the judgment result of each judgment itself appears at least once
Both satisfy the decision coverage ( covers 4 Branches bcde), And satisfy the conditional coverage ( covers 8 In this case ), But one path is missing acd
Path coverage : It is required to cover all possible paths in the program
Path analysis
Testing that focuses on path analysis can be called path testing , The ideal situation to complete the path test is to do Path coverage .
1. Program path expression
(1) Arc sequence representation and node sequence representation of path
(2) Path expression
Introduce two operations : Multiply and add
ride : arc a And arc b Multiply , The product is ab, It means first along the arc a Then along the arc b The road section experienced
Add : arc a And arc b Add up , And a + b Indicates that two arcs are or , It's a parallel section
chart (a) The path expression for is :e(a + b)(c + d)f
chart (b) The path expression for is :a(b+c)d
2. Calculation of the number of paths in the program
(1) Program complexity calculation
V=E-N+2
V: Complexity
E: Number of edges
N: Number of nodes ( The judgment box is also a node )
3. Calculate the number of independent paths
Independent path : The independent path of a program is multiple executions from the program entry to the exit , At least one statement at a time ( Including computing 、 assignment 、 Input / output or judgment ) It's new
Tree representation of program path and path coding
1. route “ And / or ” Trees and their characteristics
2. Simplify the tree
AND There are... Under the node AND node (a)
OR There are... Under the node OR node (c)
AND A node has a child node that is a leaf node A,A Adjacent nodes are also leaf nodes (a)
AND A node has a child node that is a leaf node A,A Adjacent nodes are OR node (b)
AND A node has a child node that is a leaf node A,A Adjacent nodes are AND node (c)
3. Path coding
The coding of any path is all the experience of traversing each leaf node of the path from the root node and then returning to the root node OR The sequence of node out coding
Program instrumentation
Program instrumentation : It is a basic test method , It is widely used in software testing . In short, it is a method to achieve the purpose of testing by inserting operations into the program under test , By using for troubleshooting .
Assertions
Assertions : Sometimes some statements used to judge the characteristics of variables are inserted into a specific part of the program , These statements can be verified during program execution , Thus, the running characteristics of the program are confirmed , We call these inserted statements assertions
Program variation
Error driven testing : It means that the method is for a specific type of program error
Program strong variation
Strong program variation means that for every element in the test data set , To the program P And its variation factors , Therefore, it is required to test the data set D And variation factor set m(P) All need to be carefully selected . This is the key to the success of strong mutation method .
m(P) It's right P With minor changes , It's also a program , be called P Variation factor of
hypothesis P There are test data sets D, if P stay D That's right , You can find out P A set of variation factors
M={M( P)|M( P) yes P Variation factor of }.
if M Each element in D There are errors in , It is considered that the procedure is more correct .
if M Some elements in D There are no errors on , There are three possible situations :
(1) These variation factors are related to P It's functionally equivalent ;
(2) The existing test data are not enough to find P The difference between its variation factors ;
(3)P May contain errors , And some of its variation factors are correct ;
Strong variation has two weaknesses : One is to run all the variation factors , And multiply Increases the cost of testing ; The second is to determine whether the program is equivalent to its variation factor Recursive unsolvable problem
Program weak variation
The difference from strong variation is : Strong variation is the factor that produces the actual variation , Weak variation does not produce , Instead of just selecting test data , Make the program components produce different values before and after variation .