QA 3년차가 AI로 테스트 자동화 전문가 된 2개월 후기
수동 테스트하던 QA가 Claude Code로 자동화 엔지니어 되기까지
럿지 AI 팀
6분 읽기
목차
클릭의 반복
**이름:** 한지원 (가명)
**경력:** QA 3년
**Before:** 수동 테스터
**After:** 테스트 자동화 엔지니어
**기간:** 2개월
Before: 수동 테스트의 고통
매일 반복
**오전 9시:**
테스트 케이스 100개 시작
**방법:**
``
1. 로그인 클릭
2. 아이디 입력
3. 비밀번호 입력
4. 로그인 버튼 클릭
5. 확인
6. 로그아웃
7. 다음 케이스
8. 반복...
`
**오후 6시:**
70개 완료
**야근:**
나머지 30개
배포 전날
**저녁 10시:**
전체 회귀 테스트
**케이스:**
500개
**예상 시간:**
2일
**실제 가능:**
1.5일 (야근)
**결과:**
- 피로 ⬆⬆⬆
- 실수 ⬆
- 버그 놓침
개발자의 요청
**개발자:**
"지원님, 이거 테스트 좀..."
**나:**
(또...)
**심정:**
"사람이 해야 하는 일인가?"
자동화 시도
Selenium 책 구매
**Day 1:**
- Python 설치
- Selenium 설치
- 예제 따라하기
**Day 3:**
`python
driver.find_element_by_id("login")
ElementNotFoundError
`
**Day 7:**
포기
이유
**코딩:**
모름
**에러:**
해결 못 함
**시간:**
없음
팀장의 제안
**팀장:**
"자동화 못 하면 QA는 미래가 없어요"
**나:**
"알아요... 근데 어렵더라고요"
**팀장:**
"요즘은 AI로 배운대요"
**링크:**
The 10x AI-Native Developer 강의
**확인:**
"QA도 가능하다고?"
**결심:**
"마지막 기회다"
Week 1-2: 첫 자동화

Day 1: Playwright 시작
**Claude에게:**
`
"로그인 테스트 자동화하고 싶어
- Playwright 사용
- TypeScript
- 아이디/비밀번호 입력
- 로그인 확인
나 코딩 초보야"
`
**30분 후:**
import { test, expect } from '@playwright/test';
test('로그인 테스트', async ({ page }) => {
await page.goto('https://example.com/login');
await page.fill('#username', 'test@email.com');
await page.fill('#password', 'password123');
await page.click('button[type="submit"]');
await expect(page).toHaveURL('/dashboard');
await expect(page.locator('.username')).toHaveText('테스트');
});
**실행:**
`bash
npx playwright test
`
**결과:**
✅ 통과!
**감동:**
"내가... 자동화를?"
Day 3: 100개 케이스
**목표:**
수동 100개 → 자동 100개
**방법:**
`
수동 케이스 보며:
1. Claude에게 설명
2. 코드 생성
3. 실행 확인
4. 다음 케이스
`
**진도:**
하루 20개
**5일 후:**
100개 완성!

Week 2: 고급 기능
**Data-Driven Testing:**
`
"100개 계정으로 로그인 테스트
- CSV 파일에서 읽기
- 각 계정별 테스트
- 결과 리포트"
`
**Claude 코드:**
import { parse } from 'csv-parse/sync';
import { readFileSync } from 'fs';
const accounts = parse(readFileSync('accounts.csv'));
for (const account of accounts) {
test(로그인: ${account.email}, async ({ page }) => {
// 테스트 로직
});
}
**결과:**
100개 계정 자동 테스트
**시간:**
- 수동: 5시간
- 자동: 5분
Week 3-4: API 테스트
REST API 테스트
**Claude 활용:**
`
"API 테스트 자동화
- GET /api/users
- POST /api/users
- 응답 검증
- 에러 케이스"
`
**코드 생성:**
test('사용자 조회 API', async ({ request }) => {
const response = await request.get('/api/users');
expect(response.status()).toBe(200);
const users = await response.json();
expect(users).toHaveLength(10);
expect(users[0]).toHaveProperty('id');
expect(users[0]).toHaveProperty('name');
});
**커버리지:**
- Before: 0%
- After: 80%
성능 테스트
**요구사항:**
API 응답 시간 체크
**Claude에게:**
`
"API 성능 테스트
- 응답 시간 측정
- 100 requests/sec
- 평균/최대 시간
- 리포트 생성"
`
**결과:**
test('API 성능', async ({ request }) => {
const times: number[] = [];
for (let i = 0; i < 100; i++) {
const start = Date.now();
await request.get('/api/users');
times.push(Date.now() - start);
}
const avg = times.reduce((a, b) => a + b) / times.length;
const max = Math.max(...times);
console.log(평균: ${avg}ms, 최대: ${max}ms);
expect(avg).toBeLessThan(200);
});
Week 5-8: CI/CD 통합

GitHub Actions
**목표:**
코드 푸시 → 자동 테스트
**Claude 활용:**
`
"GitHub Actions로 테스트 자동화
- PR 시 실행
- 브라우저 3개 (Chrome, Firefox, Safari)
- 실패 시 스크린샷
- Slack 알림"
`
**.github/workflows/test.yml:**
`yaml
name: E2E Tests
on: [pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
browser: [chromium, firefox, webkit]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- run: npm ci
- run: npx playwright install
- run: npx playwright test --browser=${{ matrix.browser }}
- uses: actions/upload-artifact@v2
if: failure()
with:
name: screenshots
path: test-results/
`
**효과:**
- 자동 실행
- 빠른 피드백
- 버그 조기 발견
리포팅
**요구사항:**
예쁜 테스트 리포트
**Claude 활용:**
`
"Allure 리포트 생성
- 테스트 결과 시각화
- 스크린샷 포함
- 트렌드 분석"
`
**결과:**
경영진도 이해하는 리포트
2개월 후 변화
업무 방식
**Before:**
`
수동 테스트: 8시간/일
자동화: 0%
커버리지: 50%
`
**After:**
`
자동 테스트: 24시간 가능
자동화: 95%
커버리지: 90%
`

시간 절약
**회귀 테스트:**
- Before: 2일 (수동)
- After: 30분 (자동)
- 절감: 95%
**여유 시간:**
- 탐색적 테스팅
- 테스트 전략 수립
- 품질 개선 활동
포지션
**Before:**
QA 엔지니어
**After:**
- QA 자동화 엔지니어
- 테스트 아키텍트
- DevOps 협업
**연봉:**
+25%
핵심 활용법
1. 시나리오 → 코드
**방법:**
`
1. 수동 테스트 케이스 보기
2. Claude에게 설명
3. 코드 생성
4. 검증
`
**효과:**
빠른 자동화
2. 에러 해결
**에러 발생 시:**
`
"이 에러 해결해줘
(스택 트레이스 붙여넣기)"
`
**5분 내 해결:**
대부분 가능
3. 리팩토링
**중복 코드:**
`
"이 테스트 코드들 리팩토링해줘
- 공통 함수 추출
- Page Object Pattern 적용
- 유지보수 쉽게"
`
**결과:**
깔끔한 코드
실전 사례
Case 1: 모바일 테스트
**요구사항:**
앱 테스트 자동화
**Claude 활용:**
`
"Appium으로 Android 앱 테스트
- 로그인
- 상품 검색
- 장바구니
- 결제"
`
**결과:**
모바일까지 자동화
Case 2: 부하 테스트
**문제:**
서버 부하 테스트 필요
**Claude 활용:**
`
"k6로 부하 테스트
- 동시 사용자 1000명
- 시나리오별 테스트
- 메트릭 수집"
`
**성과:**
병목 지점 발견 및 개선
Case 3: 시각적 회귀 테스트
**요구사항:**
UI 변경 감지
**Claude 활용:**
`
"Percy로 시각적 회귀 테스트
- 스크린샷 비교
- 차이점 하이라이트
- PR에 리포트"
``**효과:**
의도치 않은 UI 변경 방지
팀 변화
개발자 반응
**Before:**
"QA 테스트 느려서 답답해"
**After:**
"PR 올리면 바로 테스트 결과 나와서 좋아요"
팀장 반응
"지원님 덕분에 품질 좋아지고 속도도 빨라졌어요"
경영진 반응
"QA 인력 안 늘려도 되겠네요?"
추천 대상
강력 추천
**수동 테스터:**
- 반복 작업 지침
- 자동화 필요
- 코딩 몰라도 OK
**QA 리드:**
- 팀 효율 개선
- 자동화 도입
결론
2개월 전 나
**상태:**
- 수동 테스터
- 반복 작업
- 미래 불안
**고민:**
"언제까지 클릭만 할까?"
지금 나
**상태:**
- 자동화 엔지니어
- 전략적 업무
- 연봉 25% 인상
**확신:**
"AI 덕분이다"
QA 여러분께
**클릭만 하시나요?**
**AI로 자동화하세요**
**시작:**
The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
**약속:**
2개월 후 당신도 자동화 전문가
---
**태그**: #QA #테스트자동화 #Playwright #딩코딩코 #AI코딩
L
럿지 AI 팀
AI 기술과 비즈니스 혁신을 선도하는 럿지 AI의 콘텐츠 팀입니다.