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 통합



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의 콘텐츠 팀입니다.