본문 바로가기
CSTS (일반등급)

CSTS 8장 정적테스트

by record2840 2025. 5. 22.

동적테스트 : 프로그램 실행 O
정적테스트 : 프로그램 실행 X
   리뷰
리뷰의 5가지 :  관리 리뷰 /  기술 리뷰 /  인스펙션  / 워크쓰루  / 감사

 

리뷰 프로세스
1)
경영진 준비
    필요한 자원(스태프, 설비 재원 훈련 및 교육)을 제공하고 법규 표준 및 관련 정책의 요구에 따른 리뷰 수행을 보장해야 한다.
2)
리뷰 계획
     리뷰 목적을 파악해서 리뷰팀 구성. 팀 구성원에게 책임 할당. 자료 제공. 리뷰 일정을 결정해서 참가자들에게 공지
3)
리뷰 절차 개요 설명
     리뷰 리더의 요청이 있을 때 실행. 적절한 자격이 있는 사람이 수행해도 무방
4)
작업물 개요 설명
     리뷰 리더의 요청이 있을 때 실행. 사전이해도 높이는 목적
5)
개별 준비
     작업물이나 프로세스 검토, 문제 발생 시 문서화하여 리더에게 보냄
6)
그룹 검토
7)
재작업 (기)
     검출된 문제 목록을 개발자나 문제 해결 책임자에게 전달하여 문제를 해결하는 작업을 수행
8)
후속작업
     리뷰 리더는 회의에서 산출된 모든 조치 항목을 완료하였는지 확인

 

관리리뷰
진행상황을 모니터하고 계획과 현재 일정 상태를 평가하여 자원 일정 프로젝트 범위를 변경하는 것
관리 리뷰 후에는 해당 계획이 적절히 변경되었는지 확인할 필요가 있다.
그룹 검토 회의는 관리 스태프들이 참여하며 관리자가 주재.
기술 스태프는 필요한 정보를 제공해야 한다.
리뷰팀이 발견한 문제, 조치 사항, 결정사항 및 추천들은 서기가 기록
산출물들은 검토 회의 결과에 영향을 받는 사람들에게도 전달

기술리뷰
유능한 인력으로 구성된 팀
대상 작업물이 의도된 사용에 적합한지 평가
대상 작업물이 계획, 법규, 표준이나 명세를 충실히 지키는지 평가
변경 사항이 적절하게 구현되었는지를 평가하고 변경 명세에 식별된 영역에만 해당 변경이 영향을 미치는지 평가
여러 대안을 추천하거나 대안들을 검토
기술 리뷰는 대표 엔지니어가 주재하며 경우에 따라 관리자가 해결해야 할 이슈가 있으면 관리자도 참가할 수 있다.

 

인스펙션

(=동료 검토) = 촉진자. 퍼실리테이터 Facilitator
리뷰 종류 중에서 가장 형식화된 대표적인 리뷰 방식
인스펙션은 가능한 개발 초기에 검사해야만 개발 초기 작업물에서 문제를 찾아낼 수 있다.

주재자(Inspection leader/ Moderator):
  회의를 주재 하는 역할
  검사할 작업물을 기초로 인스펙션 참가자를 선정. 인스펙션을 계획. 인스펙션 참가자들에게 미리 검토할 자료를 제공 준비할 수 있게 한다.

 

작성자 (Author)
인스펙션 회의에 필요한 자료를 제출해야 한다. 자료 내용에 관한 설명을 하거나 질문에 대답할 수 있어야 한다.
작성자는 인스펙션 주재자가 될 수 없다.

 

낭독자 (Reador)
작업물에 대한 이해를 바탕으로 작업물에 대해 회의참가자들에게 설명 인스펙션 회의를 이끄는 역할

 

기록자 (Recorder)
회의 기록하여 문서화 기록자는 회의 주재자나 개발자 입장이 아닌 검토자 입장에서 참가
인스펙션 회의에서 토론을 이해하고 의미 있는 문서를 위해 충분한 지식을 갖추어야 한다.
작성자는 기록자가 될 수 없지만 인스펙션 주재자는 기록자 역할도 수행할 수 있다.

 

검토자 (Inspector)
자료 검토, 인스펙션 회의 준비. 자료에서 결함을 찾아내고 기록.
검토자는 해결자 입장이 아니므로, 찾아낸 결함을 해결하기 위해 노력하지 말고 간단히 의견만 제시
관리자 직책을 담당하는 사람은 팀 멤버로 참여하는 것이 금지

인스펙션 과정
1)
리뷰 계획
2)
인스펙션 개요 설명
3)
인스펙션 작업물에 대한 개요 설명
4)
준비
5)
검토 회의: 문제를 해결하는 방안에 관한 토론은 하지 않는다 .
6)
재작업
7)
후속작업

 

워크쓰루(Walithough)
결함 검출 + 교육, 지식 공유
워크쓰루는 작성자 본인이 보통 회의를 주재하며 기록자 역할도 담당한다.
관리자 직책을 담당하는 사람은 팀 멤버로 참여하는 것을 금지
작성자가 작업물을 따라 돌아다니면서 작업물에 대한 설명을 진행하고 검출된 결함에 대한 권고 및 조치 사항들을 기록한다.
재작업 및 후속 단계에서 작성자는 모든 조치 사항들이 종결되었음을 확인

 

감사
소프트웨어 제품 및 프로세스가 규제, 표준, 가이드라인, 계획, 절차를 준수하고 있는지를 독립적으로 평가하는 것

정적 분석
도구의 지원을  받아 정적 테스트를 수행하는 것
) 코딩 표준 부합, 코드 복잡도 계산, 자료 흐름 분석

1) 코딩 표준 부합
중괄호 위치에 따른 코딩 스타일

 

Undefined behavior 가 발생할 수 있는 경우 3가지 (기출)
① 초기화되지 않은 변수의 사용
② 배열의 범위를 넘어서는 인덱스를 사용하여 배열 참조
③ 0
으로 나눗셈 연산 수행

 

2)  복잡도 분석
복잡도를 통제하여 필요 이상으로 복잡도가 높지 않도록 하는 일
복잡도가 높은 프로그램은 신뢰송, 테스트 비용, 유지보수성 측면에서 좋지 않은 결과를 가져온다.
순환복잡도 = E – N + 2    E: 간선들의 개수 N : 노드의 개수
           =
닫힌 영역의 개수 + 1 
           =
분기 노드들의 개수 + 1

 

3)  자료 흐름 분석

패턴 설명
dk define-kill 잠재적 결함 전혀 자료가 생성되지 않음
~u 처음 사용됨 잠재적 결함 자료가 정의되지 않고 바로 사용됨
~k 처음 무효화 잠재적 결함 자료가 정의되지 않고 바로 무효화됨
ku Kill-use 심각한 결함 무효화되었는데 사용
dd define-define 잠재적 결함. 두 번 연이어 정의됨

 

 

반응형