211
Chapter 5
자동 테스트: 신속하게 진행하되 문제는 피하기
5.3
소프트웨어 테스트
이 절에서는
ML
시스템에서 흔히 사용되는 소프트웨어 컴포넌트를 테스트하는 데 유용한 네
가지 유형의 소프트웨어 테스트를 살펴보겠습니다.
■ 단위 테스트
■ 훈련 스모크 테스트
■
API
테스트
■ 배포 후 테스트
각 소프트웨어 테스트가
ML
모델의 제품화 경로에서 어디에 위치하는지 확인하고 싶다면,
앞에서 살펴 본 [그림
5
-
2
]를 참고하세요.
5.3.1
단위 테스트
단위 테스트는
ML
시스템의 개별 구성 요소, 주로 함수의 정확성을 보장하는 데 도움을 줍
니다. 함수가 어떤 작업을 수행하든, 단위 테스트는 함수의 예상 동작을 명확히 지정하고 코
드가 변경될 때마다 이러한 기대가 여전히 유효한지 확인해 줍니다. 수십 년간의 소프트웨어
엔지니어링 경험은 수동 테스트보다 단위 테스트가 훨씬 더 신뢰할 수 있고 확장 가능하다는
것을 가르쳐주었습니다. 수동 테스트는 오류가 발생하기 쉽고 시간이 갈수록 점점 더 많은
시간을 소요하게 됩니다. 테스트를 전혀 하지 않는 것보다는 훨씬 나은 방법입니다.
이 장에서 나열된 다른 유형의 테스트는 특정 상황에서는 필요하지 않을 수 있습니다
(
API
를 배포하지 않는다면
API
테스트가 필요하지 않습니다 )
. 그러나 단위 테스트는
ML
솔루션에
서 반드시 필요한 유일한 테스트 유형입니다. 소프트웨어 로직은 일반적으로
ML
프로젝트에
서 대부분의 코드를 차지합니다. 예를 들어,
ML
시스템의 중요한 부분인 피처