
DO-178C와 항공용 소프트웨어 검증의 중요성
DO-178C는 항공기 소프트웨어 오작동으로 인한 항공기 사고 위험을 최소화하기 위한, 항공기 소프트웨어 안전성(Safety)에 대한 국제적인 감항 인증 표준 규격이다.
DO-178C는 다음과 같은 소프트웨어 개발 프로세스를 가진다.
- 소프트웨어 계획
- 요구사항
- 설계 구현 및 통합
- 검증
- 형상관리
- 품질관리
- 인증 프로세스
그중에서도 검증 및 테스트와 관련된 부분이 가장 중요한 이슈로 부각되고 있다.
항공용 소프트웨어 안전성 확보를 위해서는 DO-178C(항공용 소프트웨어 안전성 및 감항인증 국제 규격) 에 적합한 테스트를 수행해야 한다.
또한 DO-178C의 Annex A. Table 7에서는 테스트 수행에 대한 목표(Objectives)를 명확하게 정의하고 있다.
DO-178C 테스트 요건
DO-178C의 테스트 요건은 다음과 같다.
- 테스트 절차
- 테스트 케이스 생성 및 수행
- 테스트 결과 분석
- 테스트 커버리지 달성
테스트 커버리지에는 다음 항목이 포함된다.
- Statement Coverage(SC)
- Branch Coverage(BC)
- Modified Condition/Decision Coverage(MC/DC)
다년간 수행한 소프트웨어 시험에서 나타난 주요 문제점 및 원인은 아래와 같다.
이에 모아소프트에서는 이러한 문제점을 개선하기 위해 “정적분석 기반의 동적시험 프로세스” 를 구축하였다.
1단계. 정적분석 도구 활용
정적분석 도구인 LDRA Testbed의 주요 기능은 다음과 같다.
테스트에 사용될 자동화 도구는 LDRA이며, LDRA 도구는 DO-178C 규격에 대한 Certification을 보유하고 있다.
LDRA Testbed 주요 기능
- 소스코드에 대한 코딩룰 검사
예: MISRA Coding Standard 등 1,500여 개의 코딩표준 검사 - 소스코드에 대한 품질 메트릭 산출
예: Cyclomatic Complexity, Testability 등 40여 개의 Quality Metric 산출 - 단위함수에 대한 input/output parameter 및 call function 정보 제공
- Call graph, Flow diagram 등 소스코드에 대한 시각적 구조 정보 제공
2단계. 테스트 케이스 자동 생성

LDRA Testbed에서 정적분석을 수행하면 Quality Review Report와 *.glh(정적분석 결과 파일) 이 생성된다.
이 결과 파일로부터 단위함수에 대한 정보를 추출하여 테스트 케이스를 설계한다.
추출되는 정보는 다음과 같다.
- Function I/O 정보
- Cyclomatic Complexity
- Testability
- Function Call 정보
이후 테스트 케이스 설계 도구인 TCMAN을 이용하여 단위함수의 input/output 변수 정보를 Excel 문서로 생성한다.
또한 동적시험에서 필요한 *.tcf(테스트 케이스 파일) 를 생성한다.
3단계. 테스트 실행 및 결과보고서

동적시험 도구인 LDRA TBrun을 사용하여 *.tcf 파일을 적용하고 테스트를 수행한다.
이후 국제 SW 분야 표준 서식인 ISO/IEC/IEEE 29119, IEEE Std. 829의 테스트결과보고서 *.doc을 자동으로 생성한다.
이 과정에서 다음 항목을 기록한다.
- 테스트 커버리지
- 코드 실행률
- 결함
정적분석 기반 동적시험 프로세스의 효과
정적분석 기반의 동적시험 프로세스를 적용하면, 소스코드에 대한 정적분석 결과에서 코드 품질 매트릭과 함수 정보를 활용할 수 있다.
이를 통해 자동 생성된 테스트 케이스에 의한 동적시험을 수행할 수 있었다.
또한 국제 표준의 시험결과보고서를 자동 생성하여 제공함으로써, 항공 안전성 감항인증에 적합한 SW 개발 및 테스트 프로세스의 효율성과 SW 신뢰성 및 품질 향상을 제공할 수 있다.
문의 및 기술 협력
- 홈페이지: https://moasoftware004.mycafe24.com/
- 대표 문의: 02-6945-2156
