3.1.1 리뷰의 이점과 목적
정적 기법
- SW를 실행하지 않고 테스팅하는 기법
- 동적 테스팅과 달리 장애보다는 장애의 원인(결함)을 발견
리뷰
- 코드를 포함하여 SW 개발 및 테스트 산출물을 검토하고 테스팅하는 방법
- 동적 테스팅 전에 수행 -> 초기 결함의 수정은 비용 절감
- 대상 : 요구사항 명세, 코드, 테스트 계획, 테스트 케이스 등 모든 SW 개발 및 테스트 산출물
리뷰의 이점
- 조기 결함 발견 및 수정
- 개발 생산성 향상
- 테스팅 비용 감소 및 시간 단축
- 결함 감소(품질 향상)
- 개발 기간 단축
- 개발 생명주기 전체에 걸친 비용 감소
- 커뮤니케이션 향상
리뷰를 통해 발견하기 쉬운 결함
- 표준 위반, 요구사항 결함, 개발 설계 결함, 불충분한 유지보수성, 부정확한 인터페이스 명세
3.1.2 리뷰와 테스팅
최근 테스팅
- 결함 예방 활동 강조
- 조기 테스트 설계 -> 초기에 결함을 줄임
- 시스테 명세(요구사항 문서, 설계 기준서)에 대한 테스트 케이스 생성
- 요구사항 분석서를 통한 테스트 케이스 -> 시스템 또는 인수 테스팅
- 프로젝트 초기 모든 테스트 케이스 생성은 부적절
- 하지만, 리스크가 높거나 중요한 기능에 한해 테스트 케이스를 도출하면서 문서를 테스트
- 조기 발견 중요
3.2 리뷰 프로세스
리뷰 목적
- 결함 발견, 이해도 증진, 합의에 의한 결정과 이를 위한 토론
- 체계적인 리뷰를 통해 고품질 SW 개발과 비용 절감은 물론 개발 기간 단축의 효과
- 페이건 인스펙션 : 초기에 많은 인력, 코딩 단계부터 인력 줄음, 품질 비용 감소 및 개발 기간 단축
3.2.1 공식적 리뷰의 단계
- 정적 테스트 활동의 중요성이 높아지고 있음
- 정적 테스트 프로세스
- 정적 테스트 준비 단계
- 리뷰/분석 단계
- 후속 처리 확인 단계 – 비공식적인 리뷰도 일반적인 프로세스를 준수하는 것이 좋음
- 공식적 리뷰의 절차
- 계획 활동 -> 시작 -> 개별 준비 -> 리뷰 미팅 -> 재작업 -> 후속 처리 확인
3.2.2 역할과 책임
역할과 책임
- 관리자 : 리뷰 진행 결정, 프로젝트 일정에 리뷰 시간 할당, 리뷰의 목적 달성 여부 확인하고 승인
- 중재자 : 리뷰 회의 리드(리뷰 계획, 미팅 진행, 미팅 후속 조치 추적 관리 등)
- 다양한 관점을 중재하는자로 기뷰의 성패를 좌우
- 저자 : 리뷰 대상 문서(산출물)의 작성자 또는 책임자
- 검토자 – 테스트 전문가 참여
- 리뷰 대상 제품에서 인시턴트를 발견하고 기술할 사람(검사자 또는 인스펙터)
- 기술적 또는 비즈니스 배경을 갖춘자
- 기뷰어는 다양한 관점과 역할을 대표하도록 선택되어야 함
- 기록자 : 리뷰 미팅에서 발견된 모든 이슈, 문제점, 미해결점 등을 기록하고 문서화함
체크리스트 활용
- 효과적/효율적인 리뷰를 위해 사용자, 유지보수 담당자, 테스터, 시스템 운영자 등 다양한 관점의
- 체크리스트 또는 문서 유형별 체크리스트 이용 및 개발 권고
테스트 케이스 -> 시간과 노력 많이 필요
- 변경된 요구사항과 설계 반영을 위해 지속적으로 업데이트 필요
3.2.3 리뷰의 유형
워크쓰루 -> 이해 향상과 결함 발견
- 저자(산출물 작성자)에 의한 진행 및 제어
- 성격 : 시나리오 사용, 예행 연습, 동료 그룹 검토
- 시간 및 인원수 등에 제한이 없고 상황에 따라 변경할 수 있는 세션
- (선택적) 미팅 전 준비 과정 거침 -> 역할 지정(검토자, 기록자 등), 리뷰 리포트 준비,
- 인시턴트 목록 준비
- 실무에서는 비공식적 또는 공식적일 수 있음
- 주요 목적 : 학습, 시스템에 대한 이해 향상, 결함 발견
인스펙션 -> 결함 발견
- 저자가 아닌 중재자가 주도적으로 진행 및 제어
- 주로 동료 검사
- 역할이 정의되어 있음
- 메트릭(측정 척도와 방법)을 수집하고 활용함
- 체크리스트와 규칙을 기반으로 시작과 종료 조건이 있는 정식 프로세스 존재
- 미팅 전 준비 과정 필요
인스펙션 대상
- 모든 개발 산출물과 테스트 산출물
- 리스크 분석 결과를 활용하여 장애 발생 가능성이 높고 발생한 장애로 인한 영향이 심각할 수 있는
- 부분을 중심으로 진행 : 비즈니스와 연관성이 높거나, 복잡도, 변경율, 결함율이 높은 부분이 이에 해당
- 리스크 기반 테스트 전략 -> 리뷰 강도 조절
워크쓰루 vs 인스펙션
- 사업적 리스크가 높은 영역 – 워크쓰루
- 기술적 리스크가 높은 영역 – 인스펙션이나 기술적 리뷰
3.2.4 리뷰의 성공 요소
3.3 도구에 의한 정적 분석
정적 분석 특징
- 정적 분석은 동적 테스팅으로 찾기 힘든 결함을 발견
- 리뷰와 마찬가지로 정적 분석은 장애보다는 결함을 발견함
- 도구의 도움을 받아 수행
- 정적 분석 도구는 프로그램 코드를 분석하는 것은 물론, HTML이나 XML과 같이 생성된 결과물도 분석
정적 분석의 가치
- 테스트 실행 전 조기 결함 발견
- 의심스러운 코드와 설계에 대한 조기 정보(프로그램 복잡도 – 메트릭)
- 동적 테스팅으로 발견하기 어려운 결함 발견
- SW 모델상의 의존도와 불일치성 발견
- 코드와 설계의 유지보수성 향상
- 결함 예방 가능
정적 분석을 통해 발견될 수 있는 결함
- 정의되지 않은 값으로 변수 참조, 모듈과 컴포넌트 간의 일관되지 않은 인터페이스
- 사용되지 않는 변수, 사용되지 않는 코드
- 코딩 표준 위반, 보안 취약성, 코드와 소프트웨어 모델의 구문 규칙 위반
정적 분석 도구
- 정의된 규칙이나 코딩 표준을 준수하는지 확인하는 용도로 컴포넌트 테스팅과 통합 테스팅 동안에 주로 개발자에 의해 사용
- SW 모델링하는 동안 설계자에 의해 사용
'자격증 & 공부 > ISTQB' 카테고리의 다른 글
[ISTQB] 2. 소프트웨어 생명주기와 테스팅 (1) | 2023.10.21 |
---|---|
[ISTQB] 1. 소프트웨어 테스팅의 기초 (1) | 2023.10.21 |