200 likes | 220 Views
Software Testing. Functional, MCC, Dataflow Testing, Cause-Effect Graphing. Testing from Fall 04. Test phases Unit, Integration, System, Acceptance, Regression Structural testing C0, C1, Boundary Random testing Operational profile Test plans. Functional Testing. Black Box testing
E N D
Software Testing Functional, MCC, Dataflow Testing, Cause-Effect Graphing
Testing from Fall 04 • Test phases • Unit, Integration, System, Acceptance, Regression • Structural testing • C0, C1, Boundary • Random testing • Operational profile • Test plans
Functional Testing • Black Box testing • Deriving test cases from the requirements
Example Problem - Pay Program • reads in hours and wages • hours must be > 0 and < 80 • wages must be > 0 and < 100 • time and a half is paid for hours > 40 • output messages are • "wages in error" • "hours in error" • "no error"
pay example But plotting the domain is not always practical
Non-graphical functional testing • Build a matrix • every row is a condition from the problem • construct all the truth-table possibilities • indicate the output for every column • every column becomes a subdomain • create a test for every column • Identify important boundaries • create 2-on, 1-off test for each important boundary
TTYP Task • Build a test matrix for the triangle problem • Given 3 inputs, interpret them as the lengths of the sides of a triangle • Output the type of triangle: • Scalene, isosceles, equilateral, not a triangle, bad inputs
Multiple Condition Coverage • For each decision • test case for true and test case for false • same as C1 • For each complex (involves logical operators) decision • test case for each combination of T/F for each relational operator • A || B requires TT, TF, FT, FF • Lazy evaluation => TX, FT, FF
TTYP Task – MCC • Generate the test sets to achieve multiple condition coverage for the “if a>=b+c || b>=a+c || c>=a+b” decision in the triangle problem
Data flow coverage • Def x is a node where x is defined (given a value) • Use x is a node where the value of x is used in an expression or a decision • C use is in a computation • P use is in a decision (predicate) • A def-free path is a path from a definition to a use that does not include another definition of that variable.
dcu - from every def to a c-use • c-use (computation) • if a variable is defined in node A and there are computational uses in node B and D, the dcu coverages requires an def-free path segment of either ABC or ACD
dpu - from every def to a p-use • p-use (predicate) • if a variable is defined in node A and it is used in a decision in C, the dpu coverage requires two def-free paths, one with segment of A...CD and one with A...CE
du - from every def to every use • if a variable is defined in node A and there are computational uses in node B and D, the du coverage requires a def-free path from node A to node B and a def-free path from node A to node D
TTYP task • Generate test case sets for triangle problem • dpu • dcu • du
Cause-Effect Graphing • Identify the basic conditions: b1, b2 (aka causes, atomic conditions) • Identify the effects as boolean expressions of the conditions • Identify combinations of the boolean expressions
Classic Example - boiler • Boiler should shut down if • Water level is below 20,000 lb • Water level is above 120,000 lb • Degraded mode and steam meter fails (Degraded mode if water pump has failed or pump monitor has failed)
Conditions for boiler • B1 – water below 20,000 lbs • B2 – water above 120,000 lbs • B3 – water pump has failed • B4 – pump monitor has failed • B5 – steam meter has failed • E1 – shut the boiler • E1 = (B1 or B2 or (B5 (B3 or B4))
TTYP • Identify the basic conditions for the triangle problem • Identify the effects (e.g. scalene) and their boolean conditions
Thursday, Apr 6 • OO testing • Pressman 372-375,410-423 • SOS ch 13 • PreLecture quiz • functional, mcc, data-flow,