
자동차 전기·전자 시스템과 임베디드 소프트웨어가 복잡해지면서 ISO 26262 자동차 기능 안전 표준의 중요성이 높아지고 있습니다.
특히 자율주행, 첨단 운전자 보조 시스템(ADAS), 차량 제어 시스템 등 안전과 관련된 자동차 소프트웨어는 개발 초기부터 위험을 분석하고 체계적으로 검증해야 합니다.
ISO 26262는 자동차 전기·전자 시스템의 오작동으로 인해 발생할 수 있는 위험을 관리하기 위한 국제 표준입니다. 이 표준에서는 ASIL(Automotive Safety Integrity Level) 등급에 따라 안전 요구사항과 개발 및 검증 활동을 정의합니다.
이번 글에서는 ISO 26262의 핵심 개념부터 ASIL A~D 등급, 소프트웨어 검증 절차, 그리고 LDRA를 활용한 정적 코드 분석과 단위 테스트, 코드 커버리지 측정 방법까지 살펴보겠습니다.
ISO 26262란? 자동차 기능 안전 국제 표준
ISO 26262는 자동차 전기·전자(E/E) 시스템의 기능 안전(Functional Safety)을 위한 국제 표준입니다.
기능 안전이란 시스템이나 장비의 오작동으로 인해 발생할 수 있는 위험을 분석하고, 적절한 안전 조치를 통해 불합리한 위험이 발생하지 않도록 관리하는 것을 의미합니다.
ISO 26262의 핵심 목적은 자동차 시스템의 안전 관련 오작동으로 발생할 수 있는 위험을 줄이고, 제품 개발 전 과정에서 일관된 안전 활동을 수행하는 것입니다.
ISO 26262의 주요 목적
ISO 26262는 다음과 같은 활동을 지원하는 기준을 제공합니다.
- 자동차 전기·전자 시스템의 위험 분석 및 평가
- 안전 목표와 안전 요구사항 정의
- 하드웨어 및 소프트웨어 개발 프로세스 관리
- 설계 및 구현 단계의 안전 요구사항 검증
- 안전 관련 결함의 조기 식별 및 관리
- 시스템 통합과 안전성 확인
- 안전 수명주기 전반의 기능 안전 활동 관리
이러한 체계적인 접근 방식은 개발 과정에서 잠재적인 위험을 조기에 발견하고, 안전 요구사항을 충족하는 데 중요한 역할을 합니다.
ISO 26262 Part 6과 소프트웨어 개발의 관계
ISO 26262는 기능 안전 관리, 위험 분석, 시스템 개발, 하드웨어 및 소프트웨어 개발 등 여러 영역으로 구성됩니다.
이 중 ISO 26262 Part 6은 소프트웨어 수준의 제품 개발을 다룹니다.
주요 활동은 다음과 같습니다.
- 소프트웨어 안전 요구사항 정의
- 소프트웨어 아키텍처 설계
- 소프트웨어 단위 설계 및 구현
- 소프트웨어 단위 검증
- 소프트웨어 통합 및 검증
- 임베디드 소프트웨어 테스트
소프트웨어 개발 조직은 이러한 활동을 기반으로 안전 요구사항이 올바르게 구현되었는지 확인하고, 검증 결과를 체계적으로 관리해야 합니다.
ASIL 등급이란? ISO 26262 자동차 안전 무결성 수준
ASIL(Automotive Safety Integrity Level)은 ISO 26262에서 정의하는 자동차 안전 무결성 수준입니다.
ASIL 등급은 위험 분석 및 평가(HARA)를 통해 결정되며, 위험 상황의 심각도와 발생 가능성, 통제 가능성을 종합적으로 고려합니다.
ASIL은 A, B, C, D의 네 단계로 구분되며, ASIL D가 가장 높은 안전 무결성 수준을 의미합니다.

ASIL 등급별 특징
| ASIL 등급 | 안전 무결성 수준 | 주요 특징 |
|---|---|---|
| ASIL A | 상대적으로 낮음 | 네 단계 중 가장 낮은 안전 무결성 요구 |
| ASIL B | 중간 이하 | ASIL A보다 강화된 안전 활동 필요 |
| ASIL C | 높음 | 더욱 엄격한 개발 및 검증 활동 필요 |
| ASIL D | 가장 높음 | 네 단계 중 가장 높은 안전 무결성 요구 |
ASIL 등급은 부품이나 기능의 종류에 따라 무조건 정해지는 값이 아닙니다. 동일한 자동차 기능이라도 운행 조건과 위험 상황에 따라 평가 결과가 달라질 수 있습니다.
ASIL 등급을 결정하는 세 가지 평가 기준
ASIL 등급은 위험 분석 및 평가(HARA) 과정에서 다음 세 가지 요소를 고려하여 결정합니다.
1. 심각도(Severity, S)
시스템 오작동으로 인해 발생할 수 있는 사고가 운전자, 탑승자 또는 다른 도로 이용자에게 얼마나 심각한 피해를 줄 수 있는지 평가합니다.
2. 노출 가능성(Exposure, E)
운행 환경에서 해당 위험 상황에 노출될 가능성이 얼마나 높은지 평가합니다.
3. 통제 가능성(Controllability, C)
위험 상황이 발생했을 때 운전자나 다른 도로 이용자가 사고 또는 피해를 방지할 수 있는 정도를 평가합니다.
이 세 가지 요소를 종합하여 위험 이벤트에 대한 ASIL 등급을 결정하며, 결정된 등급은 이후 안전 요구사항과 개발 및 검증 활동에 반영됩니다.
ISO 26262에서 ASIL 등급별 소프트웨어 검증이 중요한 이유
ISO 26262 기반의 자동차 소프트웨어 개발에서는 안전 요구사항을 충족하기 위한 적절한 검증 활동을 수행해야 합니다.
자동차 소프트웨어에는 복잡한 제어 로직, 다양한 입력 조건, 실시간 처리 기능이 포함되므로 단순한 기능 테스트만으로 잠재적인 안전 관련 결함을 모두 확인하기 어렵습니다.
따라서 개발 조직은 프로젝트의 안전 요구사항과 ASIL 등급을 고려하여 적절한 소프트웨어 검증 방법을 선택해야 합니다.

1. 정적 코드 분석(Static Code Analysis)
정적 코드 분석은 프로그램을 실행하지 않고 소스코드를 분석하여 잠재적인 오류와 코드 품질 문제를 식별하는 방법입니다.
정적 분석을 통해 다음과 같은 항목을 확인할 수 있습니다.
- 코딩 표준 위반 여부
- 잠재적인 프로그래밍 오류
- 코드 복잡도 및 품질 메트릭
- 제어 흐름 및 데이터 흐름 관련 문제
- 유지보수에 영향을 줄 수 있는 코드 구조
자동차 임베디드 소프트웨어에서는 MISRA C, MISRA C++ 등의 코딩 가이드라인 준수 여부를 검토하는 데에도 정적 분석 도구가 활용됩니다.
2. 소프트웨어 단위 테스트(Unit Testing)
단위 테스트는 개별 소프트웨어 단위가 정의된 요구사항에 따라 동작하는지 확인하는 검증 활동입니다.
특히 안전 관련 소프트웨어에서는 정상적인 실행 조건뿐 아니라 경계값, 오류 조건, 예외 상황 등을 고려한 테스트 설계가 중요합니다.
자동화된 단위 테스트 도구는 반복적인 테스트 실행과 결과 분석을 지원하여 검증 효율성을 높이는 데 도움이 됩니다.
3. 코드 커버리지(Code Coverage) 측정
코드 커버리지는 테스트 수행 과정에서 소프트웨어의 코드 구조가 어느 정도 실행되었는지를 확인하는 지표입니다.
대표적인 구조적 커버리지 항목은 다음과 같습니다.
- Statement Coverage: 코드의 각 구문 실행 여부 확인
- Branch Coverage: 분기별 실행 경로 확인
- MC/DC: 각 조건이 의사결정 결과에 독립적으로 영향을 미치는지 확인
ISO 26262 소프트웨어 검증에서는 적용되는 안전 요구사항과 ASIL 등급에 따라 적절한 구조적 커버리지 분석을 수행해야 합니다.
다만 코드 커버리지가 높다고 해서 소프트웨어 안전성이 자동으로 보장되는 것은 아닙니다. 요구사항 기반 테스트와 테스트 결과 분석, 결함 관리가 함께 이루어져야 합니다.
4. 요구사항 추적성(Requirements Traceability)
요구사항 추적성은 소프트웨어 안전 요구사항과 설계, 구현, 테스트 결과 사이의 연결 관계를 관리하는 활동입니다.
추적성을 확보하면 안전 요구사항의 누락 여부를 확인하고, 개발 과정에서 발생하는 변경사항이 다른 항목에 미치는 영향을 분석할 수 있습니다.
특히 복잡한 자동차 소프트웨어 프로젝트에서는 요구사항과 검증 결과를 연결하여 관리하는 것이 중요합니다.
LDRA를 활용한 ISO 26262 소프트웨어 검증 방법
ISO 26262를 기반으로 자동차 소프트웨어를 개발하려면 요구사항 추적성, 정적 분석, 단위 테스트, 코드 커버리지 측정 등 다양한 검증 활동을 수행해야 합니다.
LDRA는 이러한 소프트웨어 검증 활동의 자동화와 결과 관리를 지원하는 솔루션입니다.
LDRA Tool Suite를 활용하면 개발 과정에서 발생하는 검증 정보를 관리하고, 코드 분석 및 테스트 결과를 체계적으로 확인할 수 있습니다.
특히 소프트웨어 안전 요구사항과 코드 구현 및 테스트 결과를 연결해 검증 활동의 추적성을 높이는 데 활용할 수 있습니다.

위 그림은 ISO 26262 소프트웨어 개발의 주요 활동과 LDRA 도구의 활용 영역을 보여줍니다.
요구사항 정의부터 소프트웨어 설계, 구현, 단위 검증, 통합 검증까지 개발 단계별 검증 활동을 지원하는 도구와 프로세스를 확인할 수 있습니다.
TBmanager: 요구사항 추적성 및 검증 관리
TBmanager는 소프트웨어 개발 과정에서 요구사항 추적성과 검증 워크플로우 관리를 지원합니다.
안전 요구사항과 설계 및 테스트 결과 사이의 연결 관계를 관리하여 검증 항목의 누락 여부를 확인하고, 변경사항에 따른 영향을 분석하는 데 활용할 수 있습니다.
주요 활용 영역은 다음과 같습니다.
- 요구사항 추적성 관리
- 요구사항과 검증 결과 간 연결
- 검증 워크플로우 관리
- 검증 활동 및 결과 추적
TBvision: 정적 코드 분석 및 코드 품질 평가
TBvision은 정적 코드 분석과 소프트웨어 품질 메트릭 분석을 지원합니다.
소스코드의 구조 및 복잡도를 분석하고, 코딩 표준 위반이나 잠재적인 결함을 식별하는 데 활용할 수 있습니다.
주요 활용 영역은 다음과 같습니다.
- 정적 코드 분석
- 코딩 표준 준수 여부 확인
- 코드 복잡도 및 품질 메트릭 분석
- 코드 분석 결과 시각화
이를 통해 개발자는 소프트웨어 코드의 잠재적인 문제를 조기에 확인하고 품질 개선 활동을 수행할 수 있습니다.
TBrun: 단위 테스트 및 코드 커버리지 측정
TBrun은 소프트웨어 단위 테스트 자동화 및 코드 커버리지 분석을 지원합니다.
호스트 및 타깃 환경에서 소프트웨어 단위 테스트를 수행하고, 테스트 결과와 실행된 코드 구조를 분석하는 데 활용할 수 있습니다.
주요 활용 영역은 다음과 같습니다.
- 단위 테스트 실행 및 자동화
- 테스트 케이스 관리
- 구조적 코드 커버리지 측정
- 호스트 및 타깃 기반 테스트
- 테스트 결과 분석
LDRA 도구별 주요 검증 기능 비교
| LDRA 도구 | 주요 기능 | 적용 목적 |
|---|---|---|
| TBmanager | 요구사항 추적성 및 워크플로우 관리 | 안전 요구사항 및 검증 결과 추적 |
| TBvision | 정적 코드 분석 및 품질 메트릭 | 코딩 표준 준수 및 코드 품질 평가 |
| TBrun | 단위 테스트 및 코드 커버리지 | 소프트웨어 단위 검증 자동화 |

그림4. LDRA tool suite 솔루션 – ISO 26262
위 그림은 ASIL 등급에 따른 LDRA 제품 구성 예시를 보여줍니다.
다만 각 ASIL 등급에서 반드시 특정 LDRA 제품을 사용해야 한다는 의미는 아닙니다. 실제 도구 구성과 검증 방법은 프로젝트 요구사항, 개발 환경, 검증 목표에 따라 결정됩니다.
ISO 26262 준수를 위한 소프트웨어 검증 체크리스트
ISO 26262 소프트웨어 검증 체계를 구축할 때는 단순히 코드 분석이나 테스트 도구를 도입하는 것뿐 아니라 전체 검증 프로세스를 함께 고려해야 합니다.
다음 항목을 확인하는 것이 좋습니다.
- 위험 분석 및 평가(HARA)를 수행했는가?
- 안전 목표와 ASIL 등급을 정의했는가?
- 소프트웨어 안전 요구사항을 명확하게 작성했는가?
- 요구사항과 설계, 구현 및 테스트 간 추적성을 확보했는가?
- 프로젝트에 적용되는 코딩 표준을 준수하는가?
- 정적 코드 분석과 소프트웨어 단위 테스트를 수행했는가?
- 적절한 코드 커버리지 분석을 수행했는가?
- 검증 결과와 미해결 이슈를 관리하고 있는가?
- 필요한 경우 소프트웨어 검증 도구에 대한 적격성 평가를 수행했는가?
이러한 검증 체계를 갖추면 소프트웨어 개발 과정에서 안전 관련 문제를 조기에 식별하고, 검증 활동의 일관성과 추적성을 높일 수 있습니다.
ISO 26262 소프트웨어 검증 FAQ
Q1. ISO 26262는 어떤 표준인가요?
ISO 26262는 자동차 전기·전자 시스템의 기능 안전을 위한 국제 표준입니다. 시스템 오작동으로 인해 발생할 수 있는 위험을 관리하고, 제품 개발 전 과정에서 안전 요구사항을 충족하도록 지원합니다.
Q2. ASIL A, B, C, D 등급의 차이는 무엇인가요?
ASIL은 자동차 안전 무결성 수준을 의미합니다. ASIL A부터 D까지 네 단계로 구분되며, ASIL D가 가장 엄격한 수준입니다. 위험 상황의 심각도, 노출 가능성 및 통제 가능성을 기반으로 등급을 결정합니다.
Q3. ISO 26262 소프트웨어 검증에는 어떤 활동이 포함되나요?
정적 코드 분석, 소프트웨어 단위 테스트, 통합 검증, 코드 커버리지 분석, 요구사항 추적성 확인 등이 포함됩니다. 구체적인 검증 활동은 프로젝트의 안전 요구사항과 ASIL 등급에 따라 달라집니다.
Q4. LDRA는 ISO 26262 검증에 어떻게 활용되나요?
LDRA는 요구사항 추적성, 정적 분석, 단위 테스트, 코드 커버리지 측정 등 다양한 소프트웨어 검증 활동을 지원합니다. 이러한 기능을 활용하여 ISO 26262 기반의 소프트웨어 검증 프로세스를 체계적으로 관리할 수 있습니다.
Q5. LDRA 도구를 사용하면 ISO 26262 준수가 보장되나요?
LDRA는 ISO 26262 소프트웨어 검증 활동을 지원하는 도구이지만, 도구 사용만으로 표준 준수가 자동으로 보장되지는 않습니다. 프로젝트의 안전 요구사항, 개발 프로세스, 검증 활동, 검증 결과 및 필요한 도구 적격성 평가를 함께 고려해야 합니다.
결론: ISO 26262 기능 안전 확보를 위한 체계적인 소프트웨어 검증
ISO 26262는 자동차 전기·전자 시스템의 기능 안전을 확보하기 위한 중요한 국제 표준입니다.
안전 관련 위험을 분석하고 ASIL 등급에 따른 적절한 개발 및 검증 활동을 수행하는 것은 자동차 소프트웨어 개발의 핵심 요소입니다.
특히 정적 코드 분석, 단위 테스트, 코드 커버리지 측정, 요구사항 추적성 관리는 소프트웨어의 안전 요구사항 충족 여부를 확인하는 데 중요한 역할을 합니다.
LDRA는 이러한 검증 활동을 지원하여 ISO 26262 기반 자동차 소프트웨어 개발 프로세스의 효율성과 추적성을 높이는 데 기여할 수 있습니다.
모아소프트는 자동차 기능 안전 및 소프트웨어 검증을 위한 LDRA 솔루션과 관련 교육을 제공합니다.
ISO 26262 소프트웨어 검증 환경 구축이나 LDRA 도입을 검토하고 있다면 모아소프트를 통해 자세한 내용을 확인하시기 바랍니다.
LDRA 솔루션 및 교육 문의
- 대표 문의: 02-420-3203
- 홈페이지: 기술 문의하기








