정적 코드 분석 및 검증

PC-lint Plus는 테스트와 통합 이전 단계에서 결함을 식별합니다

정적 분석은 소스 코드를 실행하지 않고 검사하여, 테스트나 통합 과정에서 결함이 드러나기 전에 결함이 발생한 시점에 이를 식별합니다. 규제 대상 산업 분야에서 임베디드 C 및 C++를 개발하는 경우, 프로젝트 초기부터 정적 분석을 수행하면 코드베이스 전반에 결함 유형이 누적되는 것을 방지하고, 인증 전에 해결해야 할 결함의 양을 줄일 수 있습니다. 

정적 분석의 역할

정적 분석 도구는 소스 코드를 체계적으로 분석하고, 일련의 규칙을 적용하여 테스트만으로는 발견하기 어렵거나 불가능한 문제를 식별합니다. 동적 테스트와 달리 분석 결과는 테스트 입력이나 런타임 조건에 따라 달라지지 않으며, 동일한 코드를 분석할 때마다 동일한 결과를 제공합니다. 

주요 기법은 다음과 같습니다.

• 코드 구현 표준 규칙에 대한 패턴 매칭을 통해 위반 사항과 의심스러운 구문 표시 
• 실행 경로 전반에 걸쳐 변수 값을 추적하고 유효하지 않은 상태를 포착하기 위한 값 추적 
• 변수가 예상 범위 내에 머무르는지 확인하기 위한 경계값 검사 
• 제어 흐름 및 데이터 흐름에 대한 추상 해석을 통해 의존성과 도달 가능성 문제 식별

정적 분석이 발견하는 것

정적 분석으로 식별할 수 있는 주요 결함 유형은 다음과 같습니다.

• Null 포인터 참조 및 배열 범위를 벗어난 액세스 
• 초기화되지 않은 변수 및 부적절한 형 변환 
• MISRA C:2025, MISRA C:2023, MISRA C++:2023, AUTOSAR C++, CERT-C를 포함한 코드 구현 표준 위반 
• CWE Top 25 및 Top 10 KEV 목록을 포함한 CWE 분류에 매핑된 보안 취약점 
• 도달 불가능한 코드, 논리 오류 및 리소스 누수 
• 경합 조건 및 잘못된 실행 순서를 포함한 동시성 문제

PC-lint Plus

 PC-lint Plus는 Vector의 C 및 C++ 소스 코드용 정적 분석 도구입니다. 이 도구는 exida로부터 IEC 61508(SIL 1~3), ISO 26262(ASIL A~D), IEC 62304, EN 50716 인증을 받았으며, CWE 호환성 인증도 획득했습니다. 
PC-lint Plus는 MISRA C:2025, MISRA C:2023, MISRA C:2012(개정안 1~4), MISRA C++:2023, MISRA C++:2008, AUTOSAR C++, CERT-C, CWE를 기본으로 지원합니다. 이 제품은 대부분의 빌드 체인 및 개발 환경에 통합할 수 있으며, 텔레메트리나 인터넷 연결 없이 로컬에서 실행됩니다. 또한 병렬 처리를 통해 대규모 코드베이스에서도 효율적으로 확장됩니다. 억제 규칙 관리 기능은 완전한 추적성을 제공하며, 모든 억제 사항이 문서화됩니다. 규칙 수준에서 쿼리 기반 예외를 정의할 수 있고, 사용되지 않는 억제 사항은 자동으로 표시됩니다.