개념
같은 음식을 코스로 내느냐 뷔페로 내느냐에 따라 주방의 일하는 방식이 완전히 달라진다. 코스는 순서가 정해져 있어 앞 접시가 나가야 다음을 준비하고, 뷔페는 계속 조금씩 채운다. 요리의 내용이 같아도 리듬이 다르다.
방법론이 그 리듬이다. 테스트 기법(모듈 3)이나 결함 관리(모듈 6)는 어느 방법론에서나 같지만, 언제 어떤 단위로 하는지가 달라진다. 그리고 리듬을 잘못 맞추면 QA는 팀의 병목이 된다.
방법론이 테스트 시점을 결정한다
같은 "테스트"라는 활동도, 팀이 어떤 개발 방법론을 따르느냐에 따라 언제, 얼마나 자주, 누가 하는지가 완전히 달라진다.
구체적으로 네 가지가 바뀐다.
| 바뀌는 것 | 워터폴 | 애자일 |
|---|---|---|
| 테스트 시점 | 구현이 다 끝난 뒤 | 개발과 거의 동시에 |
| 한 번에 보는 단위 | 제품 전체 | 기능 하나(스토리) |
| 문서의 양 | 많다. 계획서·설계서·보고서 | 적다. 실행 가능한 형태로 |
| 회귀 부담 | 마지막에 한 번 | 매 주기마다 |
마지막 줄이 가장 큰 차이다. 2주마다 배포하면 1년에 26번 회귀 테스트를 해야 하고, 그 부담이 자동화 투자의 직접적인 이유가 된다 (스테이지 4). 워터폴에서는 회귀를 한두 번만 하므로 수동으로 버틸 수 있다.
워터폴(Waterfall)
요구사항 → 설계 → 구현 → 테스트 → 배포 순서로, 각 단계가 끝나야 다음 단계로 넘어간다. 테스트는 구현이 다 끝난 뒤 한 번에 몰아서 진행되는 별도의 단계다.
- 장점: 테스트할 범위가 명확하고, 무엇을 검증해야 하는지 문서(모듈 2에서 배운 요구사항 명세)가 안정적이다
- 단점: 테스트 단계에서 큰 결함이 나오면 앞 단계로 되돌아가기 비용이 크다. 사용자 피드백을 반영하기까지 시간이 오래 걸린다
V-모델 — 워터폴을 테스트 관점으로 다시 그린 것
워터폴을 테스트 쪽에서 보면 V자가 된다. 왼쪽은 점점 구체화되는 설계이고, 오른쪽은 각 설계에 대응하는 검증 단계다.
요구사항 정의 ─────────────────▶ 인수 테스트
└ 시스템 설계 ───────────▶ 시스템 테스트
└ 상세 설계 ──────▶ 통합 테스트
└ 구현 ───▶ 단위 테스트이 그림이 주는 통찰이 둘 있다.
- 각 설계 단계에 대응하는 테스트가 있다 — 요구사항은 인수 테스트로, 시스템 설계는 시스템 테스트로 검증된다. 짝이 없으면 공백이다
- 테스트 설계를 왼쪽에서 시작한다 — 요구사항을 쓸 때 인수 테스트를 함께 설계하면, 그 과정에서 요구사항의 모호함이 드러난다
두 번째가 실무적으로 중요하다. 모듈 2 레슨 6에서 본 "요구사항 리뷰에 QA가 참여한다" 가 V-모델에서는 구조적으로 정해진 활동이다. 애자일에서 같은 일을 하는 것이 인수기준 작성이고(레슨 8), 이름만 다르다.
V-모델은 ISTQB 시험과 면접에 자주 나온다. "워터폴은 뒤에서 테스트하니 나쁘다" 가 아니라, 테스트 설계는 앞에서 하고 실행은 뒤에서 한다는 것이 정확한 이해다.
워터폴이 아직 쓰이는 곳
"요즘 다 애자일 아닌가" 라고 생각하기 쉽지만, 워터폴이 합리적인 선택인 영역이 분명히 있다.
| 영역 | 왜 |
|---|---|
| 의료기기·항공·철도 | 규제가 문서와 추적성을 요구한다 |
| 공공·대기업 수탁 개발 | 계약이 범위·금액·납기 고정이다 |
| 하드웨어가 함께 나가는 제품 | 금형·생산 일정을 되돌릴 수 없다 |
| 한 번 배포하면 못 고치는 것 | 임베디드 펌웨어, 오프라인 설치 |
두 번째 줄이 국내에서 특히 많다. 발주처와 수행사가 계약으로 범위를 고정하면, 중간에 요구가 바뀌는 것이 계약 변경이 되므로 애자일처럼 움직일 수 없다. 이때 QA의 일은 합의된 범위를 증명하는 것에 가까워지고, 문서가 산출물로서 중요해진다.
애자일(Agile) — 스크럼(Scrum)
2~4주 단위의 짧은 반복(스프린트)마다 요구사항 정의부터 테스트까지 전체 사이클을 돈다. 테스트는 스프린트 안에서, 개발과 거의 동시에 진행된다.
- QA는 스프린트 계획 회의에 참여해 미리 테스트 관점에서 질문하고 (모듈 2 레슨 6과 연결), 기능이 완성되는 대로 바로 테스트한다
- 회귀 테스트(전에 잘 되던 기능이 새 변경으로 깨지지 않았는지 확인)의 비중이 워터폴보다 훨씬 커진다 — 매 스프린트마다 반복해야 하기 때문
스크럼에서 가장 흔한 실패 — 미니 워터폴
스크럼을 도입했는데 스프린트 안에서 워터폴을 반복하는 경우가 매우 많다.
2주 스프린트
├────────── 개발 ──────────┬── QA ──┐
월 화 수 목 금 월 화 수 목 금
↑
여기서 개발이 끝난다이러면 세 가지가 생긴다.
- QA가 앞 1주는 할 일이 없고 뒤 3일에 몰린다
- 결함이 나와도 고칠 시간이 없다 → 다음 스프린트로 밀린다
- 스프린트 마지막 날 "완료" 를 선언하지 못한다
이름은 스크럼인데 리듬은 워터폴이다. 해결은 QA가 더 빨리 일하는 것이 아니라 일의 단위를 쪼개는 것이다.
| 바꿀 것 | 어떻게 |
|---|---|
| 스토리 크기 | 2~3일 안에 끝나는 크기로 쪼갠다 |
| 완료 기준 | 개발 완료가 아니라 테스트 통과까지를 완료로 |
| QA 착수 시점 | 기능 하나가 되는 대로 즉시 |
| 앞쪽 1주 | 인수기준 작성·테스트 설계·자동화에 쓴다 |
마지막 줄이 실질적인 답이다. 스프린트 앞부분에 QA가 할 일이 없는 것이 아니다 — 테스트 설계와 인수기준은 개발보다 먼저 하는 일이다. 레슨 8에서 이 활동을 자세히 다룬다.
애자일 — 칸반(Kanban)
스프린트 같은 고정된 주기 없이, 작업이 "할 일 → 진행 중 → 테스트 중 → 완료"라는 보드를 흐르며 하나씩 끝나는 대로 배포될 수 있다. QA는 특정 주기에 몰아서 테스트하는 게 아니라, 보드 위에 새 카드가 "테스트 중" 열로 들어올 때마다 지속적으로 테스트한다.
칸반의 핵심 장치가 WIP 제한(동시 진행 개수 제한)이다. 각 열에 들어갈 수 있는 카드 수를 정해 두는 것인데, QA에게 이것이 왜 중요한지가 분명하다.
할 일 진행 중(3) 테스트 중(2) 완료
┌────┐ ┌────┐ ┌────┐ ┌────┐
│ │ │ ■■ │ │ ■■ │ ← 꽉 참 │ │
└────┘ └────┘ └────┘ └────┘
↑
여기가 꽉 차면 개발이 새 카드를 못 당긴다"테스트 중" 이 꽉 차면 개발이 멈춘다. 이것이 벌이 아니라 설계다. 멈춘 개발자가 테스트를 도우러 오게 만드는 것이 WIP 제한의 목적이다.
WIP 제한이 없으면 반대가 된다 — 개발은 계속 카드를 밀어 넣고, "테스트 중" 열에 20장이 쌓이고, QA가 영구적인 병목이 된다. 그리고 그 상태는 보드만 봐도 보인다.
칸반에서 QA가 봐야 할 숫자가 둘 있다.
| 숫자 | 뜻 | 쓸모 |
|---|---|---|
| 리드 타임 | 카드가 들어와서 완료까지 걸린 시간 | 어디서 오래 머무나 |
| 열별 체류 시간 | 각 열에서 머문 시간 | 병목이 어느 열인지 |
"테스트 중" 체류 시간이 길면 원인은 셋 중 하나다 — QA 인원 부족, 스토리가 너무 큼, 또는 결함 재작업이 많음. 숫자를 보면 어느 쪽인지 말할 수 있다(모듈 6 레슨 5의 과정 지표와 같은 접근).
방법론별 QA 역할 비교
| 방법론 | 테스트 시점 | QA 참여 방식 |
|---|---|---|
| 워터폴 | 구현 완료 후 한 번에 | 별도 테스트 단계의 전담 인력 |
| 스크럼 | 스프린트 안에서 지속 | 스프린트 계획부터 참여, 회귀 테스트 비중 높음 |
| 칸반 | 카드 흐름에 따라 수시로 | 상시 테스트, 병목 지점을 계속 모니터링 |
비교를 조금 더 넓히면
표를 세 축 더 넓혀 두면 새 팀에서 무엇이 달라지는지 예상할 수 있다.
| 축 | 워터폴 | 스크럼 | 칸반 |
|---|---|---|---|
| QA 산출물 | 테스트 계획서·완료 보고서 | 인수기준·스프린트 보고 | 보드 상태·흐름 지표 |
| 가장 큰 위험 | 늦게 발견된 결함 | 스프린트 안에 안 끝남 | QA 병목 |
| 필요한 QA 역량 | 문서화·추적성 | 협업·빠른 판단 | 흐름 관리·우선순위 |
| 자동화 필요도 | 중간 | 높다 | 높다 |
| 릴리즈 판단 | 한 번, 크게 | 스프린트마다 | 수시로 |
두 번째 줄이 QA가 가장 체감하는 축이다. 워터폴에서는 "늦게 알았다" 가 사고로 이어지고, 애자일에서는 "QA가 못 따라간다" 가 병목으로 이어진다. 같은 사람이 다른 팀에서 전혀 다른 문제로 고생하는 이유다.
현실은 대개 섞여 있다
교과서적인 방법론을 그대로 쓰는 팀은 드물다. 국내에서 자주 보는 조합이 있다.
| 조합 | 모습 |
|---|---|
| 계약은 워터폴, 내부는 스크럼 | 발주처에는 단계별 산출물, 안에서는 2주 반복 |
| 스크럼인데 릴리즈는 분기 | 2주마다 만들고 분기에 한 번 내보낸다 |
| 칸반인데 주기 회의가 있다 | 흐름은 칸반, 회고·계획은 스프린트처럼 |
| 기능은 애자일, 규제 영역만 워터폴 | 의료·금융에서 흔하다 |
첫 줄이 가장 많고 QA에게 가장 번거롭다. 안에서는 애자일로 일하면서 밖에는 워터폴 산출물을 내야 하므로 문서 작업이 두 배가 된다. 이때 현실적인 해법은 도구에서 자동으로 뽑는 것이다 — 레슨 1의 테스트 관리 도구와 모듈 6 레슨 5의 지표가 쌓여 있으면, 보고서가 수작업이 아니게 된다.
두 번째 줄도 함정이 있다. 2주마다 "완료" 라고 선언했는데 실제로 내보내는 것은 석 달 뒤라면, 그 사이에 쌓인 변경을 한꺼번에 회귀 테스트해야 한다. 스크럼의 형식은 있지만 회귀 부담은 워터폴인 상태다.
방법론이 바뀔 때
조직이 방법론을 바꾸면 QA가 가장 먼저 흔들린다. 전환기에 생기는 일이 정해져 있다.
- 역할이 애매해진다 — "별도 테스트 단계" 가 없어지면 QA의 자리가 어디인지 다시 정의해야 한다
- 문서를 버리라고 한다 — 애자일이 "문서 없음" 으로 오해되면 추적성이 사라진다. 줄일 문서와 지킬 문서를 구분해야 한다
- 회귀 부담이 먼저 온다 — 자동화가 준비되기 전에 주기가 짧아지면 QA가 무너진다
세 번째가 전환 실패의 가장 흔한 원인이다. 배포 주기를 2주로 줄이면서 회귀 자동화를 같이 준비하지 않으면, QA는 매 2주마다 같은 수동 테스트를 반복하게 된다. 전환을 논의할 때 QA가 반드시 꺼내야 할 조건이 이것이다.
방법론과 무관하게 변하지 않는 것
방법론 공부가 산만해지기 쉬운데, 안 바뀌는 것을 알아 두면 중심이 잡힌다.
| 변한다 | 변하지 않는다 |
|---|---|
| 테스트 시점·단위 | 테스트 설계 기법(모듈 3) |
| 문서의 양과 형식 | 리스크 기반 우선순위(모듈 4) |
| 회의 이름과 주기 | 결함 리포트의 품질(모듈 6) |
| 보고 주기 | "무엇을 못 봤나" 를 적는 태도 |
오른쪽 칸이 QA의 실력이다. 방법론은 팀에 따라 바뀌고 몇 년마다 유행이 바뀌지만, 오른쪽은 어디서나 그대로 쓰인다. 방법론을 묻는 면접 질문의 진짜 의도도 "이 사람이 리듬을 맞출 수 있나" 이지, 용어 암기가 아니다.
새 팀에 합류했을 때 파악하는 순서
방법론 이름을 듣는 것보다 실제 리듬을 확인하는 것이 빠르다. 다섯 가지만 물으면 된다.
- 배포 주기가 얼마인가 — 모든 것이 여기서 따라온다
- 완료의 정의에 테스트가 들어 있나 — 안 들어 있으면 QA가 밀린다
- 회귀를 어떻게 하나 — 수동이면 주기가 짧을 때 무너진다
- QA가 어느 회의에 들어가나 — 앞에서 참여하나 뒤에서 받나
- 릴리즈 판단을 누가 하나 — QA의 보고가 어디로 가나
두 번째가 가장 많은 것을 알려 준다. 완료의 정의에 "QA 통과" 가 없으면, 이름이 무엇이든 그 팀은 미니 워터폴로 돌고 있다.
사례 — 2주 주기로 바꾸고 QA가 무너진 3개월
월 1회 배포하던 팀이 2주 주기 스크럼으로 전환했다. 테스트 케이스는 전부 수동이었고 회귀에 5일이 걸렸다.
| 주기 | 회귀에 필요한 시간 | 가용 시간 |
|---|---|---|
| 월 1회 | 5일 | 20일 중 5일 → 버틸 수 있다 |
| 2주 1회 | 5일 | 10일 중 5일 → 절반이 회귀 |
새 기능을 볼 시간이 절반으로 줄었고, 석 달 동안 운영 결함이 2배로 늘었다. 원인은 역량이 아니라 산수였다.
고친 순서가 중요하다.
- 회귀 범위를 리스크로 줄였다(모듈 4) — 5일 → 2일. 비용 0
- 스모크 24건을 자동화했다(레슨 1) — 2일 → 1일
- 완료의 정의에 "QA 통과" 를 넣어 미니 워터폴을 깼다
- 자동화 범위를 분기마다 늘렸다
1번을 먼저 한 것이 핵심이다. 자동화는 몇 달이 걸리지만, "매번 전부 돌리던 회귀를 리스크 기준으로 줄이는 것" 은 그 주에 할 수 있다. 전환기의 QA에게 가장 먼저 필요한 것은 도구가 아니라 범위를 줄일 권한이다.
어느 방법론이 "정답"은 아니다
규제가 엄격한 의료기기 소프트웨어(스테이지 6 부록에서 다룬다)는 문서화 요구 때문에 워터폴적 요소가 강하게 남아있는 경우가 많고, 빠른 시장 대응이 중요한 스타트업은 칸반이나 스크럼을 선호한다. QA는 "어느 게 더 좋은 방법론인가"가 아니라, 지금 팀이 어떤 방법론을 쓰고 있고, 그 안에서 테스트 활동을 어떻게 맞춰 넣어야 하는지를 판단해야 한다.
그중 실무에서 가장 자주 만나는 스크럼 안에서 QA가 이벤트마다 실제로 무엇을 하는지 — 리파인먼트에서 던질 질문, 스토리 추정에 테스트 공수 넣기, 인수기준과 완료의 정의(DoD)의 차이, 회고에 가져갈 데이터 — 는 레슨 8 에서 이어 받는다.
실무에서 왜 필요한가
채용공고의 "애자일 환경에서의 QA 경험"이라는 문구는, 방법론 자체를 아는 것보다 테스트가 개발과 동시에 진행되는 빠른 리듬에 적응할 수 있는지를 묻는 것이다. 워터폴 경험만 있는 QA가 스크럼 팀에 들어가 "테스트 단계가 끝나야 다음으로 넘어간다"는 사고방식을 그대로 적용하면 팀 전체의 속도를 늦추게 된다. 방법론별 차이를 이해하면 새로운 팀에 합류했을 때 그 팀의 리듬에 맞춰 빠르게 적응할 수 있다.
리듬을 모르면 좋은 일을 해도 병목이 된다
QA가 꼼꼼한 것은 미덕인데, 리듬과 맞지 않으면 팀이 그것을 문제로 느낀다.
| 상황 | 꼼꼼한 QA가 하는 일 | 팀이 느끼는 것 |
|---|---|---|
| 2주 스프린트 | 전체 회귀를 매번 전부 | "QA 때문에 못 나간다" |
| 칸반 | 카드 하나를 완벽히 볼 때까지 붙잡음 | 보드가 막힌다 |
| 워터폴 | 중간에 수시로 결함을 올림 | 아직 완성 전인데 혼란 |
세 줄 모두 QA가 틀린 것은 아니다. 다만 리듬에 맞는 방식이 따로 있다 — 짧은 주기에서는 리스크로 범위를 줄이고, 칸반에서는 완벽보다 흐름을 택하고, 워터폴에서는 단계 기준에 맞춰 올린다.
방법론 전환을 요구할 조건을 말할 수 있게 된다
주기를 줄이자는 결정은 대개 QA 없이 내려진다. 그때 QA가 조건을 제시할 수 있어야 한다 — "주기를 절반으로 줄이면 회귀 시간이 가용 시간의 절반이 됩니다. 범위를 리스크로 줄이거나 스모크를 자동화하는 것이 선행 조건입니다."
이것은 반대가 아니라 조건 제시다. 거절당하더라도 기록이 남고, 석 달 뒤 결함이 늘었을 때 그 기록이 근거가 된다(모듈 6 레슨 3의 릴리즈 판단과 같은 태도).
채용시장에서의 위치
공고에 "애자일 환경 QA 경험" 이 거의 항상 적힌다. 그런데 면접에서 묻는 것은 용어가 아니라 리듬을 다뤄 본 경험이다.
| 질문 | 약한 답 | 강한 답 |
|---|---|---|
| "애자일에서 QA는 뭐가 다른가요?" | "개발과 동시에 테스트합니다" | "회귀 부담이 주기마다 반복되므로 범위를 리스크로 줄이거나 자동화해야 합니다" |
| "스프린트 안에 테스트가 안 끝나면?" | "야근합니다" | "스토리를 쪼개고 완료의 정의에 QA 통과를 넣습니다. 미니 워터폴이 원인입니다" |
| "워터폴 경험만 있으신데요?" | "애자일도 배우겠습니다" | "테스트 설계와 리스크 판단은 그대로 쓰입니다. 바뀌는 것은 시점과 단위입니다" |
| "칸반에서 QA가 병목이면?" | "더 빨리 합니다" | "WIP 제한을 걸고 열별 체류 시간을 봅니다. 원인이 인원·스토리 크기·재작업 중 무엇인지 가릅니다" |
| "V-모델 아세요?" | "워터폴이요" | "설계 단계마다 대응하는 테스트가 있고, 테스트 설계를 앞에서 시작한다는 뜻입니다" |
세 번째가 워터폴 경력자에게 중요한 답이다. "배우겠다" 는 수동적으로 들리고, 무엇이 그대로 쓰이는지 말하는 것은 본질을 안다는 증거다. 실제로 테스트 기법·리스크·결함 관리는 방법론과 무관하다.
네 번째는 리드급 질문이다. 병목을 개인의 속도 문제로 보는 사람과 흐름의 문제로 보는 사람이 여기서 갈린다.
공고 표현으로는 "애자일 QA", "스크럼 환경", "CI/CD 환경 QA" 가 이 레슨에 걸린다. 스크럼 안에서의 구체적인 활동은 레슨 8, 조직과 역할 설계는 레슨 9 에서 이어 받는다.