4장
테스트 만들기 모든 테스트를 완전히 자동화하고, 테스트가 자신의 결과를 스스로 확인하게 하라.
테스트의 결과 또한 컴퓨터가 확인하도록 테스트 코드를 작성하라.
TS_ASSERT_EQUALS( result, expected_result )
언제 테스트 코드를 작성해야 하는가?
프로그래밍 시작 전
테스트를 자주 실행 시켜라. 컴파일 할 때마다 테스트를 하고, 적어도 하루에 한번 모든 테스트를 실행시켜라. 리팩토링을 할 때는 작업하고 있는 코드만 몇 가지 테스트를 실행시켜야 한다. 단위 테스트 ( Unit test ) vs 기능 테스트 ( functional test )
단위 테스트
프로그래머에게 생산성 제공
범위가 매우 한정적
프로그래머가 작성
기능 테스트
소프트웨어 전체가 제대로 작동하는 지를 확인하기 위해 작성
사용자에게 확실한 품질 제공
프로그래머의 생산성은 관계 없음
버그를 찾는 것을 즐기는 다른 팀에 의해 개발되어야 함
테스트 추가하기
클래스가 해야 하는 모든 작업을 확인하고, 각각의 작업에 대해 클래스가 오류를 범할 수 있는 조건에 대해 테스트
단순한 member 변수를 읽거나 쓰는 접근자(accessor)는 테스트 x
문제가 생길만한 곳에 집중해서 추가
코드를 보고 어디가 복잡한지, 기능을 보고 어느 곳에서 에러가 발생할 것 같은지 보라테스트로 모든 버그를 찾을 수는 없다.하지만 리팩토링을 하면 코드를 더 잘 이해할 수 있게 되고 더 많은 버그를 찾을 수 있을 것이다. 모든 버그를 잡기 위해 모든 경우의 수를 테스트 하는 것보다 대부분의 버그를 잡기 위해 합당한 시간을 보내는 것이 더 낫다.
Last updated