This article does not cite any sources. (January 2019) (Learn how and when to remove this template message)
In engineering, a corner case (or pathological case) involves a problem or situation that occurs only outside of normal operating parameters—specifically one that manifests itself when multiple environmental variables or conditions are simultaneously at extreme levels, even though each parameter is within the specified range for that parameter.
For example, a loudspeaker might distort audio, but only when played at maximum volume, maximum bass, and in a high-humidity environment. Or a computer server may be unreliable, but only with the maximum complement of 64 processors, 512 GB of memory, and 10,000 signed-on users. The investigation of corner cases is of extreme importance as it can provide engineers with valuable insight into how corner case effects can be mitigated. In the case where automotive radar fails, corner case investigation can possibly tell engineers and investigators alike what may have occurred.
Contrast a corner case with an edge case, the latter an issue that occurs only at a (single) maximum or minimum parameter. For example, a speaker may distort audio at maximum volume, even in the absence of other extreme settings or conditions.
Corner cases form part of an engineer's lexicon—especially an engineer involved in testing or debugging a complex system. Corner cases are often harder and more expensive to reproduce, test, and optimize because they require maximal configurations in multiple dimensions. They are frequently less-tested, given the belief that few product users will, in practice, exercise the product at multiple simultaneous maximum settings. Expert users of systems therefore routinely find corner case anomalies, and in many of these, errors.
The term "corner case" comes about by physical analogy with "edge case" as an extension of the "flight envelope" metaphor to a set of testing conditions whose boundaries are determined by the 2n combinations of extreme (minimum and maximum) values for the number n of variables being tested, i.e., the total parameter space for those variables. Where an edge case involves pushing one variable to a minimum or maximum, putting users at the "edge" of the configuration space, a corner case involves doing so with multiple variables, which would put users at a "corner" of a multidimensional configuration space.