문제 (Problem)
UI 자동화 테스트는 프론트엔드가 변경될 때마다 셀렉터가 깨지는 문제를 안고 있습니다:
- 디자인 리팩토링 후
data-testid, CSS 클래스, XPath가 일괄 변경 - CI 파이프라인이 셀렉터 불일치로 빈번하게 실패
- 수동으로 깨진 셀렉터를 찾아 수정하는 데 매주 수 시간 소요
- Playwright 사용자도 예외가 아님 — locator가 깨지면 수동 업데이트 필요
Pain Point 강도: 9/10 - 테스트 유지보수가 테스트 작성보다 더 고통스러움
시장 (Market)
- 1차 시장: 글로벌 QA 엔지니어, 풀스택 개발자
- 세그먼트: Playwright로 E2E 테스트를 운영하는 1-50인 개발팀
- TAM: 테스트 자동화 시장 ~$25B (2025), CAGR 15-17%
- 핵심 사실: 기존 자동복구 도구(Healenium, Katalon, Testim)는 모두 엔터프라이즈 타겟. $50/mo 미만의 인디 개발자용 자동복구 도구는 없음
솔루션 (Solution)
SelfHealTest Lite - Playwright 생태계 전용 자동복구 npm 플러그인
핵심 기능
- 자동 셀렉터 복구: 깨진 locator를 DOM 유사도 분석으로 자동 대체 후 테스트 속행
- 복구 리포트: 어떤 셀렉터가 변경되었고, 어떤 대안으로 복구했는지 diff 리포트
- 코드 업데이트 제안: 복구된 셀렉터로 테스트 코드를 자동 업데이트하는 CLI 명령
- 신뢰도 점수: 복구된 셀렉터의 확신도를 0-100%로 표시, 임계값 이하면 실패
- Playwright Fixture 통합: 기존 테스트 코드 수정 없이 fixture로 주입
사용 시나리오
# 설치
$ npm install -D selfhealtest-lite
# playwright.config.ts에 추가
# import { selfHealFixture } from 'selfhealtest-lite';
# export default defineConfig({ use: { ...selfHealFixture() } });
# 테스트 실행 — 셀렉터 깨져도 자동 복구
$ npx playwright test
✅ 23/25 tests passed
🔧 2 selectors auto-healed:
login.spec.ts:14 #submit-btn → button[type="submit"] (confidence: 94%)
cart.spec.ts:32 .price-label → [data-price] (confidence: 87%)
# 복구된 셀렉터로 코드 자동 업데이트
$ npx selfheal apply
✅ 2 files updated with healed selectors
경쟁 (Competition)
| 경쟁사 | 가격 | 약점 |
|---|---|---|
| Healenium | Free OSS/$AWS | 복잡한 설정, Selenium 전용, Playwright 미지원 |
| Katalon | $208/월+ | 엔터프라이즈 전용, 무거운 IDE |
| Functionize | $99/월+ | ML 기반, 고가, 소규모 팀 부적합 |
| Testim (Tricentis) | $450/월+ | 엔터프라이즈 가격, 락인 강함 |
| Playwright 기본 | Free | 자동복구 없음, 수동 셀렉터 관리 |
경쟁 강도: Medium - 자동복구 카테고리 존재하지만 Playwright 생태계 전용은 부재
차별점: npm install 한 줄로 Playwright에 자동복구 추가. 엔터프라이즈 가격 1/10.
MVP 개발 (MVP)
- MVP 기간: 6주
- 풀 버전: 5개월
- 기술 복잡도: Medium
- 필요 스택: TypeScript, Playwright Plugin API, CDP (Chrome DevTools Protocol), Node.js
MVP 범위
- Playwright fixture/reporter 기반 셀렉터 모니터링
- DOM 유사도 분석 자동복구 엔진 (attribute matching + structural similarity)
- 복구 리포트 생성 (JSON + 터미널 출력)
selfheal apply코드 업데이트 CLI
수익 모델 (Revenue)
- 모델: Freemium + Subscription
- 가격:
- Free: 5 자동복구/실행, 기본 리포트
- Pro: $29/월 (무제한 복구, 코드 업데이트, 히스토리 추적)
- Team: $49/월 (CI 대시보드, 팀 공유, Slack 알림)
- 예상 MRR (6개월): $3,000
- 예상 MRR (12개월): $15,000
리스크 (Risk)
| 유형 | 수준 | 대응 |
|---|---|---|
| 기술 | Medium | DOM 유사도 분석의 정확도가 핵심. 단순 attribute matching부터 시작, 점진적 개선 |
| 시장 | Medium | QA 도구 채택에는 신뢰가 필요 → 오픈소스 코어로 신뢰 구축 |
| 실행 | Low | Playwright plugin API가 잘 설계되어 있어 통합 복잡도 낮음 |
추천 (Recommendation)
점수: 92/100 ⭐⭐⭐⭐⭐
추천 이유
- $25B 테스트 자동화 시장에서 명확한 가격 갭($50 미만) 포착
- Playwright 생태계 전용으로 설치 마찰 최소화 (npm install 한 줄)
- “깨진 테스트 수정” 고통은 모든 개발팀이 공감하는 universal pain
- 오픈소스 코어 + SaaS 대시보드로 자연스러운 성장 경로
- dev_tools + automation 도메인 완벽 적합
리스크 요인
- DOM 유사도 분석의 정확도가 낮으면 신뢰 상실 → false positive 최소화 필수
- Playwright가 자체적으로 자동복구 기능을 추가할 가능성
- 소규모 팀에서 $29/월의 가치를 증명해야 함
첫 번째 액션
- Playwright fixture API로 셀렉터 실패 감지 후크 구현
- attribute matching 기반 셀렉터 대안 탐색 엔진 개발
- npm 패키지로 출시 후 Playwright Discord/GitHub에 공유
- Hacker News Show HN + r/QualityAssurance 론칭
이 아이디어는 Show HN의 “Self-healing browser harness via direct CDP"에서 영감을 받아, 범용 CDP 하네스를 Playwright 전용 플러그인으로 축소(constrain)하여 설치 마찰을 제거하고 생태계 친화적으로 변형한 결과입니다.