엣지케이스(Edge Case), 경계 케이스(Boundary Case)

엣지 케이스는 극단적인 작동 매개변수에서만 발생하는 문제 또는 상황입니다. 예를 들어, 스테레오 스피커는 다른 극단적인 설정이나 조건이 없는 경우에도 최대 볼륨으로 재생할 때 오디오를 눈에 띄게 왜곡할 수 있습니다. 극단적인 경우는 예상할 수도 있고 예상하지 못할 수도 있습니다. — Wiki

소프트웨어 관점에서 예를 들면 주어진 배열의 길이가 0이거나 1인경우, 배열이 너무 길어 중첩 for문을 사용했을때 O(N²)의 시간 복잡도를 가져 너무 긴 시간이 걸리는 경우 등 다양한 상황이 있을 수 있다.

엣지케이스의 예로는 아래의 상황들이 있을 수 있다고 한다.

  1. 비어있거나 하나만 있는 케이스
  2. 첫번째 혹은 마지막 케이스
  3. 크기가 굉장히 큰 케이스
  4. 범위가 굉장히 넓은 케이스
  5. 양수만 있는, 혹은 음수만 있는 케이스
  6. 배열 사이즈가 클 때 전체 반복을 두번 이상 하면 타임아웃에 걸릴 수 도 있다고 생각하자.
  7. overflow 가 나는 케이스 (int 대신 long 사용)
  8. 같은 값이 들어가는 케이스

코너 케이스(Corner Case)

여러 가지 변수와 환경의 복합적인 상호작용으로 발생하는 문제다. 날씨가 너무 습해 스피커에 문제가 생기는 등의 경우이다.