참조 : Spring MVC 288페이지

1. 경계(Edge case)를 테스트 하라.
- 메소드가 예상하고 있지 않은 값들을 인자로 넘겨주는 것을 테스트 해야한다. 0, null값, 음수나 조건들과 같은 Edge 들은 비즈니스 로직을 통해 정의 된다.

2. 일반적인 경우(Common case)를 테스트 하라.
- 가장 자주 발생 하는 정상적인 시나리오 대로 메소드를 사용해본다. 보톤 경계 테스트를 빼먹는 경우가 많아서 경계 테스트가 더 중요하지만 이 것도 빠트리면 안된다.
- 분기문과 반복문의 모든 경우를 테스트 해야한다.
    - if 문에 true일 경우와 false일 경우
    - switch문의 모든 case
    - 예외가 발생할 경우

3. 가능한 모든 경우를 테스트 했는지 확인하는 툴을 사용한다.
- code coverage 툴을 사용(Clover, EMMA)
- test coverage가 100% 나와도 테스트 코드가 완벽하다고 할 수는 없다. 위 도구들이 해당 테스트가 경계 테스트를 했는지는 확인할 수 없기 때문이다.

결론
경계 테스트와 코드 커버리지 툴을 사용하면 완벽한 테스트 코드를 가졌다는 느낌을 받을 수 있을 것이다.