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

도구 신뢰 수준과 기능안전 시험성적서 — TCL 판정부터 증거 묶음 한 건을 닫기까지

증거를 만든 도구를 믿을 수 없으면 증거도 믿을 수 없다. ISO 26262-8의 도구 영향(TI)·오류 검출(TD)·신뢰 수준(TCL) 판정과 적격성 확인 방법을 사용 사례 단위로 적용하고, 레슨 1~5의 산출물을 시험소가 발행하는 기능안전 시험성적서 한 건 — 범위, 검토한 증거, 독립 재수행, 표본 시험, 판정과 의견의 구분, 한계 — 으로 묶는다.

  • #ISO26262-8
  • #도구적격성
  • #TCL
  • #기능안전
  • #시험성적서
  • #증거

개념

이 레슨이 닫는 두 가지

레슨 3에서 철도·61508 계열의 도구 등급(T1~T3)을 봤다. 자동차 쪽인 ISO 26262는 같은 문제를 다른 방식 으로 푼다. 도구를 종류로 분류하지 않고, 그 도구를 어떻게 쓰는가(사용 사례) 로 신뢰 수준을 판정한다. 이 레슨의 앞 절반이 그것이다.

뒤 절반은 모듈 전체를 닫는다. 레슨 1의 기법 선택표, 레슨 2의 단위 검증 증거, 레슨 3의 역할 배치표와 도구 등록부, 레슨 4·5의 MISRA 준수 체계 — 이 산출물들이 시험소에 들어가 성적서 한 건 으로 나오기까지 무엇이 판정되고 무엇이 판정되지 않는지 정리한다.

도구 분류가 아니라 사용 사례 분류

ISO 26262-8의 11절은 소프트웨어 도구 사용에 대한 신뢰를 다룬다. 출발점은 도구 목록이 아니라 사용 사례 목록 이다. 같은 정적 분석기라도 이렇게 쓰임이 다를 수 있다.

사용 사례 U1  정적 분석기로 MISRA 위반을 찾고, 결과를 리뷰어가 코드 리뷰에서 다시 확인한다
사용 사례 U2  정적 분석기의 "위반 0" 결과를 근거로 해당 규칙의 수동 리뷰를 생략한다

U1에서 도구가 위반을 놓쳐도 리뷰가 잡을 기회가 있다. U2에서는 도구가 놓치면 아무도 잡지 못한다. 같은 도구가 두 사용 사례에서 다른 신뢰 수준을 받는다. 모듈 25 레슨 5에서 "이 도구를 썼기 때문에 그 검증 활동을 생략했다고 말하는 순간 그 도구는 자격을 갖춰야 한다"고 했던 원칙이 여기서 판정 절차가 된다.

TI · TD · TCL

사용 사례마다 두 가지를 판정한다.

도구 영향(Tool Impact, TI)

등급뜻
TI1도구가 오동작해도 안전 관련 요소에 오류를 넣거나, 오류를 놓치게 만들 가능성이 없다
TI2TI1이 아닌 모든 경우

도구 오류 검출(Tool error Detection, TD)

등급뜻
TD1도구의 오동작과 그 잘못된 출력이 예방·검출될 것이라는 높은 확신이 있다
TD2중간 수준의 확신
TD3그 밖의 모든 경우

두 값으로 도구 신뢰 수준(Tool Confidence Level, TCL) 이 정해진다.

            TD1     TD2     TD3
TI1        TCL1    TCL1    TCL1
TI2        TCL1    TCL2    TCL3

TCL1은 적격성 확인이 필요 없고, TCL2·TCL3는 필요하다. 한 도구에 사용 사례가 여럿이면 가장 높은 TCL이 그 도구의 요구 수준이 된다.

앞의 두 사용 사례에 적용하면 이렇다.

사용 사례TITDTCL이유
U1 리뷰로 재확인TI2TD1TCL1놓칠 수는 있지만 후속 리뷰가 높은 확신으로 검출
U2 리뷰 생략 근거TI2TD3TCL3놓치면 후속 검출 수단이 없음

여기서 실무적인 선택지가 생긴다. U2를 U1으로 바꾸면 적격성 확인 비용이 사라진다. 반대로 리뷰 공수를 줄이려고 도구에 판단을 위임하면 적격성 확인 비용이 생긴다. 이 교환을 비용으로 비교하는 것이 도구 전략 회의의 실체다.

오래된 백서나 교육 자료 중에는 규격 초안(DIS) 시기의 표기(TI0/TI1, TD4 등)를 쓴 것이 있다. 발행된 ISO 26262-8:2018의 표기와 다르므로, 인용할 때는 발행본의 표기로 옮긴다.

TD를 정할 때 무엇을 근거로 삼는가

TD 판정은 도구 밖의 확인 수단까지 고려한다. 도구 자체의 내부 감시 기능뿐 아니라, 개발 프로세스 안의 리뷰·시험·다른 도구가 그 오류를 잡을 수 있는지를 본다.

도구사용 사례도구 오류 예후속 검출 수단TD 판단의 근거
커버리지 측정기분기 커버리지 달성 판정밟지 않은 분기를 밟았다고 보고레슨 3의 알려진 답 샘플로 정기 확인, 미도달 분석 리뷰샘플 확인 주기와 범위
크로스 컴파일러타깃 실행 코드 생성최적화로 잘못된 코드 생성타깃(PIL·HIL)에서 요구사항 기반 시험 재실행시험 커버리지와 최적화 수준 동일성
단위 시험 하니스시험 실행과 합부 판정실패를 성공으로 기록결과 원자료(로그) 무작위 재확인재확인 표본 크기
요구사항 관리 도구추적 매트릭스 생성추적 링크 누락추적 매트릭스 수동 리뷰리뷰 방식

두 번째 줄이 레슨 2와 연결된다. 레슨 2에서 계측 빌드와 비계측 빌드를 대조 하라고 한 것, 호스트와 타깃의 차이를 분석하라고 한 것이 컴파일러 사용 사례의 TD 근거 로 다시 쓰인다. 시험 활동이 도구 신뢰의 증거가 되고, 도구 신뢰가 시험 결과의 증거가 되는 순환 구조 다. 그래서 TD 근거로 드는 시험이 그 도구에 의존하지 않는지 를 확인해야 한다. 같은 컴파일러로 빌드한 코드를 같은 환경에서만 시험했다면 컴파일러 오류를 검출한다고 주장하기 어렵다.

적격성 확인 방법 — 넷 중 무엇을 고르는가

TCL2·TCL3 도구에 대해 규격은 네 가지 적격성 확인 방법을 제시하고, ASIL에 따라 권고 강도가 달라진다.

방법내용실무 평가
1a 사용 경험에 의한 신뢰비슷한 사용 조건에서 안전 관련 오동작 없이 쓰인 기록기록 요건이 까다롭고, 높은 ASIL·TCL로 갈수록 권고 강도가 낮아진다
1b 도구 개발 프로세스 평가도구가 적절한 표준에 따른 프로세스로 개발됐는지 평가상용 도구에서 벤더 인증서로 자주 쓰인다
1c 소프트웨어 도구 확인(validation)사용 사례의 요구에 대해 도구가 올바르게 동작함을 시험으로 입증가장 흔히 쓰이는 방법 중 하나. 사내 환경·설정에서 수행해야 의미가 있다
1d 안전 표준에 따른 개발도구 자체를 안전 표준에 따라 개발상용 도구에서는 드물다

해설 자료들은 실무에서 1b와 1c가 가장 많이 쓰인다고 평가한다. 여기서 흔한 오해 하나를 짚어야 한다. 벤더가 판매하는 "적격성 확인 키트(qualification kit)"는 적격성 확인 자체가 아니다. 키트는 1c를 수행하기 위한 시험 스위트와 문서 틀이고, 그것을 우리 사용 사례·우리 도구 버전·우리 설정·우리 환경에서 실행한 기록 이 증거다. 모듈 34 레슨 3에서 칩 제조사의 보안 기능이 완제품 인증을 대신하지 못한다고 했던 구조와 같다.

적격성 확인 산출물은 대체로 네 가지로 정리된다 — 도구 적격성 확인 계획, 도구 문서, 도구 분류 분석 (TI·TD·TCL), 도구 적격성 확인 보고서. 레슨 3의 도구 등록부에 "TCL" 열과 "분류 분석 문서 ID" 열을 더하면 두 계보(61508 T1~T3와 26262 TCL)를 한 장에서 관리할 수 있다.

| 도구 | 버전 | 사용 사례 | T 등급(61508/62279) | TI | TD | TCL | 적격성 방법 | 보고서 ID | 기준선 |

기능안전 시험성적서 — 무엇을 판정했는가를 먼저 적는다

이제 모듈 전체를 성적서 한 건으로 묶는다. 레슨 1에서 과정 규격(61508-3·26262-6·62279)으로 시험소가 하는 일을 증거 적합성 검토·독립 재수행·표본 시험 의 세 갈래로 나눴다. 성적서는 이 세 갈래를 표지에서부터 구분해 드러내야 한다.

1. 표지         규격·파트·판 (예: ISO 26262-6:2018, MISRA C:2012 + AMD)
                대상 소프트웨어: 이름·버전·빌드 해시 · 목표 등급(ASIL/SIL)
2. 시험 범위     수행한 갈래와 수행하지 않은 것
                ✔ 증거 적합성 검토 (목록은 4장)
                ✔ 독립 재수행: 정적 분석, 단위 구조 커버리지 측정
                ✔ 표본 시험: 요구사항 표본 N개
                ✘ 기능안전 평가(assessment)·확인 — 이 성적서의 범위 아님
3. 판정 기준     목표 등급별 표(레슨 1·2), 준수 체계(레슨 5), 결정 규칙
4. 검토한 증거   문서 ID·버전 목록 (기법 선택표, 단위 검증 명세, 역할 배치표, 도구 등록부, GEP·GRP·편차·GCS …)
5. 재수행 결과   도구·버전·설정·TCL, 제조사 결과와의 대조표, 차이 원인
6. 표본 시험     표본 추출 방법, 요구사항 → 케이스 → 실행 결과
7. 발견 사항     판정에 영향을 주는 것 / 개선 권고 — 구분해서
8. 의견과 해석   (있다면) 권한자·근거와 함께, 판정과 분리
9. 한계         환경(호스트·시험대 범위), 채택 코드 제외, 표본의 대표성

2번의 "수행하지 않은 것" 칸이 이 성적서의 신뢰를 만든다. 모듈 32 레슨 7에서 과정 규격 성적서의 판정 대상이 제품이 아니라 증거 라고 했다. 그리고 규격이 따로 정한 기능안전 평가(assessment) 는 독립 평가자의 활동이지 시험 성적서가 아니다. 성적서가 그것을 대신하는 것처럼 읽히면 레슨 3에서 본 평가자 독립성 구조가 무너진다.

발견 사항의 두 층과 의견의 자리

7번 발견 사항은 두 층으로 나눈다.

층예성적서에서의 무게
판정에 영향ASIL C 모듈의 분기 커버리지 미도달 17건 중 근거 없는 5건 / 필수 MISRA 규칙 위반 1건 / 검증자·설계자 겸임 흔적해당 항목 판정을 "부적합" 또는 "판정 보류"로 만든다
개선 권고편차 허가 사유가 일반적임 / 도구 등록부의 버전 표기가 CI 설정과 다른 형식판정은 유지되며 참고로 기록

"판정 보류"라는 칸을 두는 것이 중요하다. 제조사에게 추가 증거를 요청해야 판정할 수 있는 항목을 억지로 적합·부적합으로 가르면, 모듈 31 레슨 6에서 본 재발행 이 뒤따른다.

8번 의견은 모듈 32 레슨 6의 17025 7.8.7을 따른다. "이 수준이면 ASIL C 프로젝트로 충분하다고 판단된다" 같은 문장은 판정이 아니라 의견이다. 권한 있는 사람이 근거와 함께, 판정 표와 물리적으로 분리된 절 에 적는다.

모듈 전체를 한 표로 — 산출물이 성적서의 어느 절로 가는가

| 레슨 | 제조사 산출물 | 성적서 절 | 시험소가 하는 일 |
|---|---|---|---|
| 1 | 기법 선택표, 미도달 분석표 | 4 · 7 | HR 미채택 근거 검토, A→B 전개 확인 |
| 2 | 단위 검증 명세, 추적표, 커버리지 리포트, 환경 차이 분석 | 4 · 5 · 6 | 커버리지 재측정, MC/DC 독립 쌍 표본 확인 |
| 3 | 역할 배치표, 도구 등록부 | 4 · 7 | 문서 간 이름 대조로 독립성 확인 |
| 4 | 판·언어 표준 확정 문구 | 1 · 3 | 판정 기준 고정 |
| 5 | GEP · GRP · 편차 · GCS | 4 · 5 | 독립 재수행 대조표 |
| 6 | 도구 분류 분석(TCL), 적격성 보고서 | 5 · 9 | 시험소 자체 도구의 TCL·버전 기재, 제조사 도구 TCL 근거 검토 |

마지막 줄에 시험소 자신의 도구 가 들어간다는 점을 놓치지 말자. 시험소가 재수행에 쓴 정적 분석기와 커버리지 측정기도 결과를 만드는 도구다. 모듈 32 레슨 3의 측정 소급성과 레슨 4의 원자료 관리가 여기서 시험소 도구의 버전·설정·확인 기록 으로 성적서 5절에 들어간다.

실무에서 왜 필요한가

도구 신뢰는 기능안전 프로젝트의 숨은 일정 이다. 도구를 다 고른 뒤에 TCL 분석을 하면, TCL3로 나온 도구의 적격성 확인에 몇 주가 들고, 그 사이 도구 버전을 올릴 수 없다. 반대로 개발 계획 단계에서 사용 사례를 먼저 적고 "리뷰를 남겨 TD1을 확보할지, 도구에 위임하고 적격성을 확인할지"를 결정하면 비용이 예측된다.

적격성 확인 키트를 사는 것으로 끝났다고 믿는 조직은 심사에서 흔히 막힌다. 키트를 자기 환경에서 돌린 기록 이 없고, 도구 버전을 올린 뒤 재확인한 기록도 없다. 도구 등록부의 버전·TCL·보고서 ID·기준선이 한 줄로 이어지는지 확인하는 것만으로 이 지적 대부분을 막을 수 있다.

성적서 쪽에서는 범위와 한계를 먼저 쓰는 습관 이 시험소를 보호한다. 기능안전 영역의 성적서는 사고가 나면 법적 분쟁의 증거가 된다. 모듈 31 레슨 5에서 성적서의 책임 범위를 다뤘는데, 과정 규격 성적서에서 그 범위는 "어떤 증거를, 어떤 방법으로, 어디까지 봤는가" 로만 정의된다. 수행하지 않은 것을 적지 않은 성적서는 수행한 것 이상의 책임을 떠안는다.

실습 과제

과제 1 — 사용 사례별 TCL 판정 (20분)

아래 사용 사례마다 TI·TD·TCL을 판정하고 근거를 한 줄씩 적는다. TCL2 이상이 나온 사례는 사용 방식을 바꿔 TCL1로 낮추는 대안 과 그 대안의 공수 변화를 함께 적는다.

U1  모델 기반 코드 생성기가 만든 코드를 타깃 HIL 에서 요구사항 기반으로 전수 시험한다
U2  위 코드 생성기의 코드를 호스트에서 백투백 시험만 하고 타깃 시험은 표본으로 한다
U3  커버리지 측정기의 MC/DC 100% 결과로 ASIL D 모듈의 추가 리뷰를 생략한다
U4  요구사항 관리 도구가 만든 추적 매트릭스를 리뷰 없이 심사 자료로 제출한다
U5  Git 으로 소스 형상을 관리한다

과제 2 — 적격성 확인 계획 초안 (20분)

과제 1에서 TCL3가 나온 도구 하나를 골라 적격성 확인 계획 초안을 쓴다.

  • 사용 사례와 TCL 판정 근거
  • 선택한 방법(1a~1d)과 이유 — 1a를 고르지 않는 이유도 적는다
  • 1c라면: 시험할 도구 기능, 알려진 답을 가진 입력, 합격 기준, 사용할 도구 버전·설정
  • 도구 버전 변경 시 재확인 규칙

과제 3 — 성적서 범위 절 쓰기 (15분)

본문 성적서 구조의 2. 시험 범위 와 9. 한계 두 절을 실제 문장으로 쓴다. 대상은 ASIL C 브레이크 제어 소프트웨어의 단위 검증 증거이며, 시험소는 정적 분석 재수행과 요구사항 표본 30개의 호스트 시험만 수행했다고 가정한다.

과제 4 (선택) — 발견 사항 분류 (10분)

아래 발견 사항을 "판정에 영향 / 판정 보류 / 개선 권고"로 분류하고, 판정에 영향을 주는 것은 어떤 항목의 판정을 어떻게 바꾸는지 적는다.

F1  커버리지 측정기 버전이 도구 등록부(4.0.2)와 리포트 헤더(4.1.0)에서 다름
F2  편차 허가 DP-011 의 안전 영향 분석 칸이 "영향 없음" 한 줄
F3  역할 배치표상 검증자가 단위 검증 명세의 작성자로 서명됨
F4  미도달 분기 3건의 근거 문서가 아직 제출되지 않음
F5  기법 선택표의 열 이름이 규격 표 번호와 다른 체계로 적힘

자가 체크리스트

  • ISO 26262가 도구를 종류가 아니라 사용 사례로 판정하는 이유를 예로 설명할 수 있다
  • TI1·TI2, TD1~TD3의 뜻을 말할 수 있다
  • TI·TD 조합에서 TCL1·2·3이 정해지는 표를 그릴 수 있다
  • TCL1은 적격성 확인이 필요 없고, 한 도구의 요구 수준은 사용 사례 중 최대 TCL이라는 것을 안다
  • 사용 방식을 바꿔 TCL을 낮추는 선택지와 그 비용 교환을 설명할 수 있다
  • TD 근거로 드는 시험이 그 도구에 의존하면 안 되는 이유를 안다
  • 적격성 확인 방법 1a~1d의 차이와, 실무에서 1b·1c가 흔한 이유를 안다
  • 적격성 확인 키트가 적격성 확인 자체가 아닌 이유를 설명할 수 있다
  • 61508 T 등급과 26262 TCL을 한 도구 등록부에서 관리하는 열 구성을 안다
  • 기능안전 시험성적서의 아홉 절과, "수행하지 않은 것"을 적어야 하는 이유를 안다
  • 발견 사항의 판정 영향·판정 보류·개선 권고를 구분하고, 의견을 판정과 분리해 적을 수 있다
  • 시험소 자신의 도구도 성적서에 버전·설정·확인 기록으로 들어가야 하는 이유를 안다

흔한 실수

도구 이름으로 TCL을 정한다. 같은 도구도 사용 사례에 따라 TCL이 다르다. 사용 사례 목록부터 쓴다.

초안 시기 자료의 표기를 그대로 쓴다. TI0/TD4 같은 표기는 발행본과 다르다.

TD 근거로 같은 도구에 의존하는 시험을 든다. 같은 컴파일러·같은 환경의 시험으로는 그 컴파일러의 오류를 검출한다고 주장하기 어렵다.

적격성 확인 키트 구매를 적격성 확인으로 기록한다. 우리 환경·버전·설정에서 실행한 기록이 증거다.

도구 버전을 올리고 재확인하지 않는다. 적격성 확인은 버전에 묶여 있다. 도구 등록부와 기준선을 함께 갱신한다.

성적서에 수행하지 않은 것을 적지 않는다. 기능안전 평가를 대신하는 것처럼 읽히고, 수행한 것 이상의 책임을 떠안는다.

판정 보류 대신 억지로 적합·부적합을 가른다. 추가 증거가 들어오면 재발행으로 이어진다.

시험소 자신의 도구를 성적서에서 빼먹는다. 재수행 결과를 만든 도구의 버전·설정·확인 기록이 없으면 대조표 전체가 흔들린다.

참고 자료

낯선 말 풀이

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

ISO — 국제표준화기구
여러 나라가 모여 "이건 이렇게 하자"를 문서로 정하는 단체. 그 문서 자체를 번호로 부른다.
MISRA — 미스라
안전이 중요한 분야에서 "이런 식으로는 코드를 쓰지 말라"를 모아 둔 규칙집.
PIL — 프로세서 포함 시험
실제 칩에 코드를 올려 돌려 보는 단계. 모델 시험과 실물 시험 사이에 있다.
HIL — 하드웨어 포함 시험
실제 부품을 연결해 두고, 주변 환경만 컴퓨터로 흉내 내서 시험하는 방식.
ASIL — 자동차 안전 완전성 수준
자동차 분야의 위험 등급. A부터 D까지이고 D가 가장 엄격하다.
ID — 식별자
무엇 하나를 다른 것과 구별하기 위해 붙인 이름이나 번호.
CI — 지속적 통합
코드를 올릴 때마다 자동으로 합쳐서 빌드하고 시험까지 돌리는 방식.
MES — 제조 실행 시스템
공장에서 무엇을 얼마나 어떤 순서로 만들지 관리하는 시스템.
PDF — 피디에프
어디서 열어도 모양이 같게 나오도록 만든 문서 형식.
IEC — 국제전기기술위원회
전기·전자 분야의 국제 규격을 만드는 단체.

용어집 전체 보기