|This article needs additional citations for verification. (January 2014)|
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 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.
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.
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.
- Zimmerman, Josh (2012). "Unit Testing" (PDF). Principles of Imperative Computation. cs.cmu.edu. Retrieved 2014-01-16.
|This engineering-related article is a stub. You can help Wikipedia by expanding it.|