工学において、コーナーケース(または病理的ケース)とは、システムの想定される動作範囲の限界付近に位置するまれな、または異常な状況を指し、制限や予期せぬ動作を露呈する可能性がある。このようなケースは、必ずしもパラメータが規定範囲を超えることを伴うわけではなく、むしろ予測や確実な対処が難しい低確率のシナリオを表している。 [ 1 ]
例えば、スピーカーは最大音量、最大低音、高湿度環境下で再生した場合のみ、音声を歪ませることがあります。また、コンピュータサーバーは、最大構成の64個のプロセッサ、512GBのメモリ、 10,000人の同時接続ユーザーの場合のみ、信頼性に欠けることがあります。このような特殊なケースを調査することは、エンジニアにとって、特殊なケースの影響を軽減する方法について貴重な洞察を得る上で非常に重要です。
コーナーケースは、特に複雑なシステムのテストやデバッグに携わるエンジニアにとって、欠かせない用語です。コーナーケースは、複数の次元で最大限の設定が必要となるため、再現、テスト、最適化がより困難でコストも高くなります。また、製品ユーザーが実際に複数の最大設定を同時に使用することはないだろうという認識から、テストが十分に行われないケースも少なくありません。そのため、システムの熟練ユーザーは日常的にコーナーケースの異常を発見し、その多くにエラーが潜んでいます。
「コーナーケース」という用語は、「エッジケース」との物理的な類推から生まれたもので、「飛行包絡線」のメタファーを、テスト対象の変数数nの極値(最小値と最大値)の2 n通りの組み合わせによって境界が決定されるテスト条件のセットに拡張したものです。つまり、それらの変数の全パラメータ空間を指します。エッジケースでは、1 つの変数を最小値または最大値に押し下げることで、ユーザーを構成空間の「端」に置くことになりますが、コーナーケースでは、複数の変数で同様の操作を行うことで、ユーザーを多次元構成空間の「隅」に置くことになります。