제8장 정적 테스트
8.1 개요
리뷰의 종류
- 관리 리뷰
- 기술 리뷰
- 인스펙션
- 워크쓰루
- 감사
8.2 리뷰 프로세스
1. 경영진 준비
2. 리뷰 계획
3. 리뷰 절차 개요 설명
4. 작업물 개요 설명
5. 개별 준비
6. 그룹 검토
7. 재작업
8. 후속작업
8.3 관리 리뷰
- 관리 리뷰 : 진행 상황을 모니터하고 계회고가 현재 일정 상태를 평가하여 필요하다면 자원, 일정이나 프로젝트 범위 등을 변경하는 것
- 설치 계획
- 백업 및 회복 계획
- 안정성 계획
- 재난 계획
- 비상 대책 계획
- 진행 보고서
- 테스트 결과
8.4 기술 리뷰
- 기술 리뷰 : 유능한 인력으로 구성된 팀이 다음과 같은 작업을 수행하여 프로젝트의 기술적 상태를 확이하는 증거로 관리자에게 제공
- 대상 작업물이 의도된 사용에 적합한지
- 대상 작업물이 계획, 법규, 표준이나 명세를 충실히 지키는지 평가
- 변경 사항이 적절하게 구현되었는지를 평가하고 변경 명세에 식별된 영역에만 해당 변경이 영향을 미치는지 평가
- 여러 대안을 추천하거나 대안들을 검토
8.5 인스펙션
- 인스펙션 : 리뷰 종류 중에서 가장 형식화된 대표적인 리뷰 방식 (=동료 검토. 비슷한 수준이나 역할을 가진 사람들이 검토)
8.5.1 인스펙션 참가자의 역할
[주재자]
- 참가자들을 선정하고 계획.
- 참가자들에게 미리 검토할 자료 전달.
- 회의를 주재하는 역할을 담당
- 회의에서 기록된 모든 자료를 보고서 형식으로 만들어 개발자에게 전달
- 전문적으로 훈련된 퍼실리테이터가 담당
- 기록자 역할도 수행할 수 있음
[작성자]
- 필요한 자료를 제출
- 자료 내용에 관한 설명을 하거나 질문데 대답
- 방어적인 자세로 회의 참여X
- 검출된 결함 내용에 관하여 재작업
- 작업물 개요 설명도 작성자가 수행
- 인스펙션 주재자가 될 수 없다.
- 기록자가 될 수 없다.
[낭독자]
- 작업물에 대한 자신의 이해 및 해석을 바탕으로 작업물에 대해 회의 참가자들에게 설명하여 인스펙션 회의를 이끄는 역할
[기록자]
- 인스펙션 회의에서 논쟁, 모든 질문 및 답변 등을 기록
- 기록된 사항들을 정리하여 문서화
- 검토자 입장에서 참가
[검토자]
- 인스펙션 회의를 위해서 전달받은 자료를 검토하고 회의 준비
- 주어진 자료에서 결함을 찾아내고 기록
- 간단히 의견만 제시
- 객관적인 관점에서 회의에 참여
- 관리자 직책을 담당하는 사람은 팀멤버로 참여하는 것 금지
- 팀 구성원 모두 검토자 역할을 수행
8.5.2 인스펙션 과정
- 리뷰 계획
- 인스펙션 절차 개요 설명
- 인스펙션 작업물에 대한 개요 설명
- 준비
- 검토 회의
- 재작업
- 후속작업
8.6 워크쓰루
- 워크쓰루 : 결함을 검출할 뿐만 아니라 참가자들의 교육이나 지식 공유를 위해 수행. 작성자 본인 보통 회의 주재하며 기록자 역할도 담당
8.7 감사
- 감사 : 소프트웨어 제품 및 프로세스가 규제, 표준, 가이드라인, 계획, 절차를 준수하고 있는지를 독립적으로 평가하는 것
- 역할 : 대표 감사자, 감사자, 기록자 또는 개시자
8.8 정적 분석
- 정적 분석 : 도구의 지원을 받아 정적 테스트를 수행하는 것
8.8.1 코딩 표준
- 코딩 표준 : 개발자가 프로그램을 작성할 때 지켜야 하는 규약(=코딩 지침)
BSD | K&R | GNU |
if ( . . . ) { doSomething(); } |
if ( . . . ){ doSomething(); } |
if ( . . . ) { doSomething(); } |
8.8.2 복잡도 분석
- 필요 이상으로 복잡도가 높지 않도록 해야함.
- 순환 복잡도 = E(제어 흐름 그래프에 있는 간선들의 개수) - N(노드들의 개수) +2
- 순환 복잡도 = 닫힌 영역의 개수 + 1
- 순환 복잡도 = 분기 노드들의 개수 + 1
8.8.3 자료 흐름 분석
- 프로그램의 자료 흐름에 이상이 있는 분석하는 것
패턴 | 설명 | |
~d | 처음 정의됨 | 문제없음 |
du | define-use | 문제없음, 정상적인 경우 |
dk | define-kill | 잠재적 결함, 전혀 자료가 사용되지 않음 |
~u | 처음 사용됨 | 잠재적 결함, 자료가 정의되지 않고 바로 사용됨 |
ud | Use-define | 문제없음 |
uk | use-kill | 잠재적 결함, 자료가 정의되지 않고 바로 무효화됨 |
~k | 처음으로 무효화 | 심각한 결함. 무효화되었는데 사용 |
ku | kill-use | 문제없음. 무효화된 후에 다시 정의가 됨 |
kd | kill-define | 잠재적 결함. 두 번 연이어 정의됨 |
dd | define-define | 잠재적 결함. 두 번 연이어 정의됨 |
uu | use-use | 문제없음. 정상적인 경우 |
kk | kill-kill | 잠재적 결함 |
d~ | 제일 나중에 발생한 정의 | 잠재적 결함 |
u~ | 제일 나중에 발생한 참조 | 문제없음 |
k~ | 제일 나중에 발생한 무효화 | 문제없음. 정상적인 경우 |
'자격증 > CSTS' 카테고리의 다른 글
Part02. 테스트 설계기법(제10장 명세 기반 테스트) (0) | 2023.10.14 |
---|---|
Part02. 테스트 설계기법(제9장 구조 기반 테스트) (0) | 2023.08.23 |
Part01. 테스트 개요(제7장 테스트 자동화) (0) | 2023.08.12 |
Part01. 테스트 개요(제6장 소프트웨어 생명 주기 모델과 테스트) (1) | 2023.08.12 |
Part01. 테스트 개요(제5장 위험 기반 테스트) (0) | 2023.08.12 |