Documente Academic
Documente Profesional
Documente Cultură
Record, organize and guide testing activities Schedule testing activities according to the test strategy and project deadlines Describe the way to show confidence to Customers Provide a basis for re-testing during system maintenance Provide a basis for evaluating and improving testing process
test items, features to be tested, testing tasks, who will do each task, and any risks requiring contingency planning.
IEEE Std. 829-1998 Test Plan Outline 10. Test deliverables (e.g. test design specifications, test cases specifications, test procedure
specifications, test logs, test incident reports, test summary report) 11. Testing tasks 12. Environmental needs 13. Responsibilities 14. Staffing and training needs 15. Schedule 16. Risks and contingencies 17. Approvals 18. References
Identifier and description of test cases associated with the design Pass/fail criteria for each feature
Items and features to be exercised by the test case. input required to execute the test case, data bases, files, etc.
3. Input specifications
Log how to log results Set Up how to prepare for testing Start how to begin procedure execution Proceed procedure actions Measure how test measurements will be made Shut Down how to suspend testing procedure Restart how to resume testing procedure Stop how to bring execution to an orderly halt Wrap Up how to restore the environment Contingencies how to deal with anomalous events during execution
Test Log
Execution Description Procedure Results - observable results (e.g. messages), outputs Environmental Information specific to the entry Anomalous Events (if any) Incident Report Identifiers (identifier of test incident reports if any generated)
IEEE Std. 829-1998 Test Plan Test Incident Report Outline 1. Test incident report identifier
2. Summary - items involved, references to linked documents (e.g. procedure, test case, log) 3. Incident description
Inputs Expected results Actual results Anomalies Date and time Procedure step Environment Attempts to repeat Testers Observers
S: Show Stopper testing totally blocked, bypass needed H: High - major portion of test is partially blocked, test can continue with severe restrictions, bypass needed M: Medium - test can continue but with minor restrictions, no bypass needed L: Low testing not affected, problem is insignificant
How to know when testing can stop? How to assess testing success at removing defects? Examples of approaches
Independent test groups Fault seeding technique Mutant-based testing Defect plotting
Evaluate how many defects are in a software product and the efficiency of defect removal Uses independent groups testing same program Example: 2 groups
x = number of faults detected by Test Group 1 y = number of faults detected by Test Group 2 q = number of common faults detected by both Test Groups n = total number of faults in the program
To estimate the number of faults in a program Before testing, seed program with a number of typical faults After a period of testing, compare the number of seeded and nonseeded faults detected
N = number of nonseeded (unintentional) faults S = number of seeded faults placed in the program n = actual number of faults detected during testing s = number of seeded faults detected during testing
N = S*(n/s)
Mutant-based testing
To assess the effectiveness of a test suite for defects detection Mutant version of a program obtained by replicating the original program except for one small change (a mutation)
corresponds to a typical error Value change constants, subscripts, parameters by adding/subtracting one, etc. Decision modify the sense of decisions (e.g. < to >=) Statement delete/exchange statements
Examples of mutations
Mutant killed by a test suite if it is revealed (fail) Kill ratio of a test suite = # mutant killed/# of mutants
Examples of mutants
Mutant 1 2 3 4 Statement changed to Result input[j] < input[result] Killed input[j] == input[result] Killed input[j] <= input[result] Killed input[j] >= input[result] Live
int max(int a, int b) { int max; if (a > b) max = a; else max = } Changing a > b by a >= b produces an equivalent program
Defect Plotting
To help decide when to stop testing Plot number of defects found per period of testing Graph supposed to