QA·테스트 자동화 부트캠프
요구사항을 테스트로 바꾸고 결함을 재현하며 핵심 흐름의 회귀 검증을 완성합니다.
- 대상
- 국비 웹 과정 수료생과 QA 직무를 시작하는 비전공 입문자를 대상으로 합니다.
- 시작 전
- 파일·폴더와 브라우저 사용부터 시작합니다. 기존 개발 경험은 요구하지 않으며 JavaScript 값·조건·함수·비동기를 네 번째 모듈에서 익힙니다. 로컬 실습의 런타임 설치와 명령 실행은 제공 안내로 진행합니다.
- 학습 시간
- 120시간 안팎
트랙 프로젝트
웹 서비스의 테스트 계획과 자동 회귀 검증
동아리 회원 웹 서비스의 가입·로그인·프로필 수정에 대한 테스트 계획과 자동 회귀 검증을 만듭니다. 제공 앱은 Java 17·Spring Boot 3.1.x이며 합성 데이터와 로컬 환경만 사용합니다.
수료하면 할 수 있는 일
- 가입과 로그인 흐름의 경계값 및 오류 조건을 테스트 표로 작성합니다.
- 요구사항을 인수 기준과 연결하고 모호한 부분을 확인합니다.
- 환경과 사전 조건을 포함한 결함 보고서로 재현을 지원합니다.
- API의 응답과 실제 데이터 변경을 함께 검증합니다.
- 핵심 UI 흐름을 자동화하고 실패 시 로그와 화면 증거를 남깁니다.
- 테스트 데이터를 독립적으로 준비하고 실행 후 정리합니다.
- CI 실패 원인을 분류하고 변경 위험과 미검증 범위를 근거로 릴리스 의견을 작성합니다.
모듈
- 사용자 흐름과 인수 기준
모호한 요구사항을 질문하고 관찰 가능한 인수 기준과 연결합니다.
10시간 안팎
spec/requirements.json에 가입·로그인·프로필 수정 요구사항 8개 이상과 인수 기준을 작성합니다. · spec/questions.json에 질문 5개 이상과 합의·보류 상태를 기록합니다. · spec/traceability.json에 요구사항 ID와 테스트 ID의 연결을 작성합니다.
- 경계값과 상태 전이 설계
첫 모듈의 인수 기준을 입력·권한·상태별 테스트로 전개합니다.
12시간 안팎
이전 spec을 유지하고 cases/cases.json에 테스트 24개 이상을 추가합니다. · 각 테스트에 요구사항 ID·사전 조건·입력·기대 결과·유형을 기록합니다. · 가입 경계 6개와 중복·공백·권한·세션 만료 조건을 포함합니다.
- 수동 탐색과 결함 재현
테스트 표로 실습 앱을 탐색하고 재현 가능한 결함 증거를 남깁니다.
12시간 안팎
기존 cases를 실행하고 defects/에 서로 다른 결함 보고서 2개와 탐색 노트를 추가합니다. · reports/environment.json에 OS·런타임·앱 버전·실행 절차를 기록합니다. · 증거는 합성 계정만 사용하고 민감값을 제거하며 requestId를 유지합니다.
- JavaScript 검증 코드와 실패 해석
설계한 테스트의 기대 결과를 독립적인 검증 코드로 표현합니다.
12시간 안팎
이전 결함의 인수 기준을 checks/의 검증 함수와 node:test 사례로 연결합니다. · null 본문·잘못된 타입·비동기 거절을 포함해 검증기를 작성합니다. · 요구사항과 다른 응답을 넣었을 때 실패하는 회귀 검사를 추가합니다.
- HTTP 계약과 API 자동 검증
실습 앱의 응답 코드·본문·권한·저장 결과를 함께 검증합니다.
14시간 안팎
m04 검증기를 재사용해 api/에 가입·로그인·프로필 API 테스트를 추가합니다. · 200 응답이지만 잘못된 본문과 타인 프로필 조회를 검출합니다. · 제공 Java 통합 테스트에 성공 가입의 1행 증가와 중복·권한 거절의 무변경 검증을 완성합니다.
- 테스트 데이터 준비와 격리
API 테스트의 공유 상태를 제거하고 DB 변경과 정리 범위를 검증합니다.
12시간 안팎
m05 API 테스트에 실행별 fixture와 정리 절차를 연결합니다. · 준비·검증 중 실패를 주입해 자신이 생성한 데이터의 정리를 확인합니다. · 자기 실행·다른 실행·기존 데이터의 ID를 구분하고 SQL 증거를 남깁니다.
- 핵심 UI 흐름 자동화
격리한 데이터로 사용자 흐름을 검증하고 상태 기반 대기와 실패 증거를 남깁니다.
14시간 안팎
m06 fixture를 UI 테스트에 연결해 가입→로그인→프로필 수정→로그아웃을 자동화합니다. · 중복 이메일·세션 만료·로딩·오류 복구·키보드 탐색을 확인합니다. · 고정 sleep 없이 상태를 기다리고 실패 시 공개용 마스킹 증거를 생성합니다.
- CI 실행과 실패 분류
API·UI 검사를 재현 가능한 실행 절차로 묶고 실패의 원인을 구분합니다.
12시간 안팎
m07까지의 검사를 ci/ 파이프라인과 단일 로컬 실행 절차로 묶습니다. · 제품 응답 결함·접속 불가·잘못된 locator의 실패 fixture를 따로 실행합니다. · reports/triage.json에 분류·증거·다음 조치와 버전 정보를 남깁니다.
- 불안정 테스트와 위험 기반 회귀
시간·데이터·환경 원인을 재현하고 변경 영향에 따라 회귀 범위를 선택합니다.
12시간 안팎
m08 실패 기록에 원인·재현 seed·수정·재검증을 추가합니다. · 가입 길이 규칙과 세션 만료 변경에 대한 회귀 선택표를 작성합니다. · 불안정 테스트의 자동 재시도 의존을 제거하고 격리 보류 시 사유·담당·해제 조건을 남깁니다.
- 테스트 계획과 회귀 검증 완성
발견 결함·자동화 범위·제외 근거를 증거로 설명하고 릴리스 판단을 지원합니다.
10시간 안팎
이전 모든 산출물을 README·테스트 계획·회귀 결과·릴리스 의견으로 묶습니다. · 최종 추적표에 요구사항→인수 기준→테스트→결함→회귀 증거를 연결합니다. · AI 도움을 사용했다면 입력 권한·검토 내용·직접 확인한 결과를 기록합니다.
신입 기본기 대응표
| 영역 | 완료 기준 | 모듈 |
|---|---|---|
| 요구사항과 인수 기준 |
| m01-requirements |
| 테스트 설계 |
| m02-test-design |
| 결함 재현 |
| m03-defect-reports |
| 기술 기반 |
| m04-validation-codem05-http-api |
| 자동화와 데이터 |
| m05-http-apim06-data-isolationm07-ui-automation |
| 지속적인 품질 |
| m08-ci-triagem09-flaky-regressionm10-quality-evidence |
면접 질문 대응
- 가입 폼의 테스트 조건을 정하는 과정을 설명해 주시면 됩니다. m01-requirementsm02-test-design
- 요구사항에 정상 동작만 적혀 있을 때 대응 방법을 설명해 주시면 됩니다. m01-requirements
- 재현하기 좋은 결함 보고서의 구성을 설명해 주시면 됩니다. m03-defect-reports
- API 응답 코드가 성공이어도 테스트가 실패할 수 있는 상황을 설명해 주시면 됩니다. m05-http-apim06-data-isolation
- UI 자동화에서 고정 시간 대기를 줄이는 방법을 설명해 주시면 됩니다. m07-ui-automationm09-flaky-regression
- 실행 순서에 따라 결과가 달라지는 테스트를 확인하는 방법을 설명해 주시면 됩니다. m06-data-isolationm09-flaky-regression