소프트웨어 정적 시험 절차

2023. 10. 17. 10:25무기 체계 소프트웨어/Validation

1. 소프트웨어 정적 시험 계획 수립 절차

- 소프트웨어 정적시험 계획은 다음 내용을 포함한다

  • 시험대상 항목(CSCI, CSC, CSU 등이며 최소 시험단위는 파일임) 및 시험 기준 설정방법
  • 정적 시험 시기 및 환경 구축 방안(시험 도구 선정 등)

2. 시험 기준

- 결함이 검출되지 않아야 하고 소스코드 메트릭 제한값을 준수해야 한다. 결함 검출시 소프트웨어 소스 코드 수정 후 재시험하여 결함 존재 여부를 확인한다. 단, 거짓경보 및 시험 대상이 아닌 것은 결함에 포함하지 않는다.

 

3. 시험 종류

  • 코딩 규칙 검증 : 본 매뉴얼 무기체계 소프트웨어 코딩 규칙 준수 여부
  • 취약점 점검 : 소프트웨어 취약점 점검(CWE-658/659/660)
    ※ 자동화 도구에서 지원하는 취약점 점검 항목은 모두 적용하고, CWE 목록 중 도구가 지원하지 않는 항목에 대해서는 대안과 사유를 제출하고 사업 관리부서, 기술지원기관과 협의하여 결정
※ CWE(Common Weakness Enumeration)는 소프트웨어 보안 및 품질 강화를 위해 개발 시에 참고할 수 있도록 소프트웨어 취약점을 표준화한 목록으로서, 미국 비영리 공익 기관인 MITRE가 제공

※ CWE-658/659-660 C/C++/Java 언어로 소프트웨어를 개발할 때 소프트웨어 소스 코드에 발생 빈도가 높은 취약점 목록
  • 소스코드 메트릭(Code Metric) 점검(함수 기준)

메트릭 제한값 비고
Cyclomatic Complextiy
(복잡도)
20이하  
Number of Call Levels
(중첩도)
6이하 함수 내 조건문 등의 외대 중첩(Nesting)의 깊이
Number of Function Parameters
(파라미터)
8이하  
Number of Calling Function 8이하 이 함수가 몇 개의 다른 함수에 의해 호출되는가?
Number of Called Function 10이하 이 함수가 몇개의 다른 함수를 호출 하는가?
(같은 함수를 호출시는 1로 계산)
Number of Executable Code Lines
(실행 코드)
200이하  

4. 시험 확인서, 후속 조치 사항

  • 소프트웨어 신뢰성 시험도구의 한계로 인한 결함 중 거짓경보의 경우 해당 소스 코드를 확인하여 거짓경보 여부를 분석하고, 거짓경보에 대한 설명 자료를 추가한다.
  • 규격화시 소프트웨어통합시험결과서(STR)에 최신화 반영한다.