반응형

제목: 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 발표. 이후 여러 차례 수정을 거쳐 1992DO-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)을 통해 런 타임에 실행되는 코드 부분을 측정하는 도구를 제공. , 실행되지 않은 코드 부분을 자동으로 찾아내어 부족하거나 빠진 테스트 케이스를 빠르게 식별하게 해준다


반응형

+ Recent posts