ISO 26262-6(자동차), IEC 62304+AMD1(의료), IEC 61508-3(로봇, 배터리 등 모든 제조산업), IEC 62279(철도) 등과 같은 국제 표준을 기반으로 안전 무결성 등급(Safety Integrity Level, SIL)에 따른 기능안전 목표달성 여부를 검증합니다.
SW 정적 시험
- 코딩 규칙 검증
-
- 소프트웨어의 품질과 안정성을 확보하기 위해 산업 표준에서 요구하고 있는 코딩 규칙 준수 여부를 확인합니다.
MISRA C 2012
MISRA C++ 2008
MISRA C 2023
MISRA C++ 2023
FDA C
FDA C++
JSF AV C++
무기체계 소프트웨어 코딩 규칙(C/C++)
- 보안 취약점 점검
-
- 소프트웨어의 보안 취약점을 사전에 점검하여 보안 규정 준수 여부를 확인합니다.
예) CERT C/C++, CWE 658/659, OWASP Top 10 등
- 런타임 오류
-
- 소프트웨어의 실행 경로를 분석하여 사전에 발생 가능한 오류를 발견하고 결함을 예방합니다.
예) Overflow, Divided by zero, Non Termination of Loop, Unreachable Code 등
- 메트릭 분석
-
- 소프트웨어의 품질을 정략적으로 측정하여 소스코드의 상태를 진단하고 개선점을 도출하여 품질 향상에 도움을 줍니다.
예) Cyclomatic Complexity, Number of Call Level, Line of Code 등
SW 동적 시험
- 코드 커버리지 분석
-
- 코드 커버리지 분석을 위한 테스트케이스를 실행하여 소소코드의 문장, 분기, 조건 등이 실행된 비율을 측정하고 테스트의 충분성과 검증되지 않은 코드 영역을 식별합니다.
Statement
Decision(Branch)
Condition
MC/DC
Function
Call
- 테스트케이스 도출 및 작성
-
- 기능 안전 소프트웨어의 핵심 요구사항을 철저히 분석하여 예상치 못한 오류 또는 예외 상황을 포괄할 수 있도록 동등 분할, 경계값 분석 등 다양한 테스트 기법 적용하여 테스트케이스를 도출 및 작성합니다.
- 단위테스트, 통합테스트, 시스템테스트, 인수테스트
-
소프트웨어의 각 개발 단계에서 목표하는 검증 범위를 명확히 하여, 오류를 조기에 발견하고 개발 요구사항의 충족 여부를 확인합니다.
- 단위테스트 : 소프트웨어의 개별 모듈이나 함수를 독립적으로 실행하여 오류를 탐지합니다.
- 통합테스트 : 개별 단위테스트를 완료한 여러 모듈을 결합하여 상호작용을 실행하고, 통합 시 발생하는 오류를 식별합니다.
- 시스템테스트 : 통합된 소프트웨어 시스템을 실행하여 요구사항 충족 여부를 확인합니다.
- 인수테스트 : 고객 또는 비즈니스 요구사항에 따라 최종 제품을 실행하여 수용 가능 여부를 확인합니다.
기능안전 시험 대상
자동차 |
ISO 26262-6 |
의료 |
IEC 62304+AMD1 |
제조 (로봇, 배터리 등 모든 제조산업) |
IEC 61508-3 |
국방 |
방위사업청 매뉴얼 |
철도 |
IEC 62279, EN 50128 |
항공 |
RTCA DO-178C |
건설기기 |
IEC 19014-4 |
원자력 |
IEC 60880, IEC 62138 |
기능안전 시험 절차
-
STEP 1
시험 신청
- 시험 시청서 작성
- 시험대상제품 소개
- 시험 요구사항 제시
-
STEP 2
시험대상 및 환경 확인
- 시험 범위 및 시험일정 합의
- 시험 환경 구축 및 검증
-
STEP 3
SW 정적시험
-
STEP 4
SW 동적시험
- SW 동적 시험 진행
※ SW 정적 시험만 신청 시, 제외
-
STEP 5
결과 레포트 발급
- 결과레포트 전달
※ 요청 시, 시험 성적서 발급