Jump to content

Edge case

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Beland (talk | contribs) at 15:51, 23 November 2016 (See also: * Random testing * Fuzz testing). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An edge case is a problem or situation that occurs only at an extreme (maximum or minimum) operating parameter. For example, a stereo speaker might noticeably distort audio when played at its maximum rated volume, even in the absence of other extreme settings or conditions.

An edge case can be expected or unexpected. In engineering, the process of planning for and gracefully addressing edge cases can be a significant task, and one that may be overlooked or underestimated. Non-trivial edge cases can result in a failure of the object being engineered that may not have been imagined during the design phase or anticipated as possible during normal use. For this reason, attempts to formalize good engineering practices often incorporate information about dealing with edge cases.

Software engineering

In programming, an edge case typically involves input values that require special handling in an algorithm behind a computer program. As a measure for validating the behavior of computer programs in such cases, unit tests are usually created; they are testing boundary conditions of an algorithm, function or method. A series of edge cases around each "boundary" can be used to give reasonable coverage and confidence using the assumption that if it behaves correctly at the edges, it should behave everywhere else.[1]

For example, a function that divides two numbers might be tested using both very large and very small numbers. This assumes that if it works for both ends of the magnitude spectrum, it should work correctly in between.

See also

References

  1. ^ Zimmerman, Josh (2012). "Unit Testing" (PDF). Principles of Imperative Computation. cs.cmu.edu. Retrieved 2014-01-16.