CI/CT (Continuous Integration / Continuous Testing) — 소스코드 변경 → 통합(빌드) → 테스트 → 배포 사이클을 자동·빈번하게 순환해 품질·개발 효율을 높이는 방식. CI/CD(웹 애플리케이션 중심으로 2010년대 중반 확산)의 자동차 산업 변형으로, 통합과 테스트 자동화에 집중.
CI/CD vs CI/CT
| 약어 | 풀이 |
|---|---|
| CI/CD | Continuous Integration + Continuous Delivery/Deployment — 웹 앱 중심 |
| CI/CT | Continuous Integration + Continuous Testing — 자동차 산업 SW 개발 |
자동차에서는 안전·인증 요건상 무한 자동 배포가 어려워 테스트 자동화 + 통합 자동화가 핵심 가치. 빌드·테스트·디버깅의 휴먼 작업을 제거.
기본 환경 구성
Astemo 사례 정리:
| 구성요소 | 역할 |
|---|---|
| 구성 관리 도구 | GitLab 등 (소스코드 + 데이터저장소 Artifactory) |
| CI Runner | CI 작업 실행 환경 (물리 서버 또는 클라우드/컨테이너) |
| Jenkins | 테스트 작업 자동 실행 |
| Test Runner | 테스트 실행 환경 (가상 ECU·시뮬레이터·HW 조합) |
흐름
(a) 개발자가 변경 소스코드·테스트 시나리오를 저장소에 등록 → (b) CI Runner가 빌드·테스트 정보 수집·가공 → (c) Test Runner에 전송 + Jenkins가 CT 실행 → (d) 결과 자동 보고.
CI Runner ↔ Test Runner 사이 Jenkins 끼워 넣는 이유 — 구성 관리 도구의 차이를 유연하게 흡수하기 위함 (스즈키 가이키, Astemo).
SDV 시대 CI/CT의 가치
Astemo CI/CT 추진 목적 (2025-06):
- 빌드·테스트 등 다양한 프로세스를 사람의 손을 거치지 않고 한 번에 처리 → 효율 ↑
- 문제 발생 시 신속한 롤백
- 외부 업체 공동 개발 시 환경 차이 흡수 + 통합 품질 ↑
- 가상 ECU 환경 + CI/CT로 기본 기능 검증을 효율적 실행
- SDV는 SW 중요성·고도화·효율성 모두 요구 → 가상화 + CI/CT 도입은 필수
자동차 SW CI/CT 도구 — Vector 사례
Vector Informatik 도구로 구현되는 대표 환경:
| 도구 | 역할 | | --------------------------- | ------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | | vVIRTUALtarget | AUTOSAR Classic 호환 MICROSAR Classic(BSW 레이어) 가상화 | | CANoe (Desktop Edition) | 일반 GUI 버전, 통신·테스트 환경 구축 | | CANoe4SW Server Edition | CT용 헤드리스(GUI 없음) 솔루션 — SIL과 CT 대상, COM 인터페이스로 커맨드라인 제어 | | vTESTstudio | 테스트 시퀀스 작성 도구. 사양 차이를 vparam 파라미터로 흡수 | | VT System | 실제 ECU 연동 HW 테스트 (CAN 버스 단선 등) | | SIL Kit | 오픈소스 무상 라이브러리 — 서드파티 가상 ECU·시뮬레이터·모델·SW를 ‘SIL 어댑터’(인터페이스)로 연결 |
CI/CT 도입 효과 사례 (Astemo 파워트레인 ECU)
- 체감 효율 30~40% 향상
- CI/CT 한 사이클당 약 30분~1시간 단축
- 휴먼 에러 감소 등 정성적 효과 큼
- 주요 테스트 대상 — MICROSAR Classic의 COM·DEM/FIM·DCM 모듈
발전 방향
- CI Runner의 클라우드 인스턴스·컨테이너 전환 — 물리 PC 수 절감
- Ethernet 등 CAN 외 네트워크 CI/CT화
- in-car 폐쇄 영역 → out-car 커넥티드 영역과 연계한 테스트로 확장
- 서드파티 도구 통합으로 도구 다양성 흡수