테스팅의 본질
테스트가 필요한 이유, 오류·결함·실패의 구분과 전파, 테스트 레벨과 유형, 그리고 "완전한 테스트는 불가능하다"는 전제 위에서 기대치를 조정하는 법.
학습 목표
이 커리큘럼의 첫 모듈이다. 전공자가 아니어도 읽을 수 있게 썼다. 여기서 다루는 것은 도구나 코드가 아니라, 이 일을 하는 사람들이 쓰는 말과 사고방식이다 — 무엇을 품질이라 부르는지, 왜 다 확인하는 것이 불가능한지, 그래서 무엇을 보고 무엇을 포기하기로 정하는지. 첫 레슨이 이 분야의 기본 용어를 한 번에 정리해 주므로 거기서부터 읽으면 된다.
이 모듈을 마치면 "테스트가 왜 필요한가"를 팀원과 이해관계자(그 결정에 걸린 사람들 — 기획자·개발자·영업·고객)에게 근거를 들어 설명할 수 있다. 오류·결함·실패가 어떻게 서로 다른 개념이고 어떻게 이어지는지, 테스트를 어느 레벨(단위·통합·시스템·인수)과 어느 유형(기능·비기능·회귀·확인)으로 나눠 접근하는지, 그리고 "완전한 테스트는 불가능하다"는 전제 위에서 현실적인 기대치를 어떻게 조정하는지를 다룬다.
완료 후 할 수 있는 것
- 검증(Verification)과 확인(Validation)의 차이를 예시로 설명할 수 있다
- 오류 → 결함 → 실패로 이어지는 전파 경로를 코드 예시로 추적할 수 있다
- 단위·통합·시스템·인수 테스트 각각이 무엇을 검증하는지 구분할 수 있다
- 기능·비기능·회귀·확인 테스트를 상황에 맞게 구분해 부를 수 있다
- "테스트로 결함이 없음을 증명할 수 없다"는 전제로 테스트 범위를 현실적으로 협상할 수 있다
- QA·QC·테스터의 역할 차이와, 조직에서 이 역할들이 어떻게 배치되는지 설명할 수 있다
채용시장에서의 위치
이 모듈의 내용은 QA 직무 면접의 가장 첫 관문이다. "테스트와 디버깅의 차이는?", "검증과 확인의 차이는?", "왜 100% 테스트가 불가능한가?" 같은 질문은 신입 공고에서도 거의 빠지지 않는다. 화려하지 않지만, 여기서 막히면 이후 모든 대화가 어려워진다 — 설계 기법(모듈 3)도, 자동화(스테이지 4)도 결국 "무엇을, 왜 검증하는가"라는 이 모듈의 질문 위에 서 있다.
레슨 (6개)
- 입문약 20분
왜 테스트가 필요한가 — 품질과 결함의 관계
품질과 결함이 무엇인지 정의하고, 결함을 늦게 발견할수록 비용이 왜 기하급수적으로 커지는지 이해한다.
- 입문약 22분
검증과 확인, 오류·결함·실패의 구분과 전파
제대로 만들고 있는가(검증)와 맞는 것을 만들고 있는가(확인)를 구분하고, 사람의 실수가 결함을 거쳐 실패로 드러나는 경로를 코드로 추적한다.
- 입문약 20분
테스트 레벨 — 단위·통합·시스템·인수
같은 기능도 어느 레벨에서 테스트하느냐에 따라 다른 결함이 드러난다. 네 레벨이 각각 무엇을 확인하는지 구분하고, 어느 레벨에 투자할지 판단하는 기준을 익힌다.
- 입문약 20분
테스트 유형 — 기능·비기능·회귀·확인
무엇을 하는가와 얼마나 잘 하는가를 구분하고, 수정 후 재테스트를 확인 테스트와 회귀 테스트로 나눠 설계한다.
- 입문약 18분
완전한 테스트는 불가능하다 — 한계와 기대치 조정
왜 모든 입력 조합을 테스트할 수 없는지 숫자로 확인하고, 버그 없음을 보장해달라는 요청에 QA가 어떻게 답해야 하는지 연습한다.
- 입문약 20분
QA·QC·테스터 — 역할·조직 구조·태도·커리어 전망
QA와 QC의 이론적 차이, 실제 채용공고에서 쓰이는 방식, 조직 구조에 따른 역할 차이, 그리고 QA 커리어가 어떻게 뻗어나가는지 정리한다.