124 ◾ Simple Statistical Methods for Software Engineering
Defect Classification
During defect capturing, we can register the different attributes of defects: defect
type, defect severity, phase injected, trigger, cause, and complexity. en we can
classify defects according to each of the attributes and derive broad perspectives
about defect population. Classification is also a measurement. e defect attri-
bute analysis report is a valuable input to the development team to support defect
prevention.
Testing Size: Test Case Point
e test case point (TCP) can be used as an estimator for the entire software devel-
opment project also.
Testing size can be measured in terms of TCP. Each test case is assigned a weight
based on test case complexity and test case type. Test case complexity depends on
test data, checkpoints, and precondition. e weights are as follows:
Checkpoint 1
Precondition 1, 3, 5
Test data 1, 3, 6
e rules for assigning weights are provided by Nguyen et al. [1]. Unadjusted
text case points are computed with the above weights. Adjustment is performed
according to the test case type. In a case study, the author reports, “e num-
ber of estimated TCPs was 8783 for the total 1631 test cases of the system, an
average of 5.4 TCPs per test case.” e total TCP represents testing size and
Box 8.4 SMoke TeST DefeCT DenSiTy
Smoke tests are very useful; they shorten the testing cycle. ey ensure that
the code is working and the build is stable. ey should be capable of expos-
ing major problems. It is instructive to calculate defect density for each com-
ponent with smoke test defects. Smoke test defect density is an indicator of
risks in the components and an early predictor of problems. e real power of
metrics is realized when metrics are used to predict. e smoke test is simple,
fast, and cheap, but smoke test defect density is priceless.
Smoke tests must be identified during requirements.
For example, safety requirements can be smoke tested very early in the
project.
e smoke test sets the minimum entry criteria for starting test execution.