본문으로 건너뛰기
고급약 45분

코너 케이스 수집과 시나리오 커버리지 판정 — 무엇을 덮었다고 말할 수 있는가

시나리오는 무한히 만들 수 있고 자원은 유한하다. 파라미터 조합이 폭발하는 문제를 줄이는 방법, 코너 케이스를 운에 맡기지 않고 수집하는 경로, 그리고 "커버리지 N%" 라는 말이 무엇에 대한 비율인지 정의하는 일을 다룬다. 커버리지 숫자가 거짓 안심이 되는 경로를 함께 본다.

  • #코너케이스
  • #시나리오커버리지
  • #조합기법
  • #ODD커버리지
  • #탐색
  • #자율주행

개념

무한한 시나리오와 유한한 자원

레슨 3 에서 논리 시나리오 하나가 구체 시나리오를 사실상 무한히 만들 수 있다는 것을 봤다. 파라미터 10개에 각각 범위가 있으면 조합은 셀 수 없다.

그래서 이 분야의 중심 질문이 둘이 된다.

  1. 무엇을 고를 것인가 — 유한한 실행 횟수로 무엇을 덮을 것인가
  2. 덮었다고 무엇을 말할 수 있는가 — "커버리지" 가 무엇에 대한 비율인가

두 질문 모두 답이 자명하지 않다. 그리고 두 번째가 특히 위험하다 — 정의되지 않은 커버리지 숫자가 출시 판단의 근거로 쓰이는 일이 실제로 일어난다.

조합을 줄이는 세 가지 방법

모듈 3 레슨 5 의 조합 기법이 여기서 가장 큰 규모로 쓰인다. 자율주행 시나리오에서 쓰이는 방법은 세 가지이고, 섞어 쓴다.

1) 등가 분할 + 경계값. 각 파라미터의 범위를 의미 있는 구간 으로 쪼개고 경계를 고른다. 모듈 3 레슨 1 그대로다.

여기서 중요한 것은 구간을 무엇으로 쪼개는가 다. 균등 분할이 아니라 시스템 동작이 달라지는 지점 으로 쪼갠다.

파라미터나쁜 분할좋은 분할
자차 속도10 km/h 단위 균등기능 작동 하한, 제어 모드 전환점, ODD 상한 전후
초기 거리5 m 단위 균등제동 가능 거리, 경고 임계, 센서 유효 범위 경계
조도균등주/야 전환, 센서 동작 모드 전환, 역광 임계

좋은 분할을 하려면 시스템을 알아야 한다. 그래서 이 작업이 QA 와 설계의 공동 작업이 되고, 설계 문서에서 전환점을 찾아내는 것이 QA 의 일이다. 전환점이 문서에 없으면 질의 대상 이다.

2) 조합 기법. 모든 조합이 아니라 쌍 단위 조합 같은 기준으로 줄인다. 파라미터가 10개면 전수 조합은 폭발하지만 쌍 단위는 다룰 수 있는 수가 된다.

다만 자율주행에서 쌍 단위가 충분하지 않은 경우 가 있다. 레슨 2 에서 다중 조합이 영역 3 의 주 서식지 라고 했다 — 야간 + 비 + 곡선 + 공사처럼 셋 이상이 겹칠 때 성능이 급격히 떨어지는 경우가 남는다. 쌍 단위만 쓰면 그것을 놓친다.

실무적 해법은 층을 나누는 것 이다.

[전체 파라미터]  →  쌍 단위 조합으로 넓게
[위험 파라미터]  →  이 부분집합만 전수 또는 3-way 이상으로 깊게

위험 파라미터를 고르는 근거는 레슨 2 의 유발 조건 분석이다. 무엇을 깊게 볼지 고르는 것이 설계이고, 그 근거를 적는 것이 증거 다.

3) 탐색적 생성. 조합을 미리 정하지 않고 실패에 가까운 쪽으로 찾아 들어가는 방식이다. 안전 여유가 작아지는 방향으로 파라미터를 움직여 경계를 찾는다.

이 방식의 가치는 사람이 생각하지 못한 조합을 찾는 것 이고, 한계는 찾은 것이 현실적인지 따로 판단해야 한다는 것 이다. 물리적으로 불가능한 조합이나 ODD 밖 조합을 찾아내면 그것은 결함이 아니다. 현실성 필터 가 반드시 함께 있어야 한다.

세 방법의 역할 분담 이 이렇게 정리된다.

방법역할
등가 분할 + 경계값알려진 위험(영역 2) 을 체계적으로 덮는다
조합 기법넓은 범위를 효율적으로 훑는다
탐색적 생성미지 위험(영역 3) 을 파낸다

코너 케이스를 운에 맡기지 않는다

"코너 케이스" 는 흔히 드물고 어려운 상황 을 가리킨다. 문제는 드물다는 성질 때문에 우연히 마주치기를 기다리게 된다는 점이다. 그러면 발견은 운이 되고, 영역 3 은 줄어들지 않는다.

코너 케이스를 체계적으로 모으는 경로 가 다섯 있다.

경로무엇을 얻는가한계
유발 조건 분석설계에서 유도한 후보생각의 범위를 넘지 못한다
실주행 데이터 발굴실제로 있었던 어려운 장면기록에 없는 것은 없다
현장 보고·운영 신호사용자가 겪은 상황늦고 불완전하다
탐색적 생성경계 근처 조합현실성 판단이 필요하다
공개 사례·사고 분석다른 조직이 겪은 상황우리 시스템에 맞는지 번역 필요

두 번째가 가장 생산적이고 가장 저평가되어 있다. 이미 수백 시간의 주행 데이터가 있는데, 그 안의 어려운 장면을 찾아내는 작업 이 안 되어 있는 경우가 많다.

찾아내는 방법은 신호를 정해 걸러내는 것 이다.

발굴 신호어떤 장면을 찾는가
인지 신뢰도 급락알고리즘이 어려워한 구간
객체 추적 끊김놓쳤다 다시 찾은 구간
센서 간 불일치융합이 흔들린 구간
판단 결정 전환 빈발떨림이 있었던 구간
운전자 개입사람이 불안해 개입한 구간
급제동·급조향결과로 드러난 구간
기능 자동 해제시스템이 포기한 구간

다섯 번째(운전자 개입) 가 특히 값지다. 사고가 나지 않았지만 사람이 불안을 느낀 구간이고, 영역 3 의 직접적 단서 다. 이 데이터를 수집하고 분석하는 체계가 있으면 영역 3 탐색이 크게 효율화된다.

일곱 번째(기능 자동 해제) 도 중요하다. 시스템이 스스로 포기한 구간은 ODD 경계나 성능 한계에 닿은 지점이고, 왜 포기했는지 를 분석하면 레슨 2 의 ODD 경계 시험 설계로 직접 이어진다.

이 발굴을 파이프라인으로 돌리는 것 이 실무적 목표다. 새 주행 데이터가 들어올 때마다 신호로 자동 걸러내 후보를 쌓고, 사람이 검토해 기준 장면 집합 (레슨 3) 에 등록한다.

발굴한 장면을 시나리오로 바꾼다

실주행에서 찾은 장면은 구체 시나리오 하나 다. 그것만으로는 한 번만 쓸 수 있다. 가치를 늘리려면 논리 시나리오로 거꾸로 올린다.

[발굴한 실제 장면]  ──추상화──→  [논리 시나리오]  ──값 선택──→  [구체 시나리오 N개]
  한 번 일어난 일                 파라미터 + 범위              변형들

이 작업이 발굴의 가치를 몇 배로 만든다. 역광에서 정지 차량을 놓친 장면 하나를 논리 시나리오로 올리면, 역광 각도·차량 색·거리·속도 를 범위로 두고 변형을 만들 수 있다. 그러면 "이 한 장면에서 통과" 가 아니라 "이 조건 범위에서 통과" 가 된다.

추상화할 때 정할 것은 셋이다.

  1. 무엇이 본질인가 — 이 장면이 어려웠던 이유. 역광인가, 차량 색인가, 둘 다인가
  2. 무엇을 파라미터로 둘 것인가 — 본질과 관련된 축만
  3. 범위를 어디까지 — 발굴된 값 주변인가, ODD 전체인가

1번이 어렵고 중요하다. 잘못 판단하면 관련 없는 파라미터를 변형하느라 실행을 낭비한다. 그래서 왜 어려웠는지 를 레슨 1 의 단계 분리로 먼저 분석한다 — 인지가 놓친 것인지, 판단이 과했던 것인지.

"커버리지 N%" — 무엇에 대한 비율인가

이 레슨에서 가장 주의가 필요한 부분이다.

자율주행에서 "시나리오 커버리지 85%" 같은 말이 쓰이는데, 분모가 무엇인지 정의하지 않으면 아무 뜻이 없다. 가능한 분모가 여러 개 있고, 각각 다른 의미다.

커버리지 종류분모무엇을 말하는가한계
시나리오 목록계획한 시나리오 수계획을 얼마나 실행했는가계획 자체의 완전성은 모른다
ODD 파라미터ODD 구간의 조합ODD 공간을 얼마나 훑었는가조합 폭발. 균등 분할이면 의미가 약하다
기능 시나리오식별한 기능 시나리오 수유형을 얼마나 덮었는가유형 정의에 따라 달라진다
요구사항안전 요구사항 수요구를 얼마나 검증했는가요구에 없는 위험은 안 보인다
코드 구조분기·조건코드를 얼마나 실행했는가모듈 63 레슨 3 의 모든 한계가 적용된다
실주행 거리누적 주행 거리얼마나 달렸는가거리는 다양성을 뜻하지 않는다

마지막이 특히 오해된다. 같은 고속도로를 100만 km 달리는 것과 다양한 조건에서 1만 km 달리는 것은 전혀 다른 증거다. 거리를 커버리지로 쓰면 쉬운 조건을 많이 달려 숫자를 올릴 수 있다. 모듈 48 레슨 5 의 지표 오염과 같은 구조다.

첫 번째의 한계도 분명히 해야 한다. "계획한 시나리오 1,200건 중 1,150건 실행 = 96%" 는 계획을 지켰다는 뜻 이고, 위험을 덮었다는 뜻이 아니다. 계획에 없는 위험은 분모에 없으므로 영원히 100% 로 보인다. 영역 3 은 분모에 들어갈 수 없다 — 레슨 2 에서 "영역 3 이 몇 % 남았다고 말할 수 없다" 고 한 것과 같은 이유다.

그래서 어떻게 보고하는가

단일 숫자로 보고하지 않는다. 여러 커버리지를 각각의 분모와 함께 보고하고, 덮이지 않은 영역을 명시한다.

보고 양식의 골격이다.

[시나리오 실행 현황]
  계획 N건 중 실행 M건, 무효 K건 (레슨 3 의 무효 판정)
  → 무효를 제외한 유효 실행 수를 분모로 쓴다
 
[ODD 파라미터 범위 현황]
  파라미터별로 "어느 구간을 실행했고 어느 구간을 실행하지 않았는가"
  → 비율이 아니라 지도로 보인다
 
[요구사항 검증 현황]
  안전 요구사항별 검증 상태와 증거 위치
 
[영역 3 탐색 현황]
  탐색 방법, 범위, 새로 식별한 위험 시나리오 수, 처리 결과
  → 비율로 쓰지 않는다 (레슨 2)
 
[덮이지 않은 영역과 남은 가정]
  실행하지 않은 구간과 그 이유, 전제한 조건

두 번째 항목(파라미터 지도) 이 비율보다 유용하다. "속도 60~80 구간은 실행하지 않았음" 이 "커버리지 85%" 보다 훨씬 많은 정보를 준다. 그리고 실행하지 않은 구간이 위험한 쪽인지 를 바로 볼 수 있다.

마지막 항목을 반드시 둔다. 모듈 63 레슨 2 의 목표-증거 매핑, 모듈 40 레슨 8 의 요구-증거 매핑에서 반복된 원칙 — 비어 있는 곳을 명시하는 것이 증거의 신뢰를 만든다. 100% 라고 적힌 보고서보다 "이 범위는 덮지 않았고 그 이유는 이것이다" 가 심사와 출시 판단에서 더 강하다.

커버리지가 거짓 안심이 되는 경로

정리하면 다섯이다. 각각을 막는 장치가 있다.

경로막는 장치
무효 시나리오를 통과로 집계전제 조건 검사와 무효 판정(레슨 3)
분모가 계획이라 계획 밖 위험이 안 보임영역 3 탐색을 별도로 보고
균등 분할로 의미 없는 구간을 많이 덮음동작 전환점 기준 분할
쉬운 조건을 많이 실행해 숫자를 올림파라미터 지도로 분포를 보인다
거리·실행 수를 다양성으로 읽음조건 다양성을 별도 지표로

세 번째가 미묘하고 흔하다. 속도를 10 km/h 단위로 균등 분할하면 구간 수가 많아지고, 쉬운 구간을 다 실행하면 커버리지가 높게 나온다. 실제 위험은 전환점 근처 에 있고, 그것은 한두 구간뿐이다. 구간 수가 아니라 위험 가중 으로 봐야 한다.

가중을 어떻게 줄지는 위험 분석 결과 에서 온다 — 기능안전·SOTIF 쪽 분석의 출력이다. QA 가 임의로 가중을 정하지 않고, 분석 결과를 커버리지 설계에 반영 하는 것이 옳은 순서다.

커버리지를 목표로 삼지 않는다

모듈 63 레슨 3 에서 세운 원칙이 여기서도 적용되고, 자율주행에서 특히 중요하다.

옳은 순서

  1. 위험 분석과 유발 조건에서 시나리오를 만든다
  2. 실행하고 커버리지를 측정 한다
  3. 빈 곳을 왜 비었는지 분석 한다

틀린 순서

  1. 커버리지 지표를 정한다
  2. 그 숫자를 올리는 시나리오를 만든다

두 번째 방식의 문제는 모듈 63 레슨 3 과 같다 — 숫자는 오르고 위험은 남는다. 그리고 자율주행에서는 더 나쁘다. 쉬운 조건의 시나리오를 대량 생성해 커버리지를 올리는 것이 기술적으로 쉽기 때문이다.

빈 곳의 분석은 네 분류로 한다.

빈 곳의 의미처리
아직 실행하지 않았다실행 계획에 넣는다
실행할 수 없다(환경 한계)다른 계층에서 확인하거나 남는 위험으로 기록
ODD 밖이다근거를 적고 제외
물리적으로 불가능하다근거를 적고 제외

두 번째가 정직하게 기록되어야 한다. 시뮬레이터가 재현하지 못하는 조건, 실차로만 가능한데 시간이 없는 조건. 이것을 "덮었다" 로 처리하면 거짓이고, 남는 위험으로 기록 하면 조직이 판단할 수 있다.

실무에서 왜 필요한가

자율주행 검증 조직에서 커버리지 숫자가 출시 판단에 쓰인다. 그리고 그 숫자가 무엇에 대한 비율인지 정의되지 않은 채 쓰이는 일이 흔하다. "시나리오 커버리지 95%" 가 보고되고, 경영 판단이 그것을 근거로 내려진다.

QA 가 할 가장 큰 기여는 분모를 명시하게 만드는 것 이다. "무엇에 대한 95% 입니까" 라는 질문 하나가 보고의 성격을 바꾼다. 그리고 단일 숫자 대신 파라미터 지도와 덮이지 않은 영역 을 보이면, 판단의 품질이 달라진다.

두 번째 기여는 실주행 데이터 발굴 이다. 조직에 이미 수백 시간의 데이터가 있는데 어려운 장면을 체계적으로 찾아내는 작업이 안 되어 있는 경우가 많다. 신호를 정해 걸러내는 파이프라인을 만들면 영역 3 탐색의 효율이 크게 오르고, 그 성과는 바로 보인다.

세 번째는 발굴한 장면을 논리 시나리오로 올리는 것 이다. 한 장면에서 통과한 것과 그 조건 범위에서 통과한 것은 전혀 다른 증거다. 이 추상화 작업은 도메인 이해와 시험 설계가 함께 필요해서, QA 가 하기 가장 적합하다.

네 번째는 균등 분할을 전환점 기준 분할로 바꾸는 것 이다. 이것만으로 같은 실행 횟수에서 발견되는 결함이 늘어난다. 전환점을 설계 문서에서 찾고, 없으면 질의로 올리는 작업이 전제다.

채용시장에서의 위치

이 영역은 자율주행 검증 공고의 "시나리오 커버리지", "코너 케이스 발굴", "검증 전략" 에 해당한다. 그리고 검증 리드·시니어 자리의 핵심 역량이다 — 개별 시험을 수행하는 것과 무엇을 얼마나 덮었는지 설명하는 것 은 다른 수준의 일이다.

면접에서 가르는 질문이 분명하다. "커버리지를 어떻게 정의하십니까." 단일 숫자로 답하면 약하고, 분모의 종류를 열거하고 각각의 한계를 말하면서 파라미터 지도와 덮이지 않은 영역을 함께 보고한다 고 답하면 즉시 구분된다. 그다음 질문은 보통 "코너 케이스를 어떻게 모읍니까" 이고, 실주행 데이터 발굴 신호를 들 수 있으면 실무자로 읽힌다.

그리고 이 역량은 AI 시스템 검증 전반 으로 전이된다. "무엇을 덮었다고 말할 수 있는가" 는 의료 AI(모듈 66), LLM 평가(모듈 18b), AI 품질(모듈 36·57) 에서 같은 모양으로 나타나는 질문이다.

실습 과제

ODD 수치·전환점·위험 가중은 "요구사항·설계 문서·위험 분석 결과에서 확인 (원문 확인)" 으로 표시 한다. 실습은 설계·문서·데이터 분석 과제다.

과제 1 — 전환점 기준 분할 (30분)

  1. 레슨 3 의 논리 시나리오에서 파라미터 6개를 고른다
  2. 각 파라미터를 균등 분할 로 쪼갠다. 구간 수를 센다
  3. 같은 파라미터를 동작 전환점 기준 으로 다시 쪼갠다. 전환점을 찾기 위해 설계 문서에서 무엇을 봐야 하는지 적는다(기능 작동 범위, 제어 모드, 센서 동작 모드, 경고 임계 등). 수치는 원문 확인 표시
  4. 두 분할의 구간 수와 위험 구간이 어디에 있는지 를 비교한다. 균등 분할의 문제를 구체적으로 적는다
  5. 설계 문서에 전환점이 없는 파라미터를 찾아 질의 목록 으로 만든다

과제 2 — 층을 나눈 조합 설계 (35분)

  1. 파라미터 10개를 설정하고 전수 조합 수 를 계산한다
  2. 쌍 단위 조합 으로 줄인 수를 계산한다. 줄어드는 비율을 적는다
  3. 레슨 2 의 유발 조건 분석에서 위험 파라미터 4개 를 골라 근거를 적는다
  4. 층을 나눈 설계를 만든다 — 전체는 쌍 단위, 위험 부분집합은 3-way 이상. 총 실행 수를 계산하고 전수 대비 비율을 적는다
  5. 쌍 단위만으로 놓치는 경우 를 구체적으로 하나 만든다 (셋 이상 겹쳐야 드러나는 조합). 레슨 2 의 "다중 조합이 영역 3 의 주 서식지" 와 연결해 설명한다
  6. 무엇을 깊게 볼지 고른 근거를 증거로 남기는 양식 을 만든다

과제 3 — 탐색적 생성과 현실성 필터 (25분)

  1. 탐색적 생성의 목표 함수를 정한다 — 무엇이 작아지는 방향으로 찾아 들어가는가 (안전 여유, 최소 거리, 충돌 시간 등). 값은 원문 확인 표시
  2. 탐색으로 찾은 조합 중 현실적이지 않은 것 의 예를 5개 만든다 (물리적 불가, ODD 밖, 교통 규칙상 불가능 등)
  3. 현실성 필터 를 설계한다. 판정 기준과 근거 문서를 적는다
  4. 필터가 없으면 생기는 일을 한 문단 쓴다 — 결함이 아닌 것을 결함으로 올리고 신뢰를 잃는 경로
  5. 세 방법(등가 분할·조합 기법·탐색적 생성) 의 역할 분담을 표로 정리하고 우리 상황의 배분을 정한다

과제 4 — 실주행 데이터 발굴 파이프라인 (35분)

  1. 본문의 일곱 발굴 신호 각각에 대해 판정 가능한 조건 을 쓴다. 임계값은 원문 확인 표시하고, 정하는 방법을 적는다
  2. 신호를 3개 더 추가한다
  3. 운전자 개입 신호를 가장 공들여 설계한다. 개입의 종류를 가르고 (조향·제동·기능 해제), 각각이 무엇을 뜻하는지 적는다. 왜 이것이 영역 3 의 직접적 단서인지 한 문단 쓴다
  4. 기능 자동 해제 신호를 분석해 ODD 경계 시험으로 연결하는 절차를 쓴다 (레슨 2 와 연결)
  5. 발굴 파이프라인 을 설계한다 — 새 데이터 유입 → 신호 적용 → 후보 생성 → 사람 검토 → 기준 장면 집합 등록(레슨 3). 각 단계의 입출력과 담당을 적는다
  6. 후보가 너무 많이 나올 때 줄이는 방법을 적는다(우선순위 기준)
  7. 주행 데이터·영상 취급 절차(권한·가명화·보관) 를 전제로 명시한다

과제 5 — 장면을 논리 시나리오로 올리기 (30분)

  1. 발굴한 장면 하나를 상상해 구체적으로 기술한다(역광에서 정지 차량 미검출 등)
  2. 레슨 1 의 단계 분리로 왜 어려웠는지 분석한다. 인지인가 판단인가, 어느 유형의 실패인가
  3. 무엇이 본질인가 를 정한다. 후보를 3개 적고 하나를 고르고 근거를 쓴다
  4. 본질과 관련된 축만 파라미터로 두고 범위를 정한다. 관련 없는 축을 변형하면 실행이 낭비되는 이유를 적는다
  5. 범위를 어디까지 둘지 정한다(발굴 값 주변 / ODD 전체) 와 근거
  6. 논리 시나리오에서 구체 시나리오 10개 를 만든다
  7. "이 한 장면에서 통과" 와 "이 조건 범위에서 통과" 의 증거력 차이를 한 문단 쓴다

과제 6 — 커버리지 정의와 보고 양식 (35분)

이 과제가 이 레슨의 핵심 산출물이다.

  1. 본문의 여섯 커버리지 종류를 자기 말로 다시 쓰고, 각각의 한계 를 적는다
  2. 실주행 거리를 커버리지로 쓰면 안 되는 이유 를 한 문단 쓴다. 쉬운 조건을 많이 달려 숫자를 올리는 경로를 구체적으로 그린다
  3. "계획 대비 실행률" 이 위험을 덮었다는 뜻이 아닌 이유 를 적는다. 영역 3 이 분모에 들어갈 수 없다는 것과 연결한다(레슨 2)
  4. 본문의 보고 양식 골격을 실제 양식 으로 만든다. 다섯 절을 모두 포함하고, 각 절에 들어갈 항목을 구체적으로 적는다
  5. 파라미터 지도 를 실제로 그린다. 과제 1 의 파라미터로, 실행한 구간과 하지 않은 구간을 표시한다. 비율보다 유용한 이유를 적는다
  6. 덮이지 않은 영역과 남은 가정 절을 공들여 쓴다. 100% 라고 적힌 보고서보다 강한 이유를 한 문단 정리한다
  7. 가상의 결과로 양식을 채워 한 장 보고서를 완성한다

과제 7 — 거짓 안심 경로와 빈 곳 분석 (25분)

  1. 본문의 다섯 거짓 안심 경로 각각에 대해 우리 조직에서 실제로 일어날 수 있는 형태 를 적는다
  2. 각 경로를 막는 장치를 우리 상황에 맞춰 구체화한다
  3. 균등 분할로 숫자를 올리는 경로 를 수치 예로 보인다. 구간 수가 아니라 위험 가중으로 봐야 하는 이유를 적는다
  4. 위험 가중을 어디서 가져올지 적는다(위험 분석 결과). QA 가 임의로 정하지 않는 이유를 쓴다
  5. 빈 곳의 네 분류로 판정 절차 를 만든다. 특히 "실행할 수 없다" 를 정직하게 기록하는 양식을 만들고, "덮었다" 로 처리하면 안 되는 이유를 적는다
  6. 커버리지를 목표로 삼지 않는 순서(위험 → 시나리오 → 측정 → 분석) 를 절차로 쓴다. 역순의 문제를 자율주행 특유의 이유와 함께 적는다

자가 체크리스트

  • 시나리오가 사실상 무한하고 자원이 유한하다는 조건에서 두 질문이 나온다는 것을 안다
  • 정의되지 않은 커버리지 숫자가 출시 판단에 쓰이는 위험을 설명할 수 있다
  • 조합을 줄이는 세 방법과 각각의 역할 분담을 말할 수 있다
  • 균등 분할이 아니라 동작 전환점으로 쪼개야 하는 이유를 설명할 수 있다
  • 전환점을 설계 문서에서 찾고 없으면 질의로 올릴 수 있다
  • 쌍 단위 조합만으로는 다중 조합을 놓친다는 것을 안다
  • 층을 나눈 조합 설계(전체는 쌍 단위, 위험 부분집합은 더 깊게) 를 할 수 있다
  • 무엇을 깊게 볼지 고른 근거가 증거가 된다는 것을 안다
  • 탐색적 생성의 가치와, 현실성 필터가 반드시 필요한 이유를 안다
  • 코너 케이스를 운에 맡기면 영역 3 이 줄지 않는다는 것을 설명할 수 있다
  • 코너 케이스 수집 경로 다섯 가지를 들 수 있다
  • 실주행 데이터 발굴이 가장 생산적이면서 저평가되어 있다는 것을 안다
  • 발굴 신호 일곱 가지를 들 수 있다
  • 운전자 개입이 영역 3 의 직접적 단서인 이유를 설명할 수 있다
  • 기능 자동 해제 구간 분석이 ODD 경계 시험으로 이어지는 것을 안다
  • 발굴을 파이프라인으로 돌려 기준 장면 집합에 등록하는 흐름을 설계할 수 있다
  • 발굴한 장면을 논리 시나리오로 올려야 가치가 몇 배가 되는 이유를 안다
  • 추상화에서 "무엇이 본질인가" 를 먼저 판단해야 하는 이유를 안다
  • 커버리지의 분모 여섯 종류와 각각의 한계를 들 수 있다
  • 실주행 거리가 다양성을 뜻하지 않는다는 것을 설명할 수 있다
  • "계획 대비 실행률" 이 위험을 덮었다는 뜻이 아니며 영역 3 은 분모에 없다는 것을 안다
  • 단일 숫자 대신 파라미터 지도와 덮이지 않은 영역을 보고해야 함을 안다
  • 파라미터 지도가 비율보다 유용한 이유를 설명할 수 있다
  • "덮이지 않은 영역과 남은 가정" 이 100% 보고서보다 강한 이유를 안다
  • 거짓 안심 다섯 경로와 각각을 막는 장치를 짝지을 수 있다
  • 균등 분할로 숫자를 올리는 경로를 알고 위험 가중으로 봐야 함을 안다
  • 위험 가중이 위험 분석 결과에서 와야 하며 QA 가 임의로 정하지 않음을 안다
  • 커버리지를 목표로 삼지 않는 순서를 설명할 수 있다
  • 자율주행에서 쉬운 시나리오 대량 생성으로 숫자를 올리기 쉽다는 것을 안다
  • 빈 곳의 네 분류와, "실행할 수 없다" 를 정직하게 기록해야 하는 이유를 안다

흔한 실수

커버리지를 단일 숫자로 보고한다. 분모가 무엇인지 정의되지 않으면 아무 뜻이 없고, 그 숫자로 출시 판단이 내려진다.

계획 대비 실행률을 "위험을 덮었다" 로 읽는다. 계획에 없는 위험은 분모에 없으므로 영원히 100% 로 보인다.

실주행 거리를 커버리지로 쓴다. 같은 고속도로를 100만 km 달리는 것과 다양한 조건에서 1만 km 달리는 것은 전혀 다른 증거다.

파라미터를 균등 분할한다. 쉬운 구간이 많아져 숫자가 오르고, 실제 위험은 전환점 근처에 남는다.

위험 가중을 QA 가 정한다. 가중은 위험 분석 결과에서 와야 한다. 임의로 정하면 설계와 어긋난다.

쌍 단위 조합으로 충분하다고 본다. 자율주행의 위험은 셋 이상 겹칠 때 드러나는 경우가 많다. 위험 부분집합은 더 깊게 본다.

탐색적 생성 결과를 현실성 필터 없이 올린다. 물리적으로 불가능한 조합을 결함으로 보고하면 신뢰를 잃는다.

코너 케이스를 우연히 마주치기를 기다린다. 발견이 운이 되고 영역 3 은 줄지 않는다. 체계적 수집 경로를 만든다.

이미 가진 주행 데이터를 발굴하지 않는다. 가장 생산적인 경로인데 안 하고 있는 경우가 많다. 신호를 정해 걸러낸다.

운전자 개입 데이터를 수집하지 않는다. 사고가 나지 않았지만 사람이 불안을 느낀 구간이고, 영역 3 의 직접적 단서다.

기능 자동 해제 구간을 분석하지 않는다. 시스템이 스스로 포기한 지점이고, ODD 경계 시험의 재료다.

발굴한 장면을 그 장면으로만 쓴다. 논리 시나리오로 올리면 가치가 몇 배가 된다. "한 장면 통과" 와 "조건 범위 통과" 는 다른 증거다.

추상화에서 본질을 잘못 잡는다. 관련 없는 파라미터를 변형하느라 실행을 낭비한다. 왜 어려웠는지를 단계 분리로 먼저 분석한다.

빈 곳을 "덮었다" 로 처리한다. 실행할 수 없는 조건을 숨기면 거짓이 된다. 남는 위험으로 기록하면 조직이 판단할 수 있다.

커버리지를 목표로 삼는다. 숫자를 올리는 시나리오를 만들게 되고, 쉬운 조건 대량 생성이 기술적으로 쉬워서 특히 위험하다. 위험 → 시나리오 → 측정 → 분석 순서를 지킨다.

참고 자료

  • ISO 21448 원문 — 미지 위험 축소와 검증·타당성 확인에 요구되는 수준. 커버리지 논증의 근거다(조항 — 원문 확인)
  • 사내 위험 분석 결과(기능안전·SOTIF 쪽) — 위험 가중과 위험 파라미터 선정의 근거. QA 가 임의로 정하지 않는다
  • 우리 시스템의 설계 문서 — 기능 작동 범위, 제어 모드 전환, 센서 동작 모드, 경고 임계. 전환점 기준 분할의 출처다(원문 확인)
  • ODD 명세 — 파라미터 지도의 축과 범위
  • 조직의 주행 데이터·영상 취급 절차 — 발굴 작업의 전제. 접근 권한·가명화· 보관·반출이 규정과 법령에 따라 정해진다
  • 모듈 65 레슨 2 — SOTIF: 영역 3 과 유발 조건, "비율로 말할 수 없다"
  • 모듈 65 레슨 3 — 시나리오 추상 수준, 무효 판정, 기준 장면 집합
  • 모듈 3 레슨 1 — 경계값 분석: 전환점 기준 분할의 기법
  • 모듈 3 레슨 5 — 조합 기법: 층을 나눈 조합 설계의 기법
  • 모듈 63 레슨 3 — 구조 커버리지: 커버리지를 목표로 삼지 않는 원칙과 빈 곳 분류
  • 모듈 48 레슨 5 — 지표 오염: 거리·실행 수가 왜곡되는 같은 구조
  • 모듈 40 레슨 8·모듈 63 레슨 2 — 요구-증거 매핑: 비어 있는 곳을 명시하는 원칙
  • 모듈 66·모듈 18b·모듈 36·57 — AI 검증에서 "무엇을 덮었다고 말할 수 있는가"

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

ODD — 운행 설계 영역
이 기능이 제대로 동작한다고 보장하는 조건의 범위 — 날씨, 도로 종류, 속도 같은 것.
QA — 품질보증
만든 것이 쓸 만한지 확인하고, 애초에 덜 망가지게 만드는 방법을 정하는 일. "테스트"는 그 일의 일부다.
SOTIF — 의도된 기능의 안전
부품이 고장나지 않았는데도 위험해지는 경우를 다루는 분야. 센서가 상황을 잘못 알아보는 식이다.
AI — 인공지능
사람이 규칙을 일일이 적지 않아도 데이터에서 규칙을 찾아 판단하는 소프트웨어.
LLM — 대규모 언어 모델
엄청난 양의 글을 학습해 말을 이어 쓰는 모델. 대화형 인공지능의 바탕이다.
ISO — 국제표준화기구
여러 나라가 모여 "이건 이렇게 하자"를 문서로 정하는 단체. 그 문서 자체를 번호로 부른다.

용어집 전체 보기