Akashic Records

테스트 지향 프로그래밍 with JUnit - 2 본문

오래된글/Java

테스트 지향 프로그래밍 with JUnit - 2

Andrew's Akashic Records 2018. 4. 7. 23:36
728x90

Ch 2 경계 조건(Boundary Condition)

“버그는 경계 조건(boundary condition) 근처, 즉 그 코드의 평소의 루틴과 다르게 동작하는 조건에서 많이 발생한다.”


경계 조건 테스트 영역

  • 형식 일치 : 값의 형식이 예상한 형식과 일치하는가? 만일 우리가 특정한 형식을 따르는(이메일 주소 구조와 같이 xxx@xxx.xx) 데이터를 기대하거나 만들어낸다면, 데이터가 기대한 구조에 따르지 않을 때 어떤 일이 발생할지 생각해 두어야 한다.

  • 순서 : 적절히 순서대로 되어 있거나 그렇지 않은 값인가? 큰 데이터 모음에서 데이터의 순서나 데이터의 한 부분의 위치에 따른 영향을 고려해야 한다.

  • 범위 : 적당한 최소값과 최대값 사이에 있는가?


Ex) 다음의 stack 인덱스 범위 테스트 영역이다.

- 시작 인덱스와 끝 인덱스가 같은 값이다.

- 처음 인덱스가 마지막 인덱스보다 크다.

- 인덱스가 음수이다.

- 인덱스가 허용된 것보다 큰 값이다.

- 원소 개수를 세는 변수값이 실제로 들어 있는 항목 개수와 맞지 않는다.

  • 참조 : 코드가 자기가 직접 제어하지 않는 외부 코드를 참조하는가? 외부 의존성에 관하여 고려해야 한다.

  • 존재성 : 값이 존재하는가? 기대하는 값이 존재 여부에 따른 영향을 고려해야 한다.

  • 개체 수 : 확실히 충분한 값이 존재하는가?

  • 시간 : 절대적이든 상대적이든 모든 것이 순서대로 일어나는가?


728x90
Comments