Jump to content
Wikipedia The Free Encyclopedia

Domain-to-range ratio

From Wikipedia, the free encyclopedia
This article's tone or style may not reflect the encyclopedic tone used on Wikipedia. See Wikipedia's guide to writing better articles for suggestions. (May 2016) (Learn how and when to remove this message)

The domain-to-range ratio (DRR) is a ratio which describes how the number of outputs corresponds to the number of inputs of a given logical function or software component. The domain-to-range ratio is a mathematical ratio of cardinality between the set of the function's possible inputs (the domain) and the set of possible outputs (the range).[1] [2] For a function defined on a domain, D {\displaystyle D} {\displaystyle D}, and a range, R {\displaystyle R} {\displaystyle R}, the domain-to-range ratio is given as: D R R = | D | | R | {\displaystyle DRR={\frac {|D|}{|R|}}} {\displaystyle DRR={\frac {|D|}{|R|}}}It can be used to measure the risk of missing potential errors when testing the range of outputs alone.[3]

Example

[edit ]

Consider the function isEven() below, which checks the parity of an unsigned short number x {\displaystyle x} {\displaystyle x}, any value between 0 {\displaystyle 0} {\displaystyle 0} and 65 , 536 {\displaystyle 65,536} {\displaystyle 65,536}, and yields a boolean value which corresponds to whether x {\displaystyle x} {\displaystyle x} is even or odd. This solution takes advantage of the fact that integer division in programming typically rounds towards zero.

boolisEven(unsignedshortx){
return(x/2)==((x+3)/2-1);
}

Because x {\displaystyle x} {\displaystyle x} can be any value from 0 {\displaystyle 0} {\displaystyle 0} to 65 , 535 {\displaystyle 65,535} {\displaystyle 65,535}, the function's domain has a cardinality of 65 , 536 {\displaystyle 65,536} {\displaystyle 65,536}. The function yields 0 {\displaystyle 0} {\displaystyle 0}, if x {\displaystyle x} {\displaystyle x} is even, or 1 {\displaystyle 1} {\displaystyle 1}, if x {\displaystyle x} {\displaystyle x} is odd. This is expressed as the range { 0 ; 1 } {\displaystyle \{0;1\}} {\displaystyle \{0;1\}}, which has a cardinality of 2 {\displaystyle 2} {\displaystyle 2}. Therefore, the domain-to-range ratio of isEven() is given by: D R R = 65 , 536 2 = 32 , 768 {\displaystyle DRR={65,536 \over 2}=32,768} {\displaystyle DRR={65,536 \over 2}=32,768}Here, the domain-to-range ratio indicates that this function would require a comparatively large number of tests to find errors. If a test program attempts every possible value of x {\displaystyle x} {\displaystyle x} in order from 0 {\displaystyle 0} {\displaystyle 0} to 65 , 535 {\displaystyle 65,535} {\displaystyle 65,535}, the program would have to perform 32 , 768 {\displaystyle 32,768} {\displaystyle 32,768} tests for each of the two possible outputs in order to find errors or edge cases. Because errors in functions with a high domain-to-range ratio are difficult to identify via manual testing or methods which reduce the number of tested inputs, such as orthogonal array testing or all-pairs testing, more computationally complex techniques may be used, such as fuzzing or static program analysis, to find errors.

See also

[edit ]

References

[edit ]
  1. ^ Voas, J.M.; Miller, K.W. (March 1993). "Semantic metrics for software testability". Journal of Systems and Software. 20 (3): 207–216. doi:10.1016/0164-1212(93)90064-5.
  2. ^ Woodward, Martin R.; Al-Khanjari, Zuhoor A. (5 September 2000). Testability, fault size and the domain-to-range ratio: An eternal triangle. ACM SIGSOFT. pp. 168–172. doi:10.1145/347324.349016. ISBN 978-1-58113-266-3. S2CID 17772461.
  3. ^ Tarlinder, Alexander (2016). Developer testing : building quality into software. Addison-Wesley. ISBN 978-0-13-429106-2. OCLC 992888632.


Stub icon

This software-engineering-related article is a stub. You can help Wikipedia by expanding it.

Stub icon

This mathematics-related article is a stub. You can help Wikipedia by expanding it.

Stub icon

This logic-related article is a stub. You can help Wikipedia by expanding it.

AltStyle によって変換されたページ (->オリジナル) /