Corner case, edge case, boundary case の違い
ソフトウェアテスト用語の話です。
単体テストまたはユニットテストにおいては、入力に対して、期待した出力がされるかをチェックしますが、このとき、不具合の出やすそうな入力を作るのに、boundary case(境界値)などの概念が出てきます。
似たような用語にedge case, corner caseというのがあり、今回は違いを調べてみました。
以下のリンクのように、他にも同じこと調べている方もいました。
Wikipediaを見ると、edge caseとboundary caseは同じで、境界値、すなわち極端な値(最小値や最大値)を指すようです。Integer型の最大・最小とか、入力フォームに入る最大・最小の数字とか、ですね。
corner caseは、悲観的なケース(pathological case)で、通常の使用方法を超えた使われ方をした場合のことのようです。動作保証はしないけど、そんなにひどい事にはならないようにするために確認するような場合に使われるようです。
また、special case とは、テスト対象のモジュール内部処理に由来する、特別にテストが必要なケース。
以上。