본문으로 건너뛰기
고급약 40분

리뷰 기법 심화 — 체크리스트 기반과 퍼스펙티브 기반 읽기(PBR)를 직접 해보기

"다들 한번 읽어보세요"는 리뷰 기법이 아니다. 애드혹·체크리스트 기반·퍼스펙티브 기반 읽기(PBR)를 같은 문서에 적용해 보고, 세 방식의 검출 특성이 어떻게 다른지 직접 확인한다. 테스터·설계자·사용자 퍼스펙티브별 시나리오를 만들고, 검출률·리뷰 효율·탈출률로 리뷰를 측정해 개선하는 절차까지 다룬다.

  • #리뷰
  • #PBR
  • #퍼스펙티브기반읽기
  • #체크리스트
  • #정적테스트

개념

"각자 한번 읽어보고 의견 주세요"의 문제

리뷰 회의 전에 문서를 공유하고 "읽어보고 오세요"라고 하는 것을 애드혹 리뷰(ad hoc review) 라고 부른다. 기법이 아니라 기법의 부재다. 애드혹 리뷰에는 세 가지 구조적 문제가 있다.

① 중복      세 사람이 전부 1~3페이지만 꼼꼼히 읽고 뒤는 훑는다
② 공백      아무도 안 본 절이 생기는데, 아무도 그 사실을 모른다
③ 편향      각자 자기가 잘 아는 관점으로만 본다 — 그 관점이 겹치면 겹친 채로 끝난다

모듈 43 레슨 2에서 리뷰 기준 (체크리스트)과 리뷰 유형 (ISO/IEC 20246의 비공식 리뷰·워크스루·기술 리뷰·인스펙션)을 다뤘다. 유형은 "얼마나 형식을 갖출 것인가"의 축이다. 이 레슨은 다른 축, 읽기 기법(reading technique) 을 다룬다. 같은 인스펙션이라도 참가자가 문서를 어떤 절차로 읽느냐에 따라 결과가 달라진다.

리뷰 유형 (형식의 정도)   ×   읽기 기법 (읽는 절차)
비공식 / 워크스루 /            애드혹 / 체크리스트 기반 /
기술 리뷰 / 인스펙션           퍼스펙티브 기반(PBR) / 결함 기반

체크리스트 기반 읽기

체크리스트 기반 읽기(CBR, checklist-based reading)는 문서 유형별 질문 목록을 들고 읽는다. 모듈 43 레슨 2의 리뷰 체크리스트가 이 계열이다. 요구사항 문서용 체크리스트의 예시는 이렇게 생겼다.

번호질문
RQ-1각 요구사항이 검증 가능한 형태인가(관측 가능한 값으로 진술되어 있는가)
RQ-2"빠르게", "적절히", "사용자 친화적" 같은 모호어가 정량 기준 없이 쓰였는가
RQ-3오류·예외·경계 상황의 동작이 명시되어 있는가
RQ-4상충하는 요구사항 쌍이 있는가
RQ-5용어가 문서 안에서 일관되게 쓰였는가(같은 개념에 두 이름)
RQ-6기존 기능에 미치는 영향이 언급되어 있는가
RQ-7비기능 요구사항(성능·보안·접근성)에 수치 기준이 있는가
RQ-8데이터 생명주기(생성·수정·삭제·보존)가 정의되어 있는가

체크리스트의 강점은 지식 축적 이다. 운영 장애가 날 때마다 항목이 하나씩 늘고, 그 항목이 팀의 기억이 된다. 약점은 두 가지다.

  • 체크리스트에 없는 결함은 안 보인다. 리뷰어의 시야가 목록으로 수렴한다.
  • 리뷰어 간 분담이 안 된다. 세 명이 같은 체크리스트를 들면 세 명이 같은 곳을 본다.

퍼스펙티브 기반 읽기(PBR)

퍼스펙티브 기반 읽기(PBR, perspective-based reading)는 다른 접근을 쓴다. 리뷰어마다 다른 이해관계자 역할을 맡기고, 그 역할이 실제로 하는 작업을 문서로 수행하게 한다.

핵심은 "읽어라"가 아니라 "만들어 보라" 다. 무언가를 만들다 보면 문서의 공백이 드러난다.

퍼스펙티브수행할 작업작업 중 드러나는 결함
테스터각 요구사항에 대한 테스트 케이스와 기대 결과를 초안한다검증 불가능한 요구사항, 기대 결과를 특정할 수 없는 구간(오라클 공백)
설계자문서를 근거로 상위 설계·데이터 모델을 스케치한다데이터 흐름의 단절, 정의되지 않은 개체·관계, 성능 제약 부재
사용자대표 사용자 시나리오를 끝까지 따라가 본다빠진 단계, 되돌리기 경로 없음, 오류 상황의 안내 부재

PBR은 1990년대 미국 NASA 고다드 우주비행센터의 소프트웨어 공학 연구소(SEL)에서 Basili 연구진이 실증 실험한 기법이다. 전문 개발자를 대상으로 한 실험에서 PBR 팀이 기존의 비공식 읽기 방식보다 문서 커버리지와 팀 단위 결함 검출에서 더 나은 결과를 보였다 는 것이 반복해서 보고됐다. 개인 단위 효과보다 팀 단위 효과 가 크다는 것이 특징인데, 이유가 중요하다 — 퍼스펙티브가 다르면 찾는 결함의 집합이 겹치지 않기 때문이다.

애드혹 3인                   PBR 3인
┌────┐                       ┌──────┐
│ ██ │  ← 겹침이 크다        │ █    │ 테스터
│ ██ │                       │   █  │ 설계자
│ ██ │                       │     █│ 사용자
└────┘                       └──────┘
합집합이 작다                합집합이 크다

퍼스펙티브별 시나리오 — 실제로 쓸 수 있는 형태

PBR을 도입할 때 가장 자주 실패하는 이유는 "테스터 관점으로 보세요"라고만 말하고 끝내기 때문이다. 퍼스펙티브는 절차(시나리오)로 적혀 있어야 작동한다.

[테스터 퍼스펙티브 시나리오]
1. 문서에서 요구사항을 하나씩 번호를 붙여 뽑아낸다
2. 각 요구사항에 대해 정상 케이스 1건과 오류 케이스 1건의
   "입력 / 기대 결과 / 기대 결과의 근거"를 적는다
3. 기대 결과를 특정할 수 없으면 그 자리에 [Q] 표시를 남긴다
4. 질문
   - 이 요구사항의 합격/불합격 기준을 문장으로 쓸 수 있는가?
   - 이 기능이 언제 실패하는지 문서가 말하는가?
   - 이 요구사항을 검증하려면 어떤 데이터·권한·환경이 필요한가?
     그것이 문서에 있는가?
[설계자 퍼스펙티브 시나리오]
1. 문서에 등장하는 개체(엔티티)와 관계를 종이에 그린다
2. 주요 흐름 하나를 골라 컴포넌트 간 호출 순서를 그린다
3. 질문
   - 각 개체의 생명주기(생성·수정·삭제·보존 기간)가 정의돼 있는가?
   - 외부 시스템 호출이 실패하면 무엇을 해야 하는지 적혀 있는가?
   - 동시에 두 사용자가 같은 대상을 바꾸면 어떻게 되는가?
   - 이 요구를 만족하려면 기존 어느 부분을 바꿔야 하는가?
[사용자 퍼스펙티브 시나리오]
1. 대표 사용자 유형을 둘 고른다(예: 신규 가입자, 관리자)
2. 각 유형이 이 기능으로 달성하려는 목표를 한 문장으로 적는다
3. 문서만 보고 그 목표를 처음부터 끝까지 따라간다
4. 질문
   - 중간에 막히는 지점이 있는가? 문서가 그 지점을 말하는가?
   - 실수했을 때 되돌릴 수 있는가?
   - 오류 메시지가 사용자가 다음에 할 일을 알려주는가?
   - 이 흐름을 처음 쓰는 사람이 학습 없이 할 수 있는가?

세 기법의 검출 특성 비교

같은 문서에 세 기법을 적용하면 결함의 종류 가 다르게 나온다. 수치는 팀·문서마다 다르므로 남의 숫자를 인용할 게 아니라 우리 팀 데이터를 쌓는 것 이 목적이다.

애드혹체크리스트 기반퍼스펙티브 기반
준비 비용없음체크리스트 작성·유지시나리오 작성·역할 배정
리뷰어 간 중복큼큼작음
잘 잡는 결함리뷰어가 잘 아는 영역과거에 겪은 유형누락·모호함·검증 불가
놓치는 결함예측 불가목록에 없는 유형시나리오가 안 다루는 축
신규 팀원기여 어려움기여 가능기여 가능(역할이 가이드)
적합한 문서—반복되는 형식의 산출물요구사항·설계서처럼 새로운 문서

실무 결론은 둘 중 하나가 아니라 겹쳐 쓰는 것 이다. 요구사항·설계 문서는 PBR로 역할을 나누고, 각 역할의 시나리오 끝에 그 역할용 체크리스트를 붙인다. 테스트 케이스·결함 보고서처럼 형식이 반복되는 산출물은 체크리스트만으로 충분하다.

리뷰를 측정한다

리뷰가 실제로 효과가 있는지는 네 지표로 본다.

지표계산읽는 법
리뷰 검출 결함 수리뷰에서 합의된 결함 건수절대값보다 추세
리뷰 효율검출 결함 수 ÷ 투입 시간페이지당 읽기 속도가 너무 빠르면 효율이 떨어진다
결함 유형 분포누락·모호·상충·오류·개선특정 유형 편중은 기법 편중의 신호
탈출률나중 단계에서 발견된 결함 중 그 문서에 있었던 비율이 지표가 체크리스트와 시나리오를 진화시킨다

탈출률 분석이 핵심이다. 운영 장애가 날 때마다 "이 결함의 뿌리가 그 요구사항 문서에 있었는가, 있었다면 어느 퍼스펙티브가 봤어야 했는가" 를 묻는다. 답이 나오면 그 퍼스펙티브의 시나리오에 질문을 한 줄 추가한다.

리뷰 회의 진행 — 검출과 합의를 분리한다

PBR이든 CBR이든 결함 검출은 개인 작업 이다. 회의에서 처음 문서를 펴는 순간 그 회의는 낭독회가 된다. 진행 규칙은 셋이다.

① 개인 준비 (회의 전)
   각자 자기 퍼스펙티브 시나리오를 수행하고 발견 목록을 제출한다
   → 제출물이 없으면 회의를 연기한다. 이 규칙이 없으면 PBR은 정착하지 않는다
 
② 회의 (60분 이내)
   중복 항목을 먼저 병합하고, 판정이 갈리는 항목만 토론한다
   "결함인가 아닌가"만 판정하고 해결책은 논의하지 않는다
 
③ 후속
   판정 결과를 문서 담당자에게 넘기고, 반영 여부를 추적한다

②의 "해결책을 논의하지 않는다"가 회의 시간을 가장 크게 줄인다. 해결책 토론이 시작되면 참가자 절반이 방관자가 된다.

실무에서 왜 필요한가

요구사항·설계 단계에서 잡은 결함은 코드가 되기 전에 사라진다. 이건 오래된 상식이지만, 상식이 실행으로 바뀌지 않는 이유는 리뷰가 기법 없이 수행되기 때문 이다. 기법 없는 리뷰는 효과가 사람에 붙고, 사람에 붙은 효과는 재현되지 않으며, 재현되지 않으면 조직이 리뷰에 시간을 배정하지 않는다.

QA에게 PBR이 특히 중요한 이유가 하나 더 있다. 테스터 퍼스펙티브 시나리오의 산출물이 곧 테스트 케이스 초안 이라는 것이다. 리뷰 참여가 부수 업무가 아니라 테스트 설계의 첫 단계가 된다. 리뷰 시간을 별도로 확보하기 어려운 팀에서 이 논리가 설득에 잘 먹힌다.

또한 테스터 퍼스펙티브에서 남긴 [Q] 표시는 레슨 1의 "오라클 출처 없음"과 같은 것이다. 두 레슨의 산출물이 같은 질문 목록으로 합쳐진다.

채용시장에서의 위치

시니어 QA 공고의 "설계 문서 리뷰를 통한 결함 조기 발견", "요구사항 분석 및 리뷰 주도" 같은 문구가 이 레슨의 영역이다. 면접에서 "리뷰에 참여하셨나요"는 대부분 "네"로 끝나지만, "요구사항 리뷰에 PBR을 도입해 역할을 셋으로 나눴고, 테스터 시나리오 산출물을 그대로 케이스 초안으로 썼습니다" 는 다른 답이다. ISTQB Advanced Level Test Analyst와 Foundation Level 모두 정적 테스트·리뷰를 별도 장으로 다룬다.

실습 과제

과제 1 — 같은 문서, 세 기법 (30분)

최근 요구사항 문서 하나(3~5페이지)를 고른다. 세 번에 나눠 읽는다.

  1. 애드혹 10분 — 그냥 읽으며 이상한 것을 적는다
  2. 체크리스트 기반 10분 — 본문의 RQ-1~RQ-8을 들고 다시 읽는다
  3. 테스터 퍼스펙티브 10분 — 본문 시나리오를 그대로 수행한다

발견 목록 세 개를 나란히 놓고 표를 채운다.

발견 항목애드혹체크리스트PBR(테스터)유형(누락/모호/상충/오류)

세 열 중 한 곳에서만 발견된 항목 이 몇 건인지 센다. 이 숫자가 기법을 겹쳐 써야 하는 이유의 증거다.

과제 2 — 우리 팀 퍼스펙티브 시나리오 만들기 (25분)

본문의 세 퍼스펙티브 중 팀에 가장 필요한 둘을 고른다. 팀 상황에 맞게 시나리오를 다시 쓴다. 포함할 것:

  • 수행할 작업 3~4단계(반드시 무언가를 만드는 작업이어야 한다)
  • 질문 4~6개
  • 소요 시간 상한(문서 페이지 수 기준)

작성 후 최근 운영 결함 두 건을 떠올려, 이 시나리오로 그 결함의 뿌리를 잡을 수 있었을지 검증한다. 못 잡는다면 질문을 추가한다.

과제 3 — 리뷰 지표 한 판 돌리기 (20분)

다음 리뷰 한 건에 대해 네 지표를 기록하는 양식을 만들고 실제로 채운다.

문서: ____________  페이지: ___  리뷰어: ___명
개인 준비 시간 합계: ___분    회의 시간: ___분
검출 결함: 누락 ___ / 모호 ___ / 상충 ___ / 오류 ___ / 개선 ___
리뷰 효율: ___건/시간        읽기 속도: ___페이지/시간
합의 후 문서 반영: ___건 / 보류 ___건

한 건만으로는 판단할 수 없다. 양식을 만들어 두는 것 이 과제의 목표이고, 세 건이 쌓이면 추세가 보인다.

자가 체크리스트

  • 리뷰 유형(형식 수준)과 읽기 기법(읽는 절차)이 서로 다른 축임을 설명할 수 있다
  • 애드혹 리뷰의 세 가지 구조적 문제(중복·공백·편향)를 말할 수 있다
  • 체크리스트 기반 읽기의 강점과 두 가지 약점을 설명할 수 있다
  • PBR이 "읽기"가 아니라 "만들기"인 이유와, 팀 단위 효과가 큰 이유를 설명할 수 있다
  • 테스터·설계자·사용자 퍼스펙티브 시나리오를 팀 상황에 맞게 작성할 수 있다
  • 리뷰 검출 결함 수·효율·유형 분포·탈출률을 기록하고 해석할 수 있다
  • 탈출한 결함을 근거로 체크리스트·시나리오를 갱신할 수 있다
  • 리뷰 회의에서 검출과 합의를 분리하고 해결책 토론을 차단할 수 있다

흔한 실수

  • "테스터 관점으로 봐 주세요"까지만 말한다. 퍼스펙티브는 수행할 작업과 질문 목록이 있어야 기법이 된다. 없으면 애드혹과 같다.
  • 회의에서 처음 문서를 편다. 검출은 개인 작업이다. 준비물 미제출이면 회의를 연기하는 규칙이 필요하다.
  • 리뷰 회의에서 해결책을 논의한다. 시간이 두 배가 되고 참가자 절반이 방관자가 된다. 판정만 하고 해결은 담당자에게 넘긴다.
  • 체크리스트를 리뷰어 전원에게 똑같이 준다. 세 명이 같은 곳을 본다. 나누려면 퍼스펙티브가 필요하다.
  • 리뷰를 측정하지 않는다. 효과를 모르니 일정이 급해지면 가장 먼저 생략된다. 효율 지표가 리뷰 시간을 지키는 근거가 된다.
  • PBR을 모든 문서에 적용하려 한다. 준비 비용이 있다. 형식이 반복되는 산출물은 체크리스트로 충분하고, PBR은 새롭고 리스크가 큰 문서에 쓴다.

참고 자료

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

ISO/IEC — 국제표준화기구·국제전기기술위원회 공동 표준
두 국제 단체가 함께 낸 표준이라는 표시. 뒤에 붙는 숫자가 문서 번호다.
QA — 품질보증
만든 것이 쓸 만한지 확인하고, 애초에 덜 망가지게 만드는 방법을 정하는 일. "테스트"는 그 일의 일부다.
ISTQB — 국제 소프트웨어 테스팅 자격 위원회
테스터 자격 시험을 만들고 용어를 정리하는 국제 단체.
CTAL-TA — 상급 자격 · 테스트 분석
상급 테스터 자격 중 테스트 설계·분석을 다루는 과목.

용어집 전체 보기