본문으로 건너뛰기

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