본문으로 건너뛰기

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 변경으로 숨기지 않았는가?

과제

  1. 위 기능에서 P0/P1/P2 scenario를 12개 작성합니다.
  2. 각 scenario에 적합한 layer와 browser matrix를 지정합니다.
  3. Test plan과 spec file을 1:1 또는 명시적 N:1로 연결합니다.
  4. Evidence와 cleanup policy를 적습니다.

참고: Playwright Test Agents, 공식 agent source guide