더북(TheBook)

구현을 위한 속성을 틀림없이 유지하고 있다고 확신하더라도 단정을 작성하길 바란다. 때때로 우리가 가정한 것처럼 시스템이 정확하게 동작하지 않거나 컴파일러에 버그가 있을 수 있다(매우 드물지만 그럴 수 있다). 또는 원래 의도했던 것과 약간 다르게 구현했을 수도 있다. 우리가 많은 노력을 기울이고 주의해서 구현하더라도 머지않아 단정이 발생하게 된다. 테스트로 인해 실제 함수가 혼란을 겪게 되는 속성들이 많이 있을 경우, 테스트를 다른 기능으로 아웃소싱할 수 있다.

책임감 있는 프로그래머는 대규모 테스트 집합을 구현한다. 하지만 이렇게 한다고 해서 프로그램이 모든 상황에서 동작한다는 걸 보장하지는 않는다. 애플리케이션은 기적처럼 몇 년 동안 동작할 수 있지만, 언젠가는 크래시가 발생하게 된다. 이 상황에서는 모든 단정을 활성화한 상태에서 디버그 모드로 애플리케이션을 실행할 수 있으며 대부분은 크래시의 원인을 찾는 데 큰 도움이 된다. 그러나 이렇게 하려면 크래시 상황을 재현할 수 있어야 하며 더 느린 디버그 모드의 프로그램이 적절한 시간 내에 크리티컬 섹션에 도달해야 한다.

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