
358
2
부
구현
엔드 테스트에는 많은 단점이 있다.
9.4.19.4.1
불안정하고 깨지기 쉬운 테스트 불안정하고 깨지기 쉬운 테스트
테스트 범위가 증가함에 따라 작동하는 구성 요소의 수 역시 증가한다. 이러한 작동부는 테스
트 중인 기능의 고장이 아니라 어떤 다른 문제가 발생해 테스트가 실패하는 상황을 만들 수 있
다. 예를 들어
CD
한 장을 주문할 수 있는지 확인하는 테스트가 있고
4
~
5
개의 마이크로서비
스에 대해 이 테스트를 수행하려는 경우, 그중 하나라도 다운되면 테스트 자체와 전혀 무관한
오류가 발생할 수 있다. 마찬가지로 일시적인 네트워크 결함으로 인해 테스트 중인 기능에 대
해 아무런 정보도 없이 테스트가 실패할 수 있다.
작동하는 구성 요소가 많을수록
테스트는 더 불안정해지고테스트는 더 불안정해지고
더 결정적이지 못할 수 있다.
때때로때때로
실패하는 테스트가 있더라도 나중에 다시 통과할 수 있어 모든 사람이 테스트를 다시 수행해야
한다면, 신뢰할 수 없는 테스트가 된다. 그리고 다양한 프로세스를 다루는 테스트가 이 문제의
유일한 원인은 아니다. 다수 스레드(그리고 다수 프로세스)에서 수행되는 기능을 다루는 테스
트도 문제가 되는 경우가 많다. 실패는 경합 조건이나 타임아웃을 의미하거나, 실제로 기능에
문제가 있다는 것을 의미할 수 있다. 불안정한 ...