먼저 귀하의 질문에 대답하십시오 : 예, 귀하가 저에게 묻는다면 지속적 통합의 일부입니다. 그러나 통합 테스트가 무엇인지 명확히해야한다고 생각합니다.
Martin Fowler는 완전한 구축 프로세스를 자동화하여 신속하게 배포하는 방법으로 지속적인 제공에 대해 이야기했습니다. 이를 위해서는 개발자가 Continuous Integration 프로세스에서 제공하는 빠른 피드백을 받아야합니다. 그래서 그는 빌드가 거쳐야 할 단계를 정의합니다 .
- 커밋 빌드
- 철저한 테스트
- 전개
커밋 빌드는 개발자의 빠른 피드백으로 인해 10 분 이상 걸리지 않아야합니다.
다음은 내가 보는 방법입니다. 첫 번째 단계에서 최신 커밋을 가져 와서 빌드하십시오. 이것이 성공하면, 단위 테스트를 실행하여 클래스 / 클래스 그룹이 정의되고 예상 한대로 작동하는지 확인하십시오.
이것이 성공하면 통합 테스트 파트로 이동하십시오. 여기에서 방금 테스트를 거친 유닛의 상호 작용을 테스트합니다. 여기에는 장치에 입력을 공급하고 상태 / 상호 작용 / 출력을 관찰하는 것이 포함됩니다. 우리는 여전히 커밋 빌드에 있음을 기억하십시오. 따라서 파일 시스템, 데이터베이스, 네트워크 피어 등과의 상호 작용은 빠른 실행을 위해 스텁되어야합니다. Martin Fowler는 CI 서버에서 빠르게 실행하기 위해 필요한 경우 메모리 내 데이터베이스 사용을 암시합니다.
장치가 필요에 따라 작동하고 상호 작용하는지 확인한 후에는 일반적으로 테스트 범위에 대해 알아보고 (작은 하위 시스템을 테스트하는 것만으로는 충분하지 않음) 기능 테스트 / QA / 배포 ( 테스트 : 프로그램을 충분히 커버한다고 생각되면 철저한 테스트). 그런 다음 목표로하는 프로덕션 환경을 미러링하는 테스트 환경을 프로비저닝하고 실제 데이터베이스, 실제 파일, 실제 네트워크 피어 등이 포함 된 테스트를 실행하십시오.
결국 통합 테스트는 코드 변경에 관한 것입니다. 변경 사항이 현재 시스템을 손상시키지 않는지 확인하려고합니다. 이들이 올바른지 확인하려면 자신이 올바르게 작동하는지 확인한 다음 종속성과 올바르게 상호 작용하고 테스트를 거쳤는지 확인해야합니다. 모든 테스트를 통과 한 후 시스템에 대해 확신을 가질 수 있습니다.
이후 단계에서 프로그램에 문제가 발생하면 (데이터베이스가 특정 값을 반환 할 때 네트워크 연결이 중단됨) 통합 테스트에서 이러한 테스트를 중단해야합니다. 커밋 빌드는 QA보다 빠릅니다.)