150 likes | 616 Views
What Is Test Coverage?. Finding areas of a program not exercised by a set of test casesCreating additional test cases to increase coverageDetermining a quantitative measure of code coverage, which is an indirect measure of qualityIdentifying redundant test cases that do not increase coverage. Where Test Coverage Fits Into GUMP .
E N D
1. Test Coverage Tools Elonna Thompson
Sources
ATAC Tutorial
Code Coverage Analysis. http://www.bullseye.com/coverage.html
Gump++ Unit Test Standard. Presentation. Dr. Norman Wilde. Fall 2002, University of West Florida.
Software Testing Resources. http://www.aptest.com/resources.html#app
3. Where Test Coverage Fits Into GUMP++ It is used as part of the Unit Test Standard for White Box Testing
To get as close as possible to 100% block and decision coverage
Though it is not required to save unit tests, it is encouraged and ATAC can help choose the best tests i.e. most coverage for in least amount of tests
4. Test Coverage Analysis Tools ATAC is used for programs written in C/C++
Measures how thoroughly a program is tested by a set of tests using data flow coverage techniques
Identifies areas that are not well tested
Identifies overlap among tests (redundancy)
Finds minimal covering test sets
5. Testable Attributes Blocks of consecutive statements
Branch decisions
Various combinations of assignments and uses of variables
6. Adequate Tests Tests are considered adequate with respect to a given coverage criterion if all of the testable attributes identified by this criterion are exercised at least once by the set of tests
It is difficult to have completely adequate coverage so ATAC provides a coverage measure (percentage of testable attributes that are exercised by the test set)
Function Entry
7. ATAC’s Coverage Measures Function Entry
Block
Decision
C-Use
P-Use
All Use
8. Function Entry Coverage Counts the the functions defined in a program that are called at least once
Includes only functions coded in the source files compiled with ATAC
Does not need to be called by a function compiled with ATAC
9. Block Coverage Counts the branch free executable code fragments that are exercised at least once
A block may be more than one C statement if there is no branching between statements
Stronger than Function Entry Coverage, if all blocks are covered, all functions must have been entered
10. Decision Coverage Counts the number of branches that have been followed at least once
If a decision is not covered during testing, an error in the decision predicate may not be revealed
Decision Coverage is stronger than block coverage because it implies block coverage except for functions with no branches
11. C-use Coverage Computational variable use coverage
Counts the number of combinations of an assignment to a variable and a use of the variable in a computation that is not part of a conditional expression
Not comparable to other measures
12. P-use Coverage Predicate variable use coverage
Counts the number of combinations of an assignment to a variable, use of a variable in a conditional expression, and all branches based on the value of the conditional expression
Adequate P-use coverage implies adequate C-use coverage
13. All-use Coverage The sum of p-use and c-use coverage measures
14. Problem With ATAC? It needs to be replaced because it is no longer available for the current gcc
Also, would be nice to find a tool to analyze coverage of Java code.
15. Alternative Analyzers