Domain Range Ratio (DRR)

From HandWiki
Revision as of 21:04, 6 March 2023 by JOpenQuest (talk | contribs) (update)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The Domain Range Ratio (DRR) of a logical function (or software component) is the ratio of the cardinality of its set of all possible inputs (domain) to the cardinality of its set of all possible outputs (range).[1] Most developers try to reduce the DRR of their functions to as small as possible.

Example

To understand this metric, consider the function isEven():

boolean isEven(short x) {
    if (x == 0) {
        throw new Exception("Give me a proper number");
    }
    return x % 2 == 0;
}

This function checks if a short number is even or not, with an exception at 0. The DRR of isEven() is 64k possible inputs to 2 outputs (boolean, exception). A high DRR, like this one, indicates potential information loss and a low probability of finding defects just by selecting a handful of samples.

References

  1. Voas, J.M. and Miller, K.W., “Semantic metrics for software testability”, The Journal of Systems and Software, 20(3), 207-216 (March 1993).