반응형
제목: DO-178B에 따른 항공 소프트웨어 테스팅(Testing Avionics Software to DO-178B)
저자: LDRA Ltd., 영국
문서유형: 업체 브로셔(총 9페이지)
DO-178B 표준의 개발 및 검증 프로세스의 주요 요구사항과 이를 지원하는 도구인 LDRA tool suite에 대해 소개한 자료
배경 정보
- 항공 시스템에서 소프트웨어 사용이 증가함에 따라 RTCA(the Radio Technical Commission for Aeronautics) 협회에서 “Software Considerations in Airborne Systems and Equipment Certification”이라는 DO-178 가이드 문서 작성
- 항공 소프트웨어의 국제 인증 표준(the international avionics certification standard for airborne software)으로 받아들여짐
- 1982년에 원본 DO-178 발표. 이후 여러 차례 수정을 거쳐 1992년 DO-178B 발표
- 시스템 개발에 앞서 시스템 안전성 평가(a system safety assessment) 및 위험 분석(hazard analysis)을 수행하여 잠재적인 장애 상황(failure conditions)을 식별하고 항공기와 탑승자에게 주는 심각도에 따라 아래와 같은 소프트웨어 레벨(a Software Level)을 결정
Level |
Failure Condition |
Description |
A |
Catastrophic |
장애가 시스템 작동 중단(a crash)을 야기할 수 있음 |
B |
Hazardous |
장애가 안정성이나 성능에 큰 부정적 영향을 미치거나, 물리적 불편이나 과도한 업무량 야기하여 승무원의 비행기 조작 능력을 감소시키거나, 승객에게 심각하거나 치명적인 상해를 주는 원인이 됨 |
C |
Major |
여전히 중요한 장애이지만 a Hazardous failure 보다는 영향력이 적음 (예, 승객에게 상해를 입히지는 않지만 불편하게 만들 수 있음) |
D |
Minor |
장애가 눈에는 띄지만 a Major failure보다 영향력이 적음 (예, 일상적인 비행 계획 변경으로 승객 불편) |
E |
No effect |
안전, 항공기 운영, 승무원 업무량에 영향을 미치지 않음 |
DO-178B 프로세스 목표(Process Objectives)
- 감항성 목표(airworthiness objectives)를 준수하도록 하여 항공 시스템의 안전성에 확신을 얻는 DO-178B는 계획 프로세스(planning process), 개발 프로세스(development process), 통합 프로세스(integral processes)의 완전한 소프트웨어 생명 주기를 커버한다.
- DO-178B에서는 소프트웨어 레벨에 따라 소프트웨어 개발 프로세스 동안에 반드시 만족시켜야 하는 목표(objectives)를 결정한다. 즉, 항공기의 안전 운행에 영향이 큰 시스템(예, a fly-by-wire system)과 그렇지 않은 시스템(예, 기내 오락 시스템)에 요구되는 노력 정도가 달라진다.
- Level A는 66개의 목표(objectives)를 가지고 Level B는 65개, Level C는 57개, Level D는 28개를 가진다.
LDRA tool suite
- DO-178B 인증 요구사항을 만족시켜야 하는 항공 프로젝트(avionics project)를 위한 도구
- 시스템의 표준 준수 여부 확인을 쉽고, 정확하게, 비용효과적으로 할 수 있도록 지원
- LDRA가 지원하는 DO-178B process objectives의 주요 항목으로 추적성 분석(traceability analysis), 코드 분석(code analysis), 커버리지 분석(coverage analysis)이 있다.
코드 분석(Code analysis)
- LDRA tool suite는 최신 소스 코드 분석 기술을 이용하여 DO-178B의 소프트웨어 코딩 표준을 준수하는지 자동으로 체크하고, 코드 복잡성(code complexity)이 시스템 안전성 목표 기준을 초과하는지 확인하고, 도구의 데이터 플로우 분석 기능을 통해 초기화되지 않거나 사용되지 않는 변수 및 상수(uninitialised and unused variables or constants)를 식별 해주는 코드 분석 도구를 제공한다.
- 컨트롤 결합도(Control Coupling): 소프트웨어 컴포넌트들간의 의존 관계(호출 관계, 호출 빈도)를 가시적으로 표현하는 기능 제공
- 데이터 결합도(Data Coupling): 정적과 동적 분석 도메인에서 데이터 결합 정보를 제공. 즉, 소프트웨어 컴포넌트에 의해 접근되는 모든 데이터 인스턴스(컴포넌트의 범위 내에 선언된 지역 변수, 선언 범위와 관계 없이 컴포넌트가 접근하는 전역 변수)를 보여준다.
추적성 분석(Traceability analysis)
- Requirements Traceability는 시스템 요구사항을 소프트웨어 상위 레벨 요구사항으로 연결하고, 소프트웨어 상위 레벨 요구사항을 다시 하위 레벨 요구사항으로 연결하고, 하위 레벨 요구사항은 소스 코드 및 관련된 테스트 케이스로 연결한다.
- LDRA tool suite의 ‘TBreq 요구사항 추적성/커버리지 도구’가 추적성 분석 기능을 제공. 요구사항 문서부터 소스 코드 및 테스트 케이스까지 관계를 추적하는 요구사항 추적 매트릭스(Requirements Traceability Matrix)의 생성, 관리, 유지보수, 문서화를 간편하게 지원
- LDRA의 코드 검토(code review) 도구, 데이터 및 컨트롤 커플링(data and control coupling) 도구, 코드 커버리지(code coverage) 도구와 통합(즉, 연계해서 사용) 가능
구조적 커버리지 분석(Structural Coverage Analysis)
- Code coverage analysis는 시스템의 소스 코드가 DO-178B가 요구하는 요구사항 기반 기능 테스트(requirements-based functional tests)에 의해 테스트 된 정도를 측정한다. 측정 결과는 테스트 완전도/완성도(completeness)에 대한 피드백을 제공
- 코드 커버리지가 모니터 되지 않으면 어떤 테스트 케이스(데이터)에 의해서도 실행되지 않은 에러가 코드상에 남아 있을 수 있으므로 DO-178B은 매우 엄격한 구조적 커버리지 분석 요구사항을 부과함
- 요구사항 추적 프로세스의 마지막 단계로도 볼 수 있는 구조적 커버리지 분석은 구현된 소스 코드와 관련 테스트 케이스를 시스템 요구사항으로 연결하는데 도움을 줌
- LDRA tool suite는 자동 소스 코드 인스트루멘테이션(instrumentation)을 통해 런 타임에 실행되는 코드 부분을 측정하는 도구를 제공. 즉, 실행되지 않은 코드 부분을 자동으로 찾아내어 부족하거나 빠진 테스트 케이스를 빠르게 식별하게 해준다.
반응형
'산업종류별 > 우주항공' 카테고리의 다른 글
페이퍼요약 - ARINC 653 기반 실시간 소프트웨어 엔지니어링 by Samolej (0) | 2018.01.31 |
---|---|
문서요약 - 고위험 및 고임무 우주항공 소프트웨어의 인증 프로세스 by Nelson (0) | 2018.01.29 |
페이퍼요약 - DO-178B의 안전성 및 신뢰성 고려사항 by Zemskyy (0) | 2018.01.19 |
영상자료 - 우주선 지상 소프트웨어 테스팅 방법 by Streiffert (0) | 2018.01.15 |
페이퍼요약 - 감항성을 위한 항공 소프트웨어 검증 프레임워크 by Wu (0) | 2018.01.10 |