Rinda E2E 테스트 분류 설계

2026-06-11 · Playwright 1.60 + ReportPortal 26.0.x · 39 spec / 111 tests 전수 분석 기반

1. 리서치 — 공통 합의 패턴 Top 5

Playwright 공식 문서·팀 블로그, TestRail / Xray / Allure TestOps / Qase, ReportPortal docs, 커뮤니티(2025–2026) 교차 검증 결과.

#합의 패턴근거
1폴더 = 도메인/feature 1계층, 태그 = 교차 분류Playwright 팀 공식 "test type 말고 feature로 조직하라" 명시. Xray(Repository+Sets)·Allure(Behaviors+Suites)도 동일 이중 모델
2smoke/ 폴더 금지 → @smoke 태그 + --grep/projects한 테스트가 여러 실행 세트에 속해야 하므로
3태그 taxonomy 6~12개 상한 + 문서화과다·비일관 태깅이 양대 실패 모드
4E2E는 critical journey만 얇게 (trophy/honeycomb)분류 단위 = 시나리오, 전수 회귀는 하위 레이어로
5리포팅 분류는 태그/attribute가 SSOTRP Component Health Check = attribute 10레벨 드릴다운 (폴더 아님)

2. 진단 — 현 구조의 문제

문제사례상태
카테고리-우선 → 도메인 분산sequences가 sequences/ · sequence-proposal/ · sequences-list/ · sequences-step2/ 4곳 (33 tests)심각
무소속 파일tests/admin-recordings-audio-progress.spec.ts (루트), critical/main-menu.spec.ts정리 필요
태그 공백tagTest 사용 2/39 파일(5%) → RP 필터·위젯 불능심각
GUIDELINES 드리프트proposal→sequences/ 매핑 위배 · noauth/billing/iam 규칙 부재문서 개정

3. 목표 구조 — 도메인-우선 트리

e2e/tests/
├── auth.setup.ts
├── features/                          ← 정본 계층: 폴더 = 제품 도메인 (1테스트 1폴더)
│   ├── auth/                          signin·signup·login·routes-guard (noauth 4)
│   ├── onboarding/
│   ├── dashboard/
│   ├── leads/                         바이어 관리
│   ├── lead-discovery/                바이어서치 (+ workspace-isolation)
│   ├── sequences/                     ★ 4폴더 통합 → 화면 단위 spec
│   │   ├── list-tree.spec.ts          (구 sequences-tree + sequences-list/quality)
│   │   ├── create-tree.spec.ts
│   │   ├── step-editor-a11y.spec.ts   (구 sequences-step2)
│   │   └── proposal-tree.spec.ts      (구 sequence-proposal 2파일)
│   ├── email-replies/                 email-tree · inbox-buckets-tree
│   ├── ai/                            ai-copilot + ai-employee 통합
│   ├── billing/                       gtm-pack checkout → 여기로
│   ├── settings/                      settings + iam + workspace-switch
│   ├── admin/                         console-page + recordings(무소속 흡수)
│   ├── content/                       help · knowledge-base · campaign-calendar · linkedin-sdr
│   └── platform/                      교차 기능: main-menu · i18n · security · auto-public
├── db/                                ← 레이어 예외 (별도 project, UI 없음) — 유지
│   ├── core/  └── aux/
├── exploratory/                       ← 비결정적 탐색 (a11y 전수·크롤러) — 유지
├── helpers/  fixtures/
└── GUIDELINES.md
✕ 삭제: tests/smoke/ · tests/critical/ (카테고리 폴더 → 태그로 이전)

4. 태그 taxonomy — 총 10개 (상한 12 이내)

태그 축

태그개수
실행 세트@smoke @critical @exploratory3
우선순위@P0 @P1 @P23
특성@noauth @a11y @flaky @slow4
도메인폴더 경로에서 자동 도출 (tagTest가 testInfo.file 파싱) — 수동 태깅 00

실행 세트 = projects grep

// playwright.config.ts
projects: [
  { name: "smoke",
    grep: /@smoke/ },
  { name: "critical",
    grep: /@critical/ },
  ...
]

CI partial 필터는 features/sequences 폴더 경로 그대로 — 도메인-우선이라 detect 정규식이 오히려 단순해짐.

ReportPortal 트리 매핑 (직관성의 핵심)

RP suite 트리 = 파일명 → describe 구조. spec 안 describe를 도메인 화면 — {접근 / 구조 / 액션} 3단 트리로 표준화(현 tree 패턴 유지) + 태그를 attribute로 브리지하면 Component Health Check 위젯에서 domain → priority → 실행세트 드릴다운이 코드 수정 없이 나온다.

5. 마이그레이션 계획 (~2h, git mv 위주)

노드작업크기
N1.1*tagTest v2: 폴더→도메인 자동 도출 + {tag} 공식 API + RP attribute 브리지M
N1.2*git mv로 features/ 재배치 (sequences 4→1 통합, 무소속 2개 수용)M
N1.3playwright.config projects(smoke/critical grep) + npm scripts + CI detect 경로 수정M
N1.4전 spec 태그 일괄 부여 (39파일 — 도메인 자동 도출 덕에 카테고리·P만 명시)M
N2.1GUIDELINES.md 개정 (이중 모델 규칙 + noauth/billing/iam 명시)S
리스크 & 전제

부록 — 현 인벤토리 요약

카테고리파일테스트비고
critical/ (26개 도메인 폴더)3476page-smoke 9 · tree 패턴 9 · noauth 5
smoke/11routes.json 기반 public 라우트 자동
db/11FK 무결성 (별도 project)
exploratory/11a11y 전수
무소속(루트)11admin-recordings → features/admin/ 흡수 예정
합계39111