본문으로 건너뛰기
cccskills
무료GitHub에 공개

framework-choice-advisor

Reference catalog for picking a test automation framework or QA tool - covers Playwright / Cypress / Selenium / WebdriverIO / Appium / Espresso / XCUITest / RestAssured / Karate / k6 / Locust with side-by-side tradeoffs on speed, cross-browser, mobile, parallelisation, language support, ecosystem maturity, CI integration; a decision tree matching project NFRs to framework choice; and reference layouts for the chosen stack. references/ extends the same decision to commercial procurement (seven-axis vendor evaluation for TCM platforms, no-code tools, visual-regression services) and to recording the outcome (ADR-based tool-selection decision record with signal, one recommendation, flip conditions). This is the upstream selection step: it decides which tool to adopt, not how to configure one already chosen. Use when starting a new test-automation suite, evaluating commercial QA vendors, or writing down a tool decision.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testland/qa스타 13(GitHub 13 + cccskills 0)
연동 도구Playwright

실행 점수 미검증

설치 방법 보기

포함된 파일(15)

  • SKILL.md16.1 KB
  • .tessl-plugin/plugin.json1.0 KB
  • evals/old-decision-record-overtaken-by-the-migration/criteria.json6.3 KB
  • evals/old-decision-record-overtaken-by-the-migration/task.md8.4 KB
  • evals/readme-claims-a-framework-the-repo-does-not-have/criteria.json6.2 KB
  • evals/readme-claims-a-framework-the-repo-does-not-have/task.md6.8 KB
  • evals/stack-decision-demanded-in-week-two-of-a-prototype/criteria.json4.9 KB
  • evals/stack-decision-demanded-in-week-two-of-a-prototype/task.md5.9 KB
  • evals/two-vendor-shortlist-with-a-name-demanded-thursday/criteria.json5.2 KB
  • evals/two-vendor-shortlist-with-a-name-demanded-thursday/task.md7.3 KB
  • evals/vp-mandate-one-framework-for-every-layer/criteria.json7.5 KB
  • evals/vp-mandate-one-framework-for-every-layer/task.md14.3 KB
  • references/decision-record-format.md15.2 KB
  • references/directory-layouts.md2.4 KB
  • references/vendor-evaluation.md19.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

framework-choice-advisor

Overview

A team is starting a new test automation suite and needs to pick the stack: framework, runner, assertion library, reporter, CI integration, fixture system, parallelisation strategy, retry policy. Auto-scaffolding the whole framework in one shot is the integration-friction failure mode that dominates AI-in-testing adoption (2025 World Quality Report: 37% of teams). The honest deliverable is decision support, not auto-scaffolding.

This skill is a pure reference: a decision tree + tradeoff matrix the team uses as a checklist. It does not generate framework boilerplate. After the team picks a stack, the per-framework skills (playwright-testing, cypress-testing, etc.) document the configuration; this skill stops at "you picked Playwright + Jest, here's the canonical directory layout to use".

When to use

  • Greenfield: starting a new test automation suite from zero.
  • Migration: the team is moving off a legacy framework (most commonly Selenium to Playwright, whose auto-waiting removes the manual-wait flakiness that dominates Selenium suites, per the Playwright actionability docs).
  • Multi-stack consolidation: the team has three frameworks across product areas and is deciding which to standardise on.
  • Hiring-driven re-evaluation: the team's skills mix shifted (e.g., from Java to TypeScript) and the framework choice should follow.

Do not use this skill when:

  • The framework is already chosen and the team needs configuration / API help - use the per-framework skill (playwright-testing, cypress-testing, etc.).
  • The team's question is "should we add E2E vs unit vs contract tests" - that's test-pyramid-balancer.
  • Mobile-native vs hybrid app selection - use the qa-mobile plugin's documentation directly.

Step 1 - Frame the decision against the project's NFRs

Six NFR axes drive framework choice. Score each 1 - 5 for the project; rank them by priority. The framework matrix in Step 2 uses these scores.

NFR axisQuestion
Cross-browser scopeIs multi-browser execution required? (Chromium-only? + Firefox + WebKit? + IE/Edge legacy?)
Mobile scopeReal device + emulator? Hybrid app webview? Native-only? Or web-mobile-viewport only?
Team languageWhat languages do the engineers already know? (Avoiding the framework-language mismatch is the #1 maintenance cost.)
Execution speedParallel-shard target - minutes for the full suite. CI-cost-driven?
Ecosystem maturityThird-party integrations the team needs (visual regression, accessibility, perf, contract).
Hire-abilityCan the team hire engineers familiar with the framework? Smaller frameworks → smaller talent pool.

Step 2 - Framework tradeoff matrix (web E2E)

FrameworkCross-browserMobileLanguageSpeed (parallel)EcosystemHire-abilityNotes
PlaywrightChromium / Firefox / WebKit native, all in one runtimeMobile-viewport emulation + real device via Playwright Mobile (beta)TS / JS / Python / .NET / JavaExcellent (auto-parallel, sharding built-in)Strong (trace viewer, visual snapshots, fixtures, MCP integration)High (fastest-growing 2024-26)A common default for greenfield web E2E; its built-in auto-waiting removes the manual-wait flakiness that dominates Selenium suites (Playwright actionability).
CypressChromium-family + Firefox + WebKit (newer)Mobile viewport only; no real-deviceJS / TS onlyGood (parallel via Cypress Cloud; CLI-parallel limited)Strong (huge plugin ecosystem)HighStrong DX for component testing; runs inside-browser limits cross-origin and iframe scenarios.
Selenium / WebdriverIOAll browsers via WebDriver protocolReal device via AppiumAll major languages (Java / Python / C# / JS / Ruby)Moderate (Selenium Grid; WDIO improves on Selenium's runner)Mature (oldest ecosystem)Highest (historical talent pool)Mature but more flake-prone than Playwright: async-wait is the single largest flake category at 45% (Luo et al. 2014), and Selenium leaves that synchronization manual. Migration target, not greenfield default.
TestCafeAll browsers; proxy-based (no WebDriver)Mobile via emulatorsJS / TSModerateSmaller ecosystemLowerNiche; integrated runner.
PuppeteerChromium-only natively (Firefox via experimental)LimitedJS / TSGoodSmaller than PlaywrightLowerMostly superseded by Playwright (the team that built Puppeteer started Playwright).

The 2026-recommendation tree for greenfield web E2E:

  • Multi-browser required + multi-language team → Playwright.
  • Single-browser (Chromium) + JS-only team → Playwright or Cypress; Cypress has stronger component-testing DX.
  • Legacy / migration off existing Selenium suite → either incremental migration to Playwright (preferred) or modernise the Selenium suite via WebdriverIO's runner ergonomics.

Step 3 - Framework tradeoff matrix (other test layers)

Mobile native

FrameworkPlatformLanguageNotes
EspressoAndroid nativeKotlin / JavaGoogle's first-party. In-process, fast, deterministic.
XCUITestiOS nativeSwift / Obj-CApple's first-party. In-process.
AppiumiOS + Android (and others)All majorCross-platform unifier; trades depth for breadth. WebDriver-based - same flake patterns as Selenium.
DetoxReact NativeJS / TSRN-specialist; grey-box testing.

Decision: if the team is single-platform native (iOS only or Android only), use the first-party framework. Cross-platform → Appium, accept the WebDriver flake-tax. React-Native specifically → Detox.

API / contract

FrameworkScopeLanguageNotes
RestAssuredREST API integration testsJava / KotlinThe JVM-default; mature, deeply integrated with JUnit / TestNG.
KarateREST + SOAP + GraphQL + gRPCKarate DSL (Cucumber-like)DSL-first; lowers barrier for non-Java testers.
schemathesisOpenAPI / GraphQL property-based fuzzingPythonGenerative; complements example-based tests.
PactConsumer-driven contract testsJS / JVM / Python / Go / Ruby / .NETDifferent category - contract, not integration. See pact-contract-testing.
Postman / NewmanCollection-driven API testsPostman DSLUI-driven authoring; not code-first. Often used by non-engineers.

Performance

FrameworkScopeLanguageNotes
k6Load + perf, code-firstJS (with TS support)Grafana's; lowest barrier for engineers, excellent CI integration.
LocustLoad + perf, code-firstPythonOpen-source; user-class-based modelling.
JMeterLoad + perf, GUI-firstXML configMature, ecosystem-heavy; GUI-driven authoring is the trade-off.
GatlingLoad + perf, code-firstScala / Java / KotlinHigh-throughput; JVM stack.

Step 4 - Reference directory layouts

After the team has chosen a stack, adopt the canonical directory layout the per-framework skill assumes - a convention, not a mandate, but the starting point a newcomer can read. The layouts for Playwright + Jest, Cypress + Mocha, and Selenium / WebdriverIO are in references/directory-layouts.md.

Step 5 - CI integration patterns

Universal across frameworks:

ConcernConvention
ParallelisationShard by file (Playwright --shard=X/Y, Cypress Cloud, WDIO maxInstances). Aim for 5 - 10 minute wall-clock for the full suite per shard.
RetriesRetry once on first failure; never retry locally (only CI). Tests retried >1× are flake candidates - triage them.
Trace / videoCapture on-first-retry (off for green runs to save storage). Playwright trace: 'on-first-retry' is the default; Cypress + cypress-video-trim similar.
ReportingJUnit XML output for the CI's test-result panel; Allure for human reporting; both via plugin.
SecretsLoad from CI secret store (GitHub Actions Secrets, GitLab CI Variables); never commit.
Environment matrixOne job per (framework, browser, environment) cell; do not mix in one job.

Step 6 - When to defer the decision

The skill recommends deferring framework choice when:

  • The product surface is too new - no stable URL / API to test against.
  • The team's required languages aren't decided yet (hiring in progress).
  • The team is debating monolith vs micro-frontend; the framework choice depends on the product architecture.

In these cases, the right output is an explicit deferral note: "no decision today; revisit when (a)/(b)/(c) resolves."

Step 7 - Commercial vendors (procurement axis)

When the decision is a commercial tool - a test-management platform (TestRail / Qase / Xray / Zephyr), a no-code automation vendor (mabl / Testim / Functionize), a visual-regression service (Applitools / Percy / Chromatic), or an AI copilot tier - the axes change: contract, lock-in, and exit cost matter as much as capability. Run the seven-axis vendor evaluation (capability fit, cost model, integration depth, lock-in risk, exit cost, contractual posture, customer-reference data) in references/vendor-evaluation.md. It emits an evidence pack with a weighted score per the team's NFR order and deliberately refuses to pick the winner - the team owns the procurement choice.

Step 8 - Record the decision

Whichever path produced the choice, write it down as a decision record so a later reader can see the signal, the rejected alternative, and what would reverse it. The ADR-based format - observed project signal, exactly one primary recommendation, a why-not clause, one read-next link, and mandatory flip conditions - is in references/decision-record-format.md.

Anti-patterns

Anti-patternWhy it failsFix
Picking the framework before the NFRs are scoredChoice driven by hype, not fit; high migration cost when the wrong framework can't deliver.Step 1 - score the NFRs first.
Standardising on one framework across every test layerDifferent layers need different tools (Playwright for E2E ≠ k6 for perf ≠ Pact for contract).Pick per layer; the stack is multiple frameworks.
Picking Selenium for greenfield in 2026Manual async-wait is the dominant flake category at 45% (Luo et al. 2014), and Selenium does not auto-wait.Use Playwright for greenfield; reserve Selenium for legacy maintenance.
Cross-language teams picking a single-language frameworkEngineers can't contribute; suite becomes one person's domain.Either pick a multi-language framework (Playwright / Selenium) or commit to retraining.
Adopting a framework because a contractor used itContractor leaves; team can't maintain.Hire-ability is an NFR.
Skipping the directory-layout conventionEvery newcomer authoring tests in a different shape; review burden grows.Step 4 - pick a canonical layout up front, even if you deviate later.
Treating this skill as "framework recommender" rather than "decision support"The skill recommends; the team decides. Automating the decision strips accountability.The output of this skill is a documented choice, not an automatic install.

Limitations

  • Coverage is the web / mobile / API / perf canonical set. Specialised layers (desktop apps via Spectron / Tauri, embedded devices, hardware-in-loop) are out of scope.
  • Tradeoff matrix is point-in-time. Frameworks evolve quickly; the 2026 ranking will be stale in 18 months. Re-read this skill before every greenfield decision.
  • Tradeoffs are illustrative. A specific product can have constraints that flip the recommendation - e.g., a Salesforce internal app where the legacy stack is JVM-only would override the "Playwright by default" guidance.
  • Hire-ability is geography-dependent. "Hire-ability" assumes US / EU markets in the matrix; for other markets, the team's local pool is the authority.
  • No automated framework scaffolding. Per the introduction, this is intentional - auto-scaffolded boilerplate is the dominant failure mode the research flags. Use the per-framework skill after the decision.
  • Closed-platform comparison is a different axis. Mabl / Testim / Functionize / TestSigma are no-code platforms; they compete with this entire category, not with one framework. The "code vs no-code" strategic call stays with the team; once the team is comparing commercial vendors, use the procurement workflow in references/vendor-evaluation.md.

Hand-off targets

  • After the framework is chosen, configure it → per-framework skill (playwright-testing, cypress-testing, selenium-testing, webdriverio-testing).
  • Record the choice → references/decision-record-format.md.
  • Commercial-vendor procurement → references/vendor-evaluation.md.
  • Tune the layer balance after the framework is in place → test-pyramid-balancer.
  • Convert Selenium suite → Playwright (the most common 2026 migration) → migration is a project, not an agent; this skill provides the decision input, the per-framework skills provide the target configuration.

References

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Builds a CI gate that fails the build on **new** WCAG / a11y violations introduced by a PR while grandfathering pre-existing violations on a per-rule / per-page baseline. Aggregates verdicts from axe-core / pa11y / Lighthouse a11y / WAVE / IBM Equal Access scans. Use when a project has accumulated a11y debt and a strict "zero violations" gate would block every PR - the ratchet pattern lets the team ship while preventing regressions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testland/qa132026년 10월 20일 업데이트

Workflow skill that builds an A/B-test validity checklist from an experiment proposal, walking the canonical design-correctness gates - pre-registered OEC/power/guardrails, randomization unit + SRM check, assignment integrity, telemetry, peeking discipline, novelty/primacy, post-experiment SRM re-check - into a per-experiment checklist + sign-off form. Use when launching, auditing, or governing an experiment. For pitfall mechanics (guardrails, peeking) see experiment-results-interpreter's references; to read an already-valid result use experiment-results-interpreter; for per-SDK harness tests use experiment-sdk-testing - this gates DESIGN, not SDK code.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testland/qa132026년 10월 20일 업데이트

The single install-flow skill: the reference contract for the PWA install flow (installability gate fields, `beforeinstallprompt` handshake, per-platform paths - Android WebAPK / iOS Share menu / Firefox no-op - and the `display-mode` post-install signal, in references/install-flow-reference.md) plus the build-an-X workflow that emits the Add-to-Home-Screen suite. Walks the four-stage timeline, emitting one test per gate cell per [web.dev/articles/install-criteria][install-criteria], the deferred-prompt → `prompt()` → `userChoice` chain per [web.dev/articles/customize-install][customize-install], the iOS Safari manual-metadata branch (`apple-touch-icon`) per [web.dev/learn/pwa/installation][learn-pwa], and the post-install `(display-mode: standalone)` MQ assertion. Output: a Playwright spec with per-stage cells plus a coverage matrix. Use when a PWA's manifest, icons, or install handler change, when install conversion drops at an unknown stage, or when triaging a flaky install assertion.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testland/qa132026년 10월 20일 업데이트

Build-an-X workflow that uses an LLM to map existing tests to spec sections - given a spec doc + the test suite, the LLM identifies which tests cover which sections, surfaces uncovered sections (gap), and recommends specific tests to add. Output is a coverage matrix per spec ID. Scope is mapping tests that already exist and naming the gaps, not authoring tests for new acceptance criteria. Use when a spec doc and a test suite both exist but nobody can say which requirements are actually covered - before a release sign-off, an audit, or a decision about where to spend the next round of test effort.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testland/qa132026년 10월 20일 업데이트

Generates tests from natural-language specs (acceptance criteria, user stories, requirements) using an LLM, with confidence scoring per test case (LLM self-assessment plus heuristics: assertion quality, naming, completeness), batching uncertain cases for human review, and integration with the team's existing test framework. Use when the user asks to generate unit tests from acceptance criteria, convert user stories to test cases, automate test creation from requirements, or augment a spec-driven test suite with AI-generated stubs that are then curated before merge.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testland/qa132026년 10월 20일 업데이트

Configures Allure Report (test-runner adapter install, `allure-results` directory wiring, `categories.json` for failure classification, `history-trend.json` retention via the copy-history-between-runs pattern), runs the Allure CLI to convert `allure-results` to a static HTML site, and uploads the report as a CI artifact. Use when the team needs richer test reporting than JUnit XML - step-level attachments, per-test history, retry tracking, and severity / epic / feature labeling across framework-agnostic adapters (pytest, Jest, JUnit, TestNG, NUnit, Mocha). As a rich static HTML report generator, it is the open-source alternative to the sunset ExtentReports (JVM/.NET per-test HTML narrative); for hosted cross-run flakiness analytics rather than a static per-run report use currents-integration.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testland/qa132026년 10월 20일 업데이트

testland의 스킬 모두 보기

이 스킬의 문제 신고