임베디드 용어 사전
관측·테스트

정적 분석

코드를 실행하지 않고 검사해 결함 가능성을 찾는 도구. 컴파일러 경고보다 넓게 본다.

돌리기 전에 잡는다. 임베디드는 재현이 어려운 버그가 많아 효과가 특히 크다.

무엇을 잡나

초기화 안 된 변수 사용
널 포인터 역참조 가능 경로
배열 범위 초과
도달할 수 없는 코드 · 항상 참인 조건
정수 오버플로 · 부호 혼용
MISRA 같은 코딩 규칙 위반

컴파일러 경고부터 켠다

-Wall -Wextra -Wconversion -Wshadow

공짜로 얻는 정적 분석이다. 특히 -Wconversion 은 정수 승격이 만드는 함정을 잡아 준다. 경고를 방치하면 새 경고가 묻히므로, 경고 0 을 유지하고 CI 에서 -Werror 로 강제하는 것이 좋다.

한계

  • 오탐이 있다. 전부 고치려 들면 지친다 — 억제 주석과 사유를 남기는 절차를 정한다
  • 실행 시점 문제(타이밍·경쟁 조건)는 대부분 못 본다

그래서 정적 분석·단위 테스트·HIL 이 각각 다른 층을 맡는다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 테스트 — 하드웨어 없이, 그리고 하드웨어와 함께