정적 기법
SW를 실행하지 않고 테스팅하는 기법
동적 테스팅과 달리 장애보다는 장애의 원인(결함)을 발견
리뷰
코드를 포함해 SW개발 및 테스트 산출물을 검토하고 테스팅하는 방법.
동적 테스팅 전에 수행 -> 초기 결함의 수정은 비용 절감에 도움이 된다
리뷰의 이점
- 조기 결함 발견 및 수정
- 개발 생산성 향상
- 개발 기간 단축
- 테스팅 비용 감소 및 시간 단축
- 개발 생명주기 전체에 걸친 비용 감소
- 결함 감소(품질 향상)
- 커뮤니케이션 향상
리뷰를 통해 발견하기 쉬운 결함
- 표준 위반
- 요구사항 결함
- 개발 설계 결함
- 불충분한 유지보수성
- 부정확한 인터페이스 명세
최근 테스팅
- 결함 예방 활동 강조
- 조기 테스트 설계 -> 초기에 결함을 줄임
- 프로젝트 초기에 모든 테스트 케이스 생성은 부적절
- 리스크가 높거나 중요한 기능에 한해 테스트 케이스를 도출하면서 문서를 테스트 -> 조기 발견 중요
리뷰 목적
결함 발견, 이해도 증진, 합의에 의한 결정과 이를 위한 토론
체계적인 리뷰를 통해 고품질 SW개발과 비용절감은 물론 개발 기간 단축의 효과가 있다.
- 페이건 인스펙션 :
- 초기에 많은 인력을 투입
- 코딩 단계부터 인력이 줄게된다
- 품질 비용이 감소하고 개발 기간 단축
공식적 리뷰의 절차
단계 | 실행 주체 | 세부 활동 |
계획 | Manager | 리뷰 기준 정의 인원 선택 역할 분담 매우 공식적인 리뷰는 시작/종료 기준 정의 리뷰 범위 선정 시작 기준 준수 체크 |
시작 | Moderator Reviewer Author |
문서 배포 목적/절차/문서에 대한 설명 |
개별 준비 | Reviewer | 문서를 리뷰하며 리뷰 미팅을 준비 잠재 결함 체크, 회의에서 제시할 질문과 의견 준비 |
리뷰 미팅 | Moderator Reviewer Author Scribe |
검사/평가/결과 기록 토론하고 기록함 결과를 문서화하거나 상세회의록 작성 (공식리뷰) 결함 기록 -> 결함 수정 여부 결정(결함의 해결 방안은 토론하지 않는 것이 원칙) |
재 작업 | Author | 결함 수정 결함 상태 업데이트 |
후속 조치 | Moderator | 결함 수정 여부 확인 메트릭 수집 리뷰 완료 기준 체크(공식리뷰) |
역할과 책임
관리자(Manager)
리뷰 진행 결정, 프로젝트 일정에 리뷰 시간 할당, 리뷰의 목적 달성 여부 확인하고 승인
중재자(Moderator)
리뷰 회의 리드(리뷰 계획, 미팅 진행, 미팅 후속 조치 추적 관리 등)
다양한 관점을 중재하는 자로 리뷰의 성패를 좌우
저자(Author)
리뷰 대상 문서(산출물)의 작성자 또는 책임자
검토자(Reviewer) - 테스트 전문가
리뷰 대상 제품에서 인시턴트를 발견하고 기술할 사람(검사자 or 인스펙터)
리뷰어는 다양한 관점과 역할을 대표하도록 선택
기록자(Scribe or recorder)
리뷰 미팅에서 발견된 모든 이슈, 문제점, 미해결점 등을 기록하고 문서화 함
체크리스트 활용
효과적/효율적인 리뷰를 위해 사용자, 유지보수 담당자, 테스터, 시스템 운영자 등 다양한 관점의 체크리스트 또는 문서 유형별 체크리스트 이용 및 개발 권고
테스트 케이스 -> 시간과 노력 많이 필요함
인스펙션(Inspection) -> 결함 발견
- 저자가 아닌 중재자가 주도적으로 진행 및 제어
- 주로 동료가 검사
- 역할이 정의되어 있다
- 메트릭(측정 척도와 방법)을 수집하고 활용한다
- 체크리스트와 규칠을 기반으로 시작과 종료 조건이 있는 정식 프로세스 존재
- 미팅 전 준비 과정이 필요하다
- 인스펙션 리포트와 발견사항(인시턴트) 리스트 산출
- 정신적인 후속 처리 확인(Follow-up) 프로세스 존재
- (선택적) 리뷰 프로세스 개선 활동 수행
워크쓰루(Walkthrough) -> 이해 향상과 결함 발견
- 저자에 의한 진행 및 제어
- 성격 : 시나리아 사용, 예행 연습(Dry runs), 동료 그룹 검토
- 기산 및 인원 수 등에 제한이 없고 상황에 따라 변경 할 수 있는(Open-ended)세션
- (선택적) 미팅 전 준비 과정 거침 -> 역할 지정(검토자, 기록자 등), 리뷰 리포트 준비, 인시던트(조사가 요구되는 이벤트) 목록 준비
- 실무에서는 비공식적 또는 공식적일 수 있다.
- 주요 목적 : 학습, 시스템에 대한 이해 향상, 결함 발견
인스펙션 대상
- 모든 개발 산출물과 테스트 산출물
- 리스크 분석 결과를 활용해 장애 발생 가능성이 높고 발생한 장애로 인한 영향이 심각할 수 있는 부분을 중심으로 진행한다.
- 리스크 기반 테스트 전략 -> 리뷰 강도 조절
워크쓰루 vs 인스펙션
사업적 리스크가 높은 영역 - 워크쓰루
기술적 리스크가 높은 영역 - 인스펙션 or 기술적 리뷰
리뷰의 성공 요소
기술적 관점
- 적절한 리뷰 기법 적용
- 효과적/효율적 결함 발견을 위해 체크리스트 활용(적절한 역할 분담 필요)
- 리뷰 기법에 대한 교육(훈련)필요 -> 특히 인스펙션
- 테스터의 리뷰 참여 -> 제품에 대한 이해도 높히기
조직 및 체계적 관점
- 명확한 리뷰 목적 정의
- 리뷰 목적에 적합한 인력 선택
- 지속적인 학습 및 프로세스 개선
- 경영층의 적극적인 지원
심리적 관점
- 사람 관련 이슈와 심리적인 측면을 고려해야한다.(리뷰를 통해 저자가 긍정적인 경험)
- 리뷰는 신뢰가 바탕이 돼야 한다.(리뷰결과를 리뷰참여자를 평가하는 용도로 사용하지 않는다.)
도구에 의한 정적 분석
정적 분석을 통해 발견 될 수 있는 결함
- 정의되지 않은 값으로 변수 참조
- 모듈과 컴포넌트 간의 일관되지 않은 인터페이스
- 사용되지 않는 변수
- 사용되지 않는 코드
- 코딩 표준 위반
- 보안 취약성
- 코드와 SW 모델의 syntax 위반
정적 분석 도구
- 기 정의된 규칙이나 코딩 표준을 준수하는지 확인하는 용도록 컴포넌트 테스팅과 통합 테스팅 동안에 주로 개발자에 의해 사용
- SW모델링 하는동안 설계자에 의해 사용
'컴퓨터공학2학년 > SW테스팅' 카테고리의 다른 글
[SW테스팅] 테스트 설계 기법의 종류 (0) | 2021.04.23 |
---|---|
[SW테스팅] 테스트 설계 기법 (0) | 2021.04.23 |
[SW테스팅] 테스트 유형 (0) | 2021.04.09 |
[SW테스팅] SW테스팅을 제약하는 요소 (0) | 2021.03.20 |
[SW테스팅] 테스팅의 심리학 (0) | 2021.03.20 |
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!