올바름 보장하기

    마지막 이점은 흔히 잘못 이해되고 과대평가되는 이점이다. 테스트가 있으면 시스템이 우리가 작동했으면 하고 이해한 방식대로 작동한다는 확신을 가질 수 있다. 이 말은 TDD로 작성한 시스템에 버그가 더 적다는 의미가 아니고, 버그를 더 빨리 수정할 수 있다는 뜻이다. 프로그램의 결점 대부분은 코드를 작성한 개발자가 예상하지 못한 조건에 의해 발생하기 때문이다. 테스트는 전체 애플리케이션을 직접 디버깅할 때보다 훨씬 더 빨리 버그를 발견할 수 있게 해준다.

    테스트는 자동으로 실행되고 상대적으로 더 빠르다. 따라서 여러 가지 환경에서 (시스템에 대해) 예상하고 있는 사실을 재검증하는 데 테스트를 재사용할 수 있다.

    여러 가지 유형의 테스트들

    자동화된 테스트는 여러 가지가 있다. 특히 중요한 테스트 몇 가지를 알아보자.

    단위 테스트(unit test): 동작 단위, 즉 효과적으로 테스트할 수 있는 가장 작은 단위에 대해 작동하는 테스트다. 예를 들어 클래스의 메서드나 순수 함수, 또는 몇 가지 서로 밀접하게 연관된 함수들을 단위라 할 수 있다. 단위 테스트는 아주 빠르게 실행될 수 있어야 하고, 외부 시스템과 상호작용해서는 안 된다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.