Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
임베디드 소프트웨어 개발 프로세스와 테스트에서 통합 테스트 관련하여 알려드리겠습니다.
혹시~? 앞의 이어지는 글을 확인하셨나요? 아래 콘텐츠를 확인해 보시고 오시면 이해가 쏙쏙! 👍
🔎 연재글 [SW검증센터] SW 개발 프로세스와 테스트(1)
🔎 연재글 [SW검증센터] SW 개발 프로세스와 테스트(2)

통합 테스트의 개념과 목적

소프트웨어 통합 검증은 단위 검증을 통하여 검증된 단위 모듈을 통합하는 과정에서 소프트웨어 아키텍처 설계(Software Architecture Design)를 기반으로 수행되며, 통합 검증을 수행할 때는 시스템의 모든 구성 요소를 통합하는 과정이 필요합니다. 이는 각각의 모듈이나 서브 시스템이 함께 작동할 때 발생할 수 있는 상호 작용과 문제를 식별하고 해결하기 위함입니다.
따라서 통합 검증은 단순히 개별 구성 요소의 기능을 확인하는 것이 아니라, 모듈 간 통합 기능의 완전한 기능성과 상호 작용을 평가하는 것이 중요합니다.

통합 테스트 계획 및 전략

통합 검증을 위해서는 철저한 계획과 전략이 필요합니다. 이는 테스트 목표와 범위를 명확히 정의하고, 통합 검증 기법과 적합한 테스트 케이스를 작성하여 수행하고, 테스트 케이스를 평가하기 위한 커버리지 측정이 포함되어야 함을 의미합니다.
다음은 ISO26262에서 요구하는 ASIL에 따른 검증 방법 일부를 나타냅니다.
1. 소프트웨어 통합 시험 방법
- Requirements-based test (요구사항 기반 테스트)
모듈을 통합하는 과정에서 소프트웨어 아키텍처 설계를 기반으로 수행되는 검증으로,
통합된 소프트웨어의 기능이 요구사항에 따라 동작함과 예기치 않은 동작이 동작하지 않음을 검증합니다.
- Interface test (인터페이스 테스트)
단위 모듈을 통합하는 과정에서 통합되는 모듈 사이의 인터페이스를 통해 송/수신되는 데이터가 정의된 대로 동작하고, 올바르게 전달되는지를 확인하는 검증입니다.
- Fault injection test (결함 주입 테스트)
소프트웨어의 통합 모듈에 의도적으로 결함을 주입하여 소프트웨어의 강건성 및 안전 메커니즘을 검증하는 과정입니다.
이 과정은 소프트웨어가 요구사항대로 동작하지 않는 상황이나 오류에 대해 처리되는지를 평가하고, 시스템이 설계된 대로 동작하는지를 확인합니다.
2. 소프트웨어 통합 시험 테스트 케이스 생성 방법

- Analysis of requirements (요구사항 분석)
아키텍처 설계 분석 (통합의 단위 및 단계 구성)을 통하여 테스트 케이스를 도출하는 방법입니다.
테스트 케이스는 특정 기능이나 동작을 테스트하는 데 사용되며, 입력 값, 실행 조건, 예상 결과 등을 명시하여 작성됩니다.
- Generation and analysis of equivalence classes (동치 클래스의 생성 및 분석)
입력 및 분기 조건에 대한 동등 분할 클래스 분석을 통한 대푯값 추출하여 테스트 케이스를 작성하는 방법입니다.
- Analysis of boundary values (경계 값 분석)
입력 및 분기 조건에 대한 동등 분할 클래스 분석을 통한 경곗값 추출하여 테스트 케이스를 작성하는 방법입니다.
3. 소프트웨어 통합 시험 커버리지 기준

- Function coverage (함수 커버리지)
소프트웨어의 모든 함수가 적어도 한 번은 호출되었는지 확인하는 데 사용됩니다.
- Call coverage (호출 커버리지)
함수 호출 관계가 테스트되고 실행되었는지를 확인하여 시스템의 상호 작용을 검증하는 데 사용됩니다.
이러한 검증 절차를 위한 사전 준비가 완료되면 테스트가 진행되며, 테스트 중 발견한 결함을 기록하는 활동의 결함 관리, 테스트 결과를 문서화하고 보고하는 활동이 수행됩니다.

지금까지 통합 테스트에 대해 알아보았습니다.
더 구체적인 검증 서비스에 대해서 궁금하시거나, 기타 문의 사항은 sve@mdsit.co.kr로 문의 메일 부탁드립니다.

MDS 인텔리전스
임베디드 소프트웨어 고품질 및 신뢰성 확보를 위한, SW 검증센터
E. sve@mdsit.co.kr
