11.1 요구사항과 Test Plan
좋은 E2E test는 UI를 돌아다니다가 우연히 assertion하는 script가 아니라 requirement의 위험을 executable form으로 표현합니다.
Application overview
Playwright Lab 사용자는 다음을 할 수 있습니다.
- Todo를 추가하고 완료한다.
- Server summary를 다시 불러온다.
- Evidence file을 선택하고 CSV를 내려받는다.
- Confirm dialog를 승인하거나 취소한다.
- 도움말을 새 popup으로 연다.
- Login 후 dashboard로 이동한다.
- 일정 시간이 지나면 offer가 만료되는 것을 본다.
Test plan template
### Scenario: 할 일을 추가한다
Preconditions:
- Todo 목록이 비어 있다.
Steps:
1. 할 일 입력란에 "Trace 학습"을 입력한다.
2. 추가 button을 누른다.
Expected:
- "Trace 학습" list item이 보인다.
- 입력란은 비어 있다.
- 완료 checkbox는 선택되지 않았다.
Evidence:
- HTML report step
- 실패 시 trace와 screenshot
Risk-based 우선순위
| 위험 | 영향 | 빈도 | Test 전략 |
|---|---|---|---|
| Login 불가 | 매우 큼 | 중간 | PR smoke + cross-browser |
| Export schema 오류 | 큼 | 낮음 | API contract + browser download |
| Popup title 오류 | 낮음 | 낮음 | Chromium integration |
| Timer boundary 오류 | 중간 | 중간 | Clock 기반 deterministic test |
| Padding 2px 회귀 | 낮음 | 중간 | 핵심 component visual only |
모든 시나리오를 모든 browser에서 실행하지 않습니다. 위험과 browser-specific behavior를 기준으로 project matrix를 정합니다.
Scenario와 test의 추적성
test('CAP-TODO-001 할 일을 추가한다', {
tag: ['@smoke', '@todo'],
annotation: { type: 'requirement', description: 'CAP-TODO-001' },
}, async ({ page }) => {
// ...
});
ID가 너무 많은 management overhead를 만들지 않도록 release decision에 실제로 쓰이는 requirement만 연결합니다.
Seed test와 생성 도구
공식 Playwright Test Agents는 seed test를 바탕으로 plan, generator, healer workflow를 제공합니다. 자동 생성 결과는 시작점입니다. 다음을 사람이 검토합니다.
- Locator가 semantic contract인가?
- Expected result가 action 완료가 아닌 제품 상태인가?
- Test data가 독립적인가?
- 불필요한 wait와 force가 들어가지 않았는가?
- Healing이 제품 결함을 selector 변경으로 숨기지 않았는가?
과제
- 위 기능에서 P0/P1/P2 scenario를 12개 작성합니다.
- 각 scenario에 적합한 layer와 browser matrix를 지정합니다.
- Test plan과 spec file을 1:1 또는 명시적 N:1로 연결합니다.
- Evidence와 cleanup policy를 적습니다.