DO-178C(항공용 소프트웨어 감항인증)에 적합한 정적분석을 활용한 소프트웨어 동적 시험 프로세스
DO-178C는 항공기 소프트웨어 오작동으로 인한 항공기 사고 위험을 최소화하기 위한, 항공기 소프트웨어 안전성(Safety)에 대한 국제적인 감항 인증 표준 규격으로 소프트웨어 계획, 요구사항, 설계 구현 및 통합, 검증, 형상관리, 품질관리, 인증 프로세스 등의 소프트웨어 개발 프로세스를 가지며, 그 중 검증 및 테스트와 관련된 부분이 가장 중요한 이슈로 부각되고 있다.
항공용 소프트웨어 안전성 확보를 위해서는 DO-178C(항공용 소프트웨어 안전성 및 감항인증 국제 규격)에 적합한 테스트를 수행하여야 하며 DO-178C의 Annex A. Table 7에서 테스트 수행에 대한 목표(Objectives)를 명확하게 정의하고 있다.
DO-178C의 테스트 요건은 “테스트 절차, 테스트 케이스 생성 및 수행, 테스트 결과 분석, 테스트 커버리지-Statement Coverage(SC), Branch Coverage(BC), Modified Condition/Decision Coverage(MC/DC)- 달성 등” 이 있다.
다년간 수행한 소프트웨어 시험에서 나타난 주요 문제점 및 원인은 아래와 같다. 이에 모아소프트에서는 이러한 문제점을 개선하기 위해 “정적분석 기반의 동적시험 프로세스”를 구축하였다.
[단계 1] 정적분석 도구 활용
정적분석 도구인 LDRA Tested의 주요 기능은 다음과 같다.
(테스트에 사용될 자동화 도구는 LDRA이며, LDRA 도구는 DO-178C 규격에 대한 Certification을 보유하고 있다.)
– 소스코드에 대한 코딩룰 검사 (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신뢰성 및 품질향상을 제공할 수 있다.

