자동화해야 할 테스트와 해서는 안 되는 테스트의 구분 방법|QA 엔지니어의 실무 판단 기준

테스트 자동화의 목적은 「모든 것을 자동화하는 것」이 아니라, 「자동화해야 할 테스트를 가려내어 비용 대비 효과를 최대화하는 것」입니다.

📌 이런 분께 추천합니다

  • 테스트 자동화를 도입하고 싶지만 무엇부터 자동화하면 좋을지 모르는 분
  • 「전부 자동화하자」고 했다가 유지보수 비용이 폭발한 경험이 있는 분
  • 수동 테스트와 자동 테스트를 어떻게 구분해서 사용할지 고민하는 QA 엔지니어
  • 팀에 자동화의 판단 기준을 공유하고 싶은 리드 엔지니어·QA 리드

✅ 이 글을 읽으면 알 수 있는 것

  • 자동화에 적합한 테스트의 5가지 특징
  • 자동화해서는 안 되는 테스트의 4가지 특징
  • 자동화 판단에 사용할 수 있는 실무적인 체크리스트
  • 수동 테스트와 자동 테스트의 이상적인 역할 분담

👤

글쓴이 소개:QA 엔지니어로서 Selenium·Playwright·Python·pytest를 사용한 테스트 자동화를 실무에서 담당. 「전부 자동화하자」고 했다가 비용이 팽창한 실패도 경험한 후, 현장에서 사용할 수 있는 판단 기준을 해설합니다. GitHub에서 코드 공개 중。

📌 이 글의 결론

자동화에 적합한 것은 「반복 실행·인위적인 실수가 생기기 쉬운·합부 판단 기준이 명확한」 테스트. 적합하지 않은 것은 「감성·빈번한 사양 변경·한 번만 실행하는」 테스트입니다. 이 가려냄이 오래 지속되는 자동화의 첫걸음입니다.

「테스트 자동화를 도입했는데 바로 망가져서 결국 수동으로 돌아갔다」「자동화한 테스트를 아무도 신뢰하지 않게 됐다」——이런 실패의 대부분은 자동화해서는 안 되는 테스트까지 자동화하려고 한 것이 원인입니다.

테스트 자동화는 만능이 아닙니다. 모든 것을 자동화하려고 하면 만드는 비용보다 유지하는 비용이 위를 도는 역전 현상이 일어납니다. 이 글에서는 실무에서 사용할 수 있는 「자동화해야 하는가」의 판단 기준을 해설합니다.


수동 테스트와 자동 테스트의 특성 비교

먼저 수동 테스트와 자동 테스트의 특성 차이를 정리합시다. 어느 쪽이 우수하다는 이야기가 아니라, 각각 잘하는 것이 다르다는 이해가 중요합니다.

비교 항목 🙋 수동 테스트 🤖 자동 테스트
실행 속도 🐢 느리다 ⚡ 빠르다
반복 실행 ❌ 피로·실수가 발생 ✅ 몇 번이든 정확하게
감성·직감 ✅ 특기 ❌ 서투르다
사양 변경에 대한 대응 ✅ 바로 대응 가능 ❌ 코드 수정 필요
대량 데이터 처리 ❌ 한계가 있다 ✅ 특기
초기 비용 ✅ 낮다 ❌ 높다(코드 작성)
💡 포인트: 자동 테스트는 「반복 실행할수록 비용 대비 효과가 올라가는」 도구입니다. 한 번만 실행하는 테스트에 자동화를 사용하는 것은 비용을 낭비하는 것과 같습니다.

✅ 자동화해야 할 테스트의 5가지 특징

다음 특징에 해당하는 테스트는 자동화의 비용 대비 효과가 높아집니다.

✅ 자동화에 적합한 테스트의 특징

  • 릴리스마다 반복 실행하는 테스트(회귀 테스트)
  • 합부 판단 기준이 명확하여 「○○이 표시되면 OK」라고 정의할 수 있는 테스트
  • 대량의 데이터 패턴을 망라할 필요가 있는 테스트
  • 사람이 하면 피로·실수가 생기기 쉬운 단조로운 테스트
  • 복수의 브라우저·복수의 환경에서의 동작 확인이 필요한 테스트
🔄
① 회귀 테스트

새 기능을 추가할 때마다 기존 기능이 망가지지 않았는지 확인하는 테스트입니다. 매 릴리스마다 실행할 필요가 있어 수동으로는 막대한 공수가 걸립니다.

예:로그인·카트·결제 플로우의 동작 확인

📊
② 대량 데이터의 유효성 검사

100가지 이상의 입력값 패턴을 시험하고 싶은 케이스입니다. 사람이 수동으로 하면 시간이 걸리고 집중력 저하에 의한 실수도 발생합니다.

예:경계값 테스트·폼 유효성 검사 35건

🌐
③ 크로스 브라우저 테스트

Chrome·Firefox·Safari 등 복수의 브라우저에서 같은 테스트를 실행하는 경우, 수동으로는 3배의 공수가 걸립니다. 자동화라면 병렬 실행으로 시간을 절약할 수 있습니다.

예:Playwright로 chromium/firefox/webkit을 병렬 실행

🔌
④ API 정상계 테스트

상태 코드·리스폰스의 값·리스폰스 속도 등 판단 기준이 수치로 명확한 API 테스트는 자동화의 최적 후보입니다.

예:GET/POST/PUT/DELETE의 전 엔드포인트 검증

⚙️
⑤ CI/CD와 조합하는 스모크 테스트

코드를 push할 때마다 「최소한 이것만은 동작하고 있는가」를 확인하는 스모크 테스트입니다. 수분 만에 완료되어 조기 버그 검출에 효과적입니다.

예:로그인할 수 있다·톱 페이지가 열린다·API가 200을 반환한다


❌ 자동화해서는 안 되는 테스트의 4가지 특징

다음과 같은 특징을 가진 테스트를 억지로 자동화하려고 하면, 만드는 비용도 유지하는 비용도 낭비가 됩니다.

❌ 자동화에 적합하지 않은 테스트의 특징

  • 디자인·레이아웃·색 등 사람의 감성이 필요한 테스트
  • 사양이 자주 바뀌는 테스트(코드의 수정 비용이 높아진다)
  • 한 번만 실행하는 일시적인 테스트
  • 탐색적 테스트(직감·호기심으로 예기치 않은 버그를 찾는 테스트)
🎨
① UI 외관·디자인 확인

「이 버튼의 색은 올바른가」「폰트가 균일한가」「여백이 아름다운가」——이것은 사람의 미적 감각이 필요한 판단입니다. 자동화 도구는 「아름다움」을 알 수 없습니다.

🔄
② 사양이 자주 바뀌는 테스트

개발 초기의 요건이 굳지 않은 단계에서는 UI나 사양이 매주 바뀝니다. 그때마다 테스트 코드를 수정하고 있으면 자동화의 메리트가 없어집니다.

🔍
③ 탐색적 테스트

「왠지 여기가 수상하다」「이 패턴은 어떨까」라는 사람의 직감과 호기심으로 실행하는 테스트입니다. 예기치 않은 버그를 찾는 데 매우 유효하지만 자동화에는 적합하지 않습니다.

📋
④ 한 번만 실행하는 테스트

데이터 이관 확인이나 특정 캠페인 기간 중의 테스트 등 1번만 실행하는 테스트에 코드를 작성하는 공수를 들이는 것은 비용 대비 효과가 낮습니다.

💡 실무 Tip: 「자동화해서는 안 되는」 테스트를 수동으로 효율 좋게 하는 것도 훌륭한 스킬입니다. 탐색적 테스트에 시간을 사용할 수 있는 것은 정형 테스트를 자동화로 효율화할 수 있기 때문입니다. 자동화와 수동은 대립이 아니라 보완 관계입니다.

⚠️ 판단이 어려운 그레이 존

자동화해야 하는지 어떤지 일률적으로 말할 수 없는 그레이 존도 존재합니다. 다음 포인트를 참고하여 판단하세요.

테스트의 종류 판단 이유·조건
신규 기능의 E2E 테스트 △ 조건부 사양이 굳고 나서 자동화. 초기에는 수동으로 탐색적으로 확인한다
에러계·이상계 테스트 ◎ 자동화 추천 판단 기준이 명확하면 자동화 효과가 높다(예:404·500의 상태 확인)
퍼포먼스 테스트 ◎ 자동화 추천 리스폰스 시간의 임계값이 명확하면 자동화할 수 있다(예:3초 이내)
보안 테스트 △ 일부 추천 인증 에러·403 등의 기본적인 확인은 자동화. 고도의 취약점 진단은 전문가에게 맡긴다
유저빌리티 테스트 ✕ 수동 추천 「사용하기 쉬운가」라는 감성의 평가는 사람만이 할 수 있다

실무에서 사용할 수 있는 자동화 판단 체크리스트

고민될 때는 이 체크리스트를 사용하세요. 3개 이상 YES라면 자동화를 검토할 가치가 있습니다.

📋 자동화 판단 체크리스트

반복 실행하는가? 월 1회 이상 실행한다면 자동화의 가치가 있다
합부 판단 기준이 명확한가? 「○○이 표시되면 OK」라고 말할 수 있는가
수동으로 하면 시간이 걸리거나 실수가 생기기 쉬운가? 단조로운 반복 작업은 자동화의 좋은 후보
사양이 안정되어 있는가? 자주 바뀌는 사양의 테스트는 유지보수 비용이 높다
복수의 브라우저·환경에서 확인이 필요한가? 병렬 실행할 수 있는 자동화의 강점이 살아난다
CI/CD에 통합하여 자동 실행하고 싶은가? push할 때마다 자동 실행할 수 있다면 효과가 높다
💡 실무에서의 사용법: 팀에서 이 체크리스트를 공유해 두면 「이 테스트를 자동화해야 하는가」의 논의가 단시간에 끝납니다. 개인에 따른 판단을 없애는 것이 오래 지속되는 자동화 팀을 만드는 첫걸음입니다.

수동 테스트와 자동 테스트의 이상적인 역할 분담

최종적인 목표는 「자동 테스트가 정형 테스트를 전부 커버하고, 사람이 탐색적 테스트와 품질 전략에 집중할 수 있는 상태」를 만드는 것입니다.

🤖 자동 테스트에 맡길 것 🙋 사람이 할 것
회귀 테스트의 전체 실행 탐색적 테스트·신기능의 확인
CI/CD에서의 스모크 테스트 UI의 외관·유저빌리티 평가
대량 데이터의 유효성 검사 품질 전략·테스트 설계
API의 정상계·이상계 테스트 버그 분석·품질 개선 제안
크로스 브라우저·크로스 환경 테스트 개발팀에 대한 피드백

🔑 중요한 사고방식

  • 자동화는 「사람을 불필요하게 만드는 기술」이 아니라 「사람을 더 고도의 일로 해방하는 기술」
  • 자동화할 수 없는 테스트를 수동으로 꼼꼼하게 하는 것도 훌륭한 QA 스킬
  • 「전부 자동화」보다 「적절히 골라서 자동화」하는 편이 장기적으로 품질이 높아진다

정리

이 글에서는 자동화해야 할 테스트와 해서는 안 되는 테스트의 구분 방법을 해설했습니다.

📋 이 글의 정리

  • 자동화에 적합한 것은 「반복·판단 기준이 명확·대량 데이터·크로스 브라우저」
  • 자동화해서는 안 되는 것은 「감성이 필요·사양이 바뀌기 쉽다·한 번만·탐색적」
  • 그레이 존은 「반복 실행하는가」「사양이 안정되어 있는가」로 판단한다
  • 체크리스트(3개 이상 YES라면 자동화 검토)를 사용하면 판단이 흔들리지 않는다
  • 이상은 「자동 테스트가 정형 작업을 담당하고, 사람이 탐색적 테스트나 품질 전략 등 고부가가치 업무에 집중하는 상태」

「무엇을 자동화하는가」의 판단은 도구의 습득과 같은 정도로 중요한 스킬입니다. 이 체크리스트를 팀에서 공유하여 비용 대비 효과가 높은 자동화를 목표로 하세요.

실제로 자동화를 구현해 보고 싶은 분은 먼저 Playwright로 E2E 테스트를 자동화하는 방법(초보자용) 부터 읽어보세요👇

タイトルとURLをコピーしました