노트 / 펌웨어 설계와 품질
단위 테스트: 하드웨어 없이 펌웨어 검증하기
PID, 파서, 상태 머신처럼 하드웨어와 무관한 로직은 PC에서 테스트합니다. Unity, 목(mock), 테스트 가능한 구조.
무엇을 테스트하나
하드웨어를 건드리지 않는 순수 로직이 대상입니다. 필터, PID, CRC, 프로토콜 파서, 상태 머신, 단위 변환. 이 부분의 버그를 보드 위에서 찾으려면 시간이 몇 배 걸립니다.
Unity 예
void test_crc16_known_value(void) {
const uint8_t s[] = "123456789";
TEST_ASSERT_EQUAL_HEX16(0x4B37, crc16_modbus(s, 9));
}
void test_parser_rejects_bad_crc(void) {
feed(bad_packet, sizeof bad_packet);
TEST_ASSERT_FALSE(packet_ready());
}
PC의 gcc로 빌드해 실행하고, CI(GitHub Actions 등)에서 커밋마다 자동으로 돌립니다.
무료 전자책이 주제를 한 권으로 이어 읽기 (PDF 3권)→하드웨어 의존을 끊는 방법
- 계층 구조로 로직과 HAL을 분리
- 하드웨어 함수를 가짜(mock/stub)로 바꿔 끼움:
adc_read()가 테스트에서 정해 둔 값을 반환하게 - CMock, fff 같은 도구가 헤더에서 가짜 함수를 자동 생성
좋은 테스트
- 경계값: 0, 최대값, 오버플로 직전
- 비정상 입력: 깨진 패킷, 범위 밖 값
- 테스트 하나는 한 가지만 확인
V-모델에서 단위 테스트는 상세 설계와 짝을 이루는 검증 단계입니다.
영상으로 이어 보기RC카 만들기 시리즈 6편대기업 임베디드 개발자 Lego RC카 메이킹 시작합니다. 【RC카 개발1】PROJECT COURSE요구사항부터 소프트웨어 구조까지 한 프로젝트로 해 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →