"보드가 없으면 테스트를 못 한다" 는 말은 절반만 맞다.
무엇이 PC 에서 가능한가
가능 프로토콜 파싱 · 상태 기계 · 필터 계산 · 링 버퍼 · CRC
어렵다 레지스터 직접 접근 · 인터럽트 타이밍 · 아날로그 특성
핵심은 하드웨어 접근을 한 층으로 몰아내는 설계다. 그 층만 가짜로 바꾸면 나머지는 PC 에서 돈다.
/* 하드웨어에 직접 붙지 않게 분리한다 */
void protocol_feed(uint8_t byte); /* 순수 로직 — PC 에서 테스트 */
void uart_isr(void) { protocol_feed(DR); } /* 하드웨어 결합부는 얇게 */
얻는 것
- 보드 없이도 회귀 검증이 돌아간다 (CI 에 넣을 수 있다)
- 경계 조건을 마음대로 만들 수 있다 — 실제 하드웨어로는 재현하기 힘든 상황까지
- 리팩터링이 두렵지 않아진다
한계를 인정한다
타이밍·전기적 문제는 여전히 하드웨어에서만 드러난다. 그래서 단위 테스트는 HIL 과 역할이 다르지 대체하지 않는다.