개념
"차가 이상하게 움직였다" 는 결함 보고가 아니다
자율주행·운전자 보조 기능의 결함은 현장에서 이렇게 보고된다. "앞차를 따라가다가 갑자기 브레이크를 밟았다."
이 한 문장으로 할 수 있는 일이 없다. 가능한 원인이 너무 많다.
- 카메라가 그림자를 장애물로 봤다(인지)
- 앞차를 놓쳤다가 다시 찾았다(인지의 추적 실패)
- 앞차를 제대로 봤는데 거리 계산이 틀렸다(인지)
- 거리는 맞는데 감속 판단 기준이 과했다(판단)
- 판단은 맞는데 제어가 과도하게 반응했다(제어)
- 세 단계 다 정상인데 다른 기능과 간섭 했다
그래서 이 분야의 첫 역량은 단계를 가르는 질문을 하는 것 이다. 모듈 46 레슨 1 의 계층 지도, 모듈 62 레슨 1 의 공장 계층 지도와 같은 발상이다 — 계층을 구분할 수 있으면 질문이 "왜 이상했죠" 에서 "인지 출력에 그 시점 장애물이 있었습니까" 로 좁혀진다.
세 단계가 무엇을 주고받는가
[센서] → [인지] → [판단] → [제어] → [구동]
원시 주변 주행 목표 실제
데이터 환경 모델 결정 값 움직임
인지: "지금 주변에 무엇이 어디에 어떤 상태로 있는가"
판단: "그래서 무엇을 할 것인가"
제어: "그 결정을 어떻게 실행할 것인가"| 단계 | 입력 | 출력 | QA 가 볼 산출물 |
|---|---|---|---|
| 인지 | 카메라·레이더·라이다·초음파 원시 데이터, 지도, 차량 상태 | 객체 목록(종류·위치·속도·신뢰도), 차선, 신호, 주행 가능 영역 | 인지 출력 로그, 시각화 |
| 판단 | 인지 출력, 목표 경로, 규칙, 차량 상태 | 주행 결정(가속·감속·차선 유지·변경·정지), 목표 궤적 | 결정 로그, 선택 근거 |
| 제어 | 목표 궤적·목표 값 | 조향각·가감속 명령 | 명령 값, 추종 오차 |
각 단계의 출력이 다음 단계의 입력 이므로, 경계에서 값을 관측할 수 있으면 어느 단계가 틀렸는지 가를 수 있다. 그래서 QA 가 가장 먼저 요구할 것이 경계 관측 가능성 이다 — 인지 출력과 판단 결정이 로그로 남는가.
남지 않으면 그것이 시험 가능성 지적 이다(모듈 9 레슨 9, 모듈 46 레슨 8). "차가 이상하게 움직인 원인을 특정할 수 없습니다" 는 결함 1건이 아니라 구조 지적이다.
단계를 가르는 관측 절차
위 보고(갑작스러운 제동) 를 받았을 때의 절차다.
1) 제어 명령 로그를 본다
→ 감속 명령이 있었는가?
없음 → 제어 아래쪽(구동·브레이크 계통) 문제. 모듈 46 영역
있음 → 2번으로
2) 판단 결정 로그를 본다
→ 감속 결정이 있었는가?
없음 → 제어 단계 문제(명령 생성 오류)
있음 → 3번으로
3) 인지 출력을 본다
→ 그 시점에 감속을 유발할 객체가 있었는가?
없음 → 판단 단계 문제(근거 없는 결정)
있음 → 4번으로
4) 인지 출력이 실제와 맞았는가 (영상·센서 원시 데이터와 대조)
안 맞음 → 인지 단계 문제
맞음 → 판단 기준이 과한 것. 요구사항 검토 대상4번에서 "맞음" 으로 끝나는 경우가 중요하다. 세 단계 모두 명세대로 동작했는데 결과가 바람직하지 않은 상황 — 이것이 SOTIF 의 영역 이고 레슨 2 가 다룬다. "결함이 없다" 가 아니라 "명세가 부족하다" 는 결론이고, 그 구분을 할 수 있는 것이 이 레슨의 목표다.
이 절차를 문서로 만들어 두는 것 이 QA 의 실질적 산출물이다. 현장 보고가 들어올 때마다 같은 순서로 좁혀 가면 책임 소재 논쟁이 짧아진다.
인지가 실패하는 고유한 모양
인지 단계의 실패는 네 가지 유형 으로 나뉘고, 각각 결과가 다르다.
| 유형 | 무엇인가 | 결과 |
|---|---|---|
| 미검출 | 있는 것을 못 본다 | 충돌 위험. 가장 위험하다 |
| 오검출 | 없는 것을 본다 | 불필요한 제동·회피. 뒤차 추돌 위험 |
| 오분류 | 종류를 틀린다 | 잘못된 판단으로 이어진다 |
| 상태 오차 | 위치·속도·크기를 틀린다 | 거리 판단이 틀어진다 |
미검출과 오검출의 교환 관계 가 인지 검증의 중심이다. 민감하게 만들면 미검출이 줄고 오검출이 늘고, 보수적으로 만들면 반대다. 모듈 41 레슨 9 의 오탐·미탐 구조와 같은 모양 이고, 같은 원칙이 적용된다 — 양쪽을 함께 보고한다. 한쪽만 보고하면 잘못된 방향으로 조정된다.
오분류는 과소평가된다. 사람을 자전거로 분류하면 예상 이동 속도가 달라져 판단이 틀어진다. 그래서 오분류를 "맞게 봤으니 괜찮다" 로 넘기지 않고, 어느 분류 오류가 어느 판단 오류로 이어지는지 를 표로 만든다.
상태 오차 는 값의 문제여서 허용 오차 가 필요하다. 거리 오차 몇 미터까지 허용하는지, 속도 오차 몇 km/h 까지인지. 그 값은 요구사항에서 온다 — QA 가 정하지 않는다(모듈 31 레슨 3 원칙).
그리고 인지 출력에는 신뢰도 가 붙는 경우가 많다. QA 가 확인할 질문이 생긴다 — 판단 단계가 신뢰도를 쓰는가, 낮은 신뢰도 객체를 어떻게 다루는가. 신뢰도가 출력되는데 판단이 무시하고 있으면 그것 자체가 설계 지적이다.
센서 융합이 만드는 결함
인지는 보통 여러 센서의 결과를 합친다. 그 합치는 과정에서 고유한 결함이 나온다.
| 결함 | 상황 |
|---|---|
| 불일치 처리 | 카메라는 있다고 하고 레이더는 없다고 한다. 어느 쪽을 믿는가 |
| 시간 정렬 | 센서마다 측정 시각이 다르다. 맞추지 않으면 위치가 틀어진다 |
| 좌표 정렬 | 센서 장착 위치·각도가 다르다. 변환이 틀리면 위치가 어긋난다 |
| 한 센서 고장 | 성능이 저하되는가, 기능이 중단되는가, 모르고 계속 가는가 |
| 중복 객체 | 같은 대상을 두 개로 센다 |
두 번째가 특히 자주 결함을 낸다. 60 km/h 로 달리면 0.1초에 약 1.7 m 를 이동한다. 센서 간 시각이 0.1초 어긋나면 위치가 그만큼 틀어진다. 시간 동기와 허용 오차를 시험 전제로 문서화 하고, 일부러 틀어 놓은 조건을 시험에 넣는다 — 모듈 62 레슨 4, 모듈 41 레슨 7 에서 반복해 나온 시계 문제다.
네 번째가 안전에 직결된다. 센서 하나가 고장나거나 가려졌을 때(진흙, 눈, 역광) 시스템이 그것을 알고 기능을 축소하는가 가 핵심이다. 모르고 계속 가는 것이 가장 위험하고, 이것은 모듈 62 레슨 6 의 "값이 없음과 값이 정상을 구분해 표시하는가" 와 같은 구조다.
판단이 실패하는 고유한 모양
판단은 규칙과 상황의 간극 에서 실패한다.
| 유형 | 예 |
|---|---|
| 규칙 없는 상황 | 명세가 다루지 않은 조합이 실제로 발생한다 |
| 규칙 충돌 | 두 규칙이 상반된 결정을 요구한다 |
| 과도·과소 반응 | 결정 자체는 맞으나 정도가 부적절하다 |
| 결정 떨림 | 두 결정 사이를 빠르게 왕복한다 |
| 예측 오류 | 다른 차·사람의 다음 움직임을 잘못 예측한다 |
네 번째(결정 떨림) 가 실무에서 자주 보고되는 현상 이다. 차선 변경을 시작했다 취소하고 다시 시작하는 식이다. 원인은 보통 임계값 근처에서 입력이 흔들리는 것 이고, 대책은 이력(hysteresis) 이나 최소 유지 시간이다. QA 관점에서는 임계값 바로 근처의 입력을 만드는 시험 이 이것을 잡는다 — 전형적인 경계값 분석이다.
다섯 번째(예측 오류) 는 자율주행 특유의 어려움이다. 다른 교통 참여자의 의도를 예측하는 것은 본질적으로 불확실하고, 틀릴 수 있다는 전제로 설계 되어야 한다. QA 가 볼 것은 "예측이 맞았는가" 가 아니라 "예측이 틀렸을 때 안전한가" 다.
제어가 실패하는 고유한 모양
제어 단계는 물리와 만나는 곳 이어서 성격이 다르다.
- 추종 오차 — 목표 궤적을 얼마나 벗어나는가
- 지연 — 명령과 실제 반응 사이의 시간. 레슨... 모듈 46 레슨 9 의 영역과 맞물린다
- 진동 — 제어가 과하게 반응해 떨린다
- 포화 — 조향·제동 능력의 한계에 닿았을 때의 동작
- 상태 전환 — 자동과 수동 사이, 기능 작동과 해제 사이
마지막이 안전에 가장 직결된다. 기능이 해제될 때 운전자에게 전달되고 인수되는 과정 이 설계의 핵심이고, 시험 대상이다. 그리고 이 영역은 사람이 개입하는 부분 이어서 사용적합성과 겹친다 — 레슨 5(IVI) 와 모듈 49(사용성·접근성) 가 관련된다.
포화 도 중요하다. 물리적으로 불가능한 요구가 들어왔을 때(급격한 회피 등) 어떻게 되는가. 최대한 시도하는가, 불가능을 알고 다른 결정으로 되돌리는가.
세 단계를 어디서 시험하는가
xIL 계층 과 짝지으면 시험 배분이 정리된다. 모듈 46 레슨 5 의 구분을 쓴다.
| 시험 대상 | 적합한 환경 | 이유 |
|---|---|---|
| 판단 로직 | 모델·소프트웨어 수준 | 입력을 자유롭게 넣을 수 있다 |
| 인지 알고리즘 | 기록된 데이터 재생 | 같은 입력으로 반복 비교(레슨 3) |
| 인지 + 판단 결합 | 시뮬레이션 | 상황을 만들 수 있다(레슨 3) |
| 제어 | 하드웨어 포함 환경 | 물리·타이밍이 필요하다 |
| 전체 통합 | 실차(통제된 환경) | 대체 불가. 가장 비싸다 |
마지막 줄의 비용이 이 분야의 제약을 만든다. 실차 시험은 장소·차량·인력· 안전 조치가 필요하고, 받을 수 있는 시간이 제한된다. 그래서 아래 계층에서 최대한 걸러내고 실차에서는 확인만 하는 배분이 필수다 — 모듈 62 레슨 3, 모듈 63 레슨 4 에서 반복한 원칙이다.
안전 경계 — QA 가 하지 않는 일
분명히 해 둔다.
- QA 가 공도에서 자율주행 기능을 임의로 시험하지 않는다. 공도 시험은 허가· 자격·안전 조치·보험이 전제이고, 그 절차는 QA 가 개시하는 것이 아니다
- 시험장 주행 시험도 임의로 하지 않는다. 안전 운전자, 통제된 환경, 승인된 시나리오가 전제다. QA 의 자리는 시나리오 설계와 결과 분석 이고, 주행 조작은 해당 담당이 한다
- 안전 기능을 무력화한 구성으로 시험하지 않는다. 모듈 62 레슨 6 의 원칙이 그대로 적용된다
- 이 모듈의 실습 과제는 전부 설계·문서·데이터 분석 과제 다
그리고 공격 기법은 다루지 않는다. 센서를 속이는 기법, 통신 침입은 모듈 50 과 모듈 25 레슨 8 의 범위이고, 이 모듈의 주제는 기능이 의도대로 동작하는지의 검증 이다.
실무에서 왜 필요한가
자율주행·ADAS 개발 조직에서 QA 가 겪는 첫 좌절은 결함을 재현하고 특정할 수 없다는 것 이다. 주행 중에 일어난 일이고, 로그는 방대하고, 어느 단계의 문제인지 모른다. 그 상태에서 올린 결함 보고는 "확인 중" 으로 몇 주를 떠돈다.
단계를 가르는 절차를 가진 QA 는 다르게 보고한다. "제어 명령에 감속이 있고, 판단 로그에 감속 결정이 있고, 인지 출력에 그 시점 전방 15 m 에 객체가 있는데, 영상에는 그 위치에 아무것도 없습니다 — 인지 오검출입니다." 이 보고는 바로 담당에게 가고, 몇 주가 하루로 줄어든다.
그리고 이 역량은 경계 관측 가능성을 요구하는 근거 가 된다. 인지 출력과 판단 결정이 로그로 남지 않으면 위 보고를 쓸 수 없고, 그 사실을 설계 단계에서 지적할 수 있다. 개발이 진행된 뒤에 로그를 추가하는 것은 훨씬 비싸다.
세 번째 가치는 "결함이 아니라 명세 부족" 을 구분하는 것 이다. 세 단계 모두 명세대로인데 결과가 바람직하지 않은 경우를 "재현 불가" 나 "의도된 동작" 으로 닫아 버리면, 그 위험은 그대로 남는다. 그것이 SOTIF 의 영역이라는 것을 알고 다른 경로로 올리는 것이 QA 의 역할이다 — 레슨 2 로 이어진다.
채용시장에서의 위치
이 영역은 완성차·부품사의 자율주행·ADAS 개발 조직, 자율주행 솔루션 기업, 그리고 시뮬레이션·검증 도구 기업 의 QA·검증 엔지니어 자리다. 공고에는 "ADAS 검증", "자율주행 검증", "시나리오 기반 시험", "주행 데이터 분석", "SOTIF" 같은 말이 적힌다.
특징은 QA 와 시스템 엔지니어링의 경계 에 있다는 점이다. 순수 소프트웨어 시험만으로는 부족하고, 센서·제어·차량 동역학의 기초 개념이 필요하다. 그래서 진입 장벽이 있고, 넘으면 수요가 꾸준하다.
경쟁력이 되는 것은 셋이다. 첫째, 단계를 가르는 질문을 하는 능력 이다. 면접에서 "갑작스러운 제동이 보고되면 어떻게 접근하시겠습니까" 는 이것을 보는 질문이고, 절차를 단계로 답할 수 있으면 즉시 구분된다. 둘째, 미검출·오검출을 함께 다루는 태도 다. 셋째, "결함" 과 "명세 부족" 을 구분하는 능력 이다.