단위 테스트 지침 요약

[개발]


일반원칙

  • 망가질 가능성이 있는 모든 것을 테스트한다.
  • 망가지는 모든 것을 테스트한다.
  • 새 코드는 무죄가 증명되기 전까지는 유죄.
  • 적어도 제품 코드만큼 테스트 코드를 작성한다.
  • 컴파일을 할 때마다 지역 테스트를 실행한다.
  • 저장소에 체크인하기 전에 모든 테스트를 실행해 본다.

자문해 봐야 할 사항

  •  이 코드가 옳게 동작한다면, 어떻게 그것을 알 수 있는가?
  • 이것을 어떻게 테스트할 것인가?
  • '그밖에' 어떤 것이 잘못될 수 있는가?
  • 이와 똑같은 종류의 문제가 다른 곳에서도 일어날 수 있을까?


무엇을 테스트해야 하는가 RIGHT-BICEP

  • Right : 결과가 옳은가?
  • Boundary : 모든 경계 조건이 CORRECT한가?
  • Inverse : 역관계를 확인할 수 있는가?
  • Cross-check : 다른 수단을 사용해서 결과를 교차 확인 할 수 있는가?
  • Error condition : 에러 조건을 강제로 만들어낼 수 있는가?
  • Performance : 성능 특성이 한도내에 있는가?

좋은 테스트는 A-TRIP해야 한다.

  • Automatic(자동적)
  • Through(철저함)
  • Repeatable(반복 가능)
  • Independent(독립적)
  • Professional(전문적)

CORRECT 경계 조건

  • Conformance(형식 일치) : 값의 형식이 예상한 형식과 일치하는가?
  • Ordering(순서) : 적절히 순서대로 되어 있거나 그렇지 않은 값인가?
  • Range(범위) : 적당한 최소값과 최대값 사이에 있는 값인가?
  • Reference(참조) : 코드가 자기가 직접 제어하지 않는 외부 코드를 참조하는가?
  • Existence(존재성) : 값이 존재하는가?
  • Cardinality(개체 수) : 확실히 충분한 값이 존재하는가?
  • Time(시간) : 모든 것이 순서대로 일어나는가? 제시간에? 때맞추어?


<실용주의 프로그래머를 위한 단위 테스트 with JUnit>
2007/09/12 23:39 2007/09/12 23:39

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/197

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

  1. ParkPD [2007/09/13 11:12]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    이 책 괜찮나요? 있는 줄도 몰랐네요. 바로 장바구니로 보냈습니다만... :)

    • 버드 [2007/09/13 14:05]  [댓글주소]  [수정/삭제]

      네. 좋아요. 처음 유닛 테스트를 시도해 보려는 사람이 읽으면 좋겠더군요. 책값도 싸구요. ㅎ

[로그인][오픈아이디란?]