프로그램을 만들고 나면 적절한 테스트 케이스를 선택해서 프로그램이 제대로 동작하는지 테스트를 해야합니다. UI와 연관된 부분들이라면 이것저것 눌러보는 것으로 테스트를 할 수도 있겠지만, 시나리오 없이 테스트를 하게되면 테스트를 나올 수 있는 결함을 발견하지 못한 찜찜함을 느끼게 되는데 몇가지 케이스에 맞춰 테스트를 한다면 적어도 이러한 테스트 케이스에서는 결함이 없다는 것을 명확히 알 수 있게 되는것 같습니다.
- 몇 개의 올바른 입력
- 정상적인 경우에 소프트웨어가 올바르게 작동하는지 확인하기 위해 올바른 입력 값 몇개를 잘 선별해서 넣는다
- 유요한 입력의 전체 범위에서 고른다. 중간값 몇개, 하한 근처 값 몇개, 상한 근처 값 몇개를 포함
- 몇 개의 잘못된 입력
- 지나치게 큰 또는 지나치게 작은 수치의 값, 혹은 음수
- 지나치게 길거나 지나치게 짧은 값
- 내부적으로 모순된 데이터 값
- 경계 값
- 모든 경계 값을 테스트
- 경계 값이 에러의 원인이 되는 경우는 아주 많습니다. 유요한 값 중 가장 높은 값과 가장 낲은 값, 아니면 경계가 어디에 있든 그 위치에 있는 값을 식별하십시오
- 임의의 데이터
- 잘못된 추측을 피하기 위해서는 랜덤하게 생성된 입력 데이터 집합을 가지고 테스트하는 것이 좋습니다.
- 제로
- 입력 값이 수치이면 항상 0일 경우에 대한 테스트를 하십시오.
- 프로그래머들은 어떤 이유로 0일 경우에 대한 생각을 올바르게 하지 못합니다. 이를테면 추론의 맹점입니다.
출처 - CodeCraft 8장