통합 테스트
통합 테스트
단위 테스트와는 달리 여러 개의 모듈 또는 컴포넌트가 함께 작동하는지, 서로 잘 통합되는지를 검증
단위 테스트의 요구사항 중 하나라도 충족하지 못하는 테스트는 통합 테스트 범주에 속한다.
즉, 단위 테스트가 아닌 모든 테스트는 통합 테스트에 해당한다.
장점
통합 테스트는 여러 모듈의 상호작용을 통해 코드를 더 많이 거치므로 회귀 방지가 단위 테스트보다 우수하다.
유저 시나리오에 가까운 상황을 재현하여 시스템을 검증 할 수 있다.
빠른 실패 (Fast Fail)
버그를 빨리 나타나게 하는 것을
빠른 실패 원칙
이라 하며, 통합 테스트에서 할 수 있는 대안이다.
예기치 않은 오류가 발생하자마자 현재 연산을 중단시키는 것으로 애플리케이션의 안정성을 높힐 수 있다.
피드백 루프 단축: 버그를 빨리 발견할수록 더 쉽게 해결 가능
지속성 상태 보호: 버그는 앱의 상태를 손상시키는데, 손상된 상태가 DB로 침투하면 고치기 훨씬 어려워지므로 빠르게 실패하면 손상이 확산되는것을 방지할 수 있다.
외부 의존성
프로세스 외부 의존성은
관리 의존성
과비관리 의존성
으로 나뉜다.
관리 의존성 (구현 세부사항)
애플리케이션을 통해서만 접근할 수 있는 프로세스 외부 의존성
관리 의존성과의 상호작용은 프로세스 외부에서 관찰할 수 없다.
Ex:) Database
비관리 의존성 (식별할 수 있는 동작)
다른 애플리케이션이 접근할 수 있는 프로세스 외부 의존성
비관리 의존성과의 상호 작용은 외부에서 관찰할 수 있다.
Ex) SMTP
Last updated