본문 바로가기
Computer Science

SW 품질 향상을 위한 코드 정적분석 (1)

by OKOK 2021. 6. 7.

소프트웨어 제품 품질 보증

소프트웨어 품질 : 소프트웨어가 기능, 성능 및 만족도에 있어서 명시된 요구사항 및 내재된 요구사항을 얼마나 충족하는 가를 나타내는 소프웨어 특성의 총체

Verification : 소프트웨어가 정확한 요구사항에 부합하여 구현되었음을 보장하는 활동

Validation : 소프트웨어가 고객이 의도한 요구사항에 따라 구현되었음을 보장하는 활동

정적인 방법 : 동료검토 (인스펙션, 워크스루, 데스크체크) / 도구를 이용한 정적 분석 (룰 기반)

 

규모 관련 지표

라인 수 : 보통 공백을 제외한 라인 수 의미

주석 비율 : 특정 도메인에서 주로 측정 

함수 라인 수 : 길면 소스코드 이해의 어려움

 

복잡도와 테스트 커버리지 지표

순환 복잡도가 높으면 코드 이해가 어려움

자동차 분야 기능 안전의 경우 낮은 순환 복잡도를 강력히 권고함

테스트 커버리지 : 테스트가 소스코드를 얼마나 실행했는가? 주로 화이트박스 테스트에서 측정

 

의존성 코드 중복 지표

 

코드 정적 분석

실제 실행 없이 컴퓨터 소프트웨어, 특히 소스코드를 분석하는 것

 

댓글