테스트 기본 원칙
잘 구성된 테스트는 더 빠르고 안정적으로 제품을 만들 수 있게 도와준다. 이 문서는 테스트 구성을 위한 기본 원칙과 가이드라인을 제공한다.
일곱 테스팅 원칙(Seven Testing Principles)
각 항목에 대한 자세한 내용은 Seven Testing Principles 문서를 참고한다.
- 테스팅은 결함의 존재를 보여주는 것이다.
- 완벽한 테스트는 불가능하다.
- 테스트 구성은 가능한 빠르게 시작한다.
- 결함은 군집되어 있다.
- 살충제 역설(Pesticide Paradox): 비슷한 테스트가 반복되면 새로운 결함을 발견할 수 없다.
- 테스팅은 문맥에 의존적이다.
- 오류 부재의 궤변: 사용되지 않는 시스템이나 사용자의 기대에 부응하지 않는 기능의 결함을 찾고 수정하는 것은 의미가 없다.
F.I.R.S.T 원칙
유닛 테스트를 구성하기 위해서 F.I.R.S.T 원칙을 따른다. 각 항목에 대한 자세한 내용은 F.I.R.S.T Principles 문서를 참고한다.
- Fast: 유닛 테스트는 빨라야 한다.
- Isolated: 다른 테스트에 종속적인 테스트는 절대로 작성하지 않는다.
- Repeatable: 테스트는 실행할 때마다 같은 결과를 만들어야 한다.
- Self-validating: 테스트는 스스로 결과물이 옳은지 그른지 판단할 수 있어야 한다.
- Timely: 유닛 테스트는 프로덕션 코드가 테스트를 성공하기 직전에 구성되어야 한다. 테스트 드리븐 개발(TDD) 방법론에 적합한 원칙이지만 실제로 적용되지 않는 경우도 있다.
유닛 테스트
유닛 테스트는 아래 기본 가이드라인 항목에 따라 작성한다. 그 외 자세한 유닛 테스트 가이드라인은 JUnit Best Practices Guide 문서를 통해 숙지한다.
- 퍼블릭 메소드를 테스트한다.
- 테스트 결과에 영향을 미치는 디펜던시 객체는 모킹한다.
- 디스크 관련 디펜던시는 가능한 사용을 피한다.
- 네트워크 관련 디펜던시는 사용하지 않는다.
함께 읽으면 좋은 가이드
전체 보기핸드북
기여하기
기여하기 문서 작성 원칙
핸드북
Go 테스트
이 문서는 Go 테스트 방법과 가이드라인을 제공한다. 이는 Go 테스트 추천 라이브러리와 활용 방법에 대한 내용을 포함한다. 단 아래 내용은 추천 사항일 뿐이며, 각 프로젝트에 따라서 언제든 자유롭게 다른 방법을 적용하거나 제안할 수 있다. 다만 이 경우에도 프로젝트 내에서는 통일성을 갖는 것을 장려한다. 테스트 라이브러…
핸드북
파이썬 테스트
이 문서는 파이썬 테스트 방법과 가이드라인을 제공한다. 이는 파이썬 테스트 추천 라이브러리와 활용 방법에 대한 내용을 포함한다. 해당 문서 내용은 추천 사항이며, 각 프로젝트에 따라 다른 방법을 적용하거나 제안할 수 있다. 다만 이 경우에도 프로젝트 내에서는 통일성을 갖는 것을 장려한다. 유닛 테스트 이 문서에서는 pyt…