130 likes | 261 Views
Evaluating Testing Methods by Delivered Reliability. Frankl, Hamlet, Littlewood, Strigini IEEE TOSE Aug98. 841fall06 exam1 question 1. (25 pts) Calculations – given the following table, estimate the E(Q) using the MFR est and the subdomain formula.
E N D
841f07frankl12oct2 Evaluating Testing Methods by Delivered Reliability Frankl, Hamlet, Littlewood, Strigini IEEE TOSE Aug98
841fall06 exam1 question 1 • (25 pts) Calculations – given the following table, estimate the E(Q) using • the MFR est and the subdomain formula. • Assume that subdomains a and c are twice as likely as the other • subdomains. • You can simplify the table by projections” on each axis. • Show your work. State and justify any assumptions that you must make.
841fall06 exam1 question 2a 2. (30 pts) Modeling Assume that boundary testing randomly picks 2 test cases from each subset that makes the two sides in a relational expression equal (e.g. if the decision was “x < y”, the set would be those points where the value of x was equal to the value of y.} Boundary testing for the whole program will do this for each relational expression. Use Frankl’s formulas to estimate the E(Q) for this approach.
841f06 exam1 question 2b Consider the following program. Assume the operation profile is uniform and consists of all pairs of integers between 1 and 5. E.g. (1,1) , (1,2), etc cin >> a >> b; out = “X”; if (a > b + 1) out = “Y”; if (a < 2*b ) out = “Z”; cout<< out; Seed two faults: Change “b+1” to “b+2” Change “2*b” to “b”
841f06 exam1 question 3 • 3. (30 pts) Analysis • Consider the following code. Find the largest set of mutually exclusive • subdomains that might be useful for thorough testing of the code. • Justify why they would be useful. Express the sets with relational • conditions on a and b and draw a 2D map of the subdomains. • Consider these three faults: 1) change “b+3” to “b+2” ; • 2) change “a<b” to “a>b” ; 3) change “a+2” to “a+3” • Can these subdomains reveal these faults? • cin >> a >> b; • out = “X”; • if (a > b + 3) out = “Y”; • a = a + 2; • if (a < b ) out = “Z”; • cout<< out;
841f06 exam1 question 4 4. (15 pts) Discussion Suppose that your testing effort is restricted to n tests and you have identified 2*n important subdomains in the product. How do you decide which subdomains to test? Can you use seeded faults to help select? What faults would you seed?
841f07frankl12oct2 Empirical Tool – version 3
841f07frankl12oct2 Triangle Example cin >> a >> b >> c ; type = “scalene”; if (a == b || a == c || b == c) type= “isosceles”; if (a == b && a == c) type = “equilateral”; if (a >= b+c || b >= a+c || c >= a+b) type=“not a triangle”; if (a <= 0 || b <= 0 || c <= 0) type=“bad input”; cout<< type;
TriangleDomain all combinations of integers 0 – 5Faults flt 1 - line 3: change a==b to a==a flt 2 – line 4: change “equilateral” to “isosceles” flt 3 – line 5: change a >= to a> flt 4 – line 5: change a+b to b+b
841f07frankl12oct2 What subdomains? Boundary testing? Types of testing
841f07frankl12oct2 For Tuesday, Oct 2 Failure sets for triangle and faults 1-4
841f07frankl12oct2 Empirical Tool For Tues, Oct 9 Use your empirical tool to calculate E(theta) for subdomain testing of the triangle problem with the given faults shown in lecture 11 and 12. Compare with Frankl’s formulas. Make the comparision as fair as possible. Choose the number of tests and subdomains carefully Turn in hardcopy at start of class, Tues 10/9