Notice
Recent Posts
Recent Comments
끄적끄적
리팩토링 4장 - 테스트 만들기 본문
테스트 만들기
모든 테스트를 완전히 자동화하고, 테스트가 자신의 결과를 스스로 확인하게 하라.
- 테스트의 결과 또한 컴퓨터가 확인하도록 테스트 코드를 작성하라.
- TS_ASSERT_EQUALS( result, expected_result )
언제 테스트 코드를 작성해야 하는가?
- 프로그래밍 시작 전
- 구현보다는 인터페이스에 집중할 수 있게 된다.
- 코딩을 완료할 명확한 지점( 테스트를 통과하는 지점) 을 갖게 되는 것을 의미함
테스트를 자주 실행 시켜라. 컴파일 할 때마다 테스트를 하고, 적어도 하루에 한번 모든 테스트를 실행시켜라.
리팩토링을 할 때는 작업하고 있는 코드만 몇 가지 테스트를 실행시켜야 한다.
단위 테스트 ( Unit test ) vs 기능 테스트 ( functional test )
- 단위 테스트
- 프로그래머에게 생산성 제공
- 범위가 매우 한정적
- 프로그래머가 작성
- 기능 테스트
- 소프트웨어 전체가 제대로 작동하는 지를 확인하기 위해 작성
- 사용자에게 확실한 품질 제공
- 프로그래머의 생산성은 관계 없음
- 버그를 찾는 것을 즐기는 다른 팀에 의해 개발되어야 함
테스트 추가하기
- 클래스가 해야 하는 모든 작업을 확인하고, 각각의 작업에 대해 클래스가 오류를 범할 수 있는 조건에 대해 테스트
- 단순한 member 변수를 읽거나 쓰는 접근자(accessor)는 테스트 x
- 문제가 생길만한 곳에 집중해서 추가
코드를 보고 어디가 복잡한지, 기능을 보고 어느 곳에서 에러가 발생할 것 같은지 보라
테스트로 모든 버그를 찾을 수는 없다.
하지만 리팩토링을 하면 코드를 더 잘 이해할 수 있게 되고 더 많은 버그를 찾을 수 있을 것이다.
모든 버그를 잡기 위해 모든 경우의 수를 테스트 하는 것보다 대부분의 버그를 잡기 위해 합당한 시간을 보내는 것이 더 낫다.
'리팩토링' 카테고리의 다른 글
리팩토링 7장 - 객체간의 기능 이동 (0) | 2016.03.12 |
---|---|
리팩토링 6장 - 메소드 정리 (0) | 2016.03.06 |
리팩토링 3장 - 코드 속의 나쁜 냄새 (0) | 2016.02.21 |
리팩토링 2장 - 리팩토링의 원리 (0) | 2016.02.14 |
[리팩토링] 1장 - (1) (0) | 2016.02.06 |
Comments