{"slug":"pairwise-testing","title":"pairwise-testing","summary":"Use this skill when you need to identify interactions that need at least pairwise coverage after factors, values, and constraints are explicit; triggers include 成对测试 and pairwise test design.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-24T14:55:06.990355Z","repo":{"url":"https://github.com/naodeng/awesome-qa-skills","stars":230,"forks":31,"license":null,"updatedAt":"2026-09-22T13:51:34Z"},"bodyHtml":"<hr>\n<h2>name: pairwise-testing\ndescription: Use this skill when you need to identify interactions that need at least pairwise coverage after factors, values, and constraints are explicit; triggers include 成对测试 and pairwise test design.</h2>\n<h1>Pairwise Test Design</h1>\n<p>identify interactions that need at least pairwise coverage after factors, values, and constraints are explicit. Produce PWT-## findings. This Skill organizes traceable test-design candidates only; it does not execute tests or turn a design inventory into coverage, pass, or release evidence.</p>\n<h2>When to Use</h2>\n<ul>\n<li>When you need Pairwise Test Design candidates from test factors, values for each factor, combination constraints, platform/role dimensions, risk evidence, and existing combinations.</li>\n<li>When you need selection rationale, applicability constraints, evidence gaps, and the smallest validation action.</li>\n<li>When inputs are incomplete but a bounded first pass can preserve blocked or unassessed boundaries.</li>\n</ul>\n<p>Do not use it to execute tests, invent rules, replace a complete strategy, or accept risk for a Human.</p>\n<h2>Output Format Options</h2>\n<ul>\n<li>Use Markdown by default; use tables, JSON, or CSV only when explicitly requested or required by the delivery format.</li>\n<li>Separate static analysis, unexecuted work, evidence states, and Human decisions; keep items unassessed, blocked, or NOT_RUN when runtime evidence is absent.</li>\n</ul>\n<h2>How to Use</h2>\n<ol>\n<li>Read prompts/pairwise-testing.md and provide the objective, scope, material, environment, and evidence.</li>\n<li>Complete known, missing, conflicting, stale, out_of_scope, and assumptions before findings.</li>\n<li>Record PWT-## with factors, value pair, validity constraint, interaction risk, coverage rationale, source evidence, priority, and validation method, source, evidence state, impact, owner, close condition, and validation.</li>\n<li>Preserve conflicts, unknown constraints, and open questions.</li>\n</ol>\n<h2>Core Constraints</h2>\n<ul>\n<li>do not describe pairwise coverage as all-combination coverage, ignore exclusions, or invent factors or values from experience.</li>\n<li>File presence, names, design declarations, and Eval configuration are not runtime evidence.</li>\n<li>Mark unknowns unassessed, blocked, or pending clarification instead of filling them with convention.</li>\n<li>Do not edit requirements, code, test assets, or target systems.</li>\n</ul>\n<h2>Pre-delivery Check</h2>\n<ul>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Recorded the six-part input audit.</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Every PWT-## has source, minimum evidence, impact/priority, owner role, close condition, and validation.</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Facts, inferences, recommendations, unexecuted work, and Human decisions remain separate.</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Findings are not full cases, execution results, coverage proof, or release claims.</li>\n</ul>\n<h2>Reference Files</h2>\n<ul>\n<li>Read evals/eval.yaml and matching cases for regression; configuration does not prove project results.</li>\n<li>Use evals/trigger-prompts.csv and evals/local-rules.json for trigger checks; missing skill.selection evidence is BLOCKED.</li>\n</ul>\n<h2>Common Pitfalls</h2>\n<ul>\n<li>Do not turn a method name, file presence, or candidate count into test execution, coverage, pass, or release evidence when scope or evidence is incomplete.</li>\n<li>Do not fill in missing rules, thresholds, data, environments, or results from convention; preserve unassessed, blocked, and pending items.</li>\n<li>Do not expand this specialist design or review into a complete strategy, full test cases, runtime execution, or a release decision.</li>\n</ul>\n<h2>Best Practices</h2>\n<ul>\n<li>Complete the six-part input audit before selecting the smallest traceable and verifiable finding scope.</li>\n<li>Keep the source, evidence state, impact/priority, owner role, close condition, validation method, and residual risk for every finding.</li>\n<li>Write validation suggestions as next actions; do not upgrade package structure, candidate counts, or local Eval configuration into real quality conclusions.</li>\n</ul>\n","files":[{"path":"agents/openai.yaml","sizeBytes":335,"isText":true},{"path":"evals/cases/basic-success.yaml","sizeBytes":856,"isText":true},{"path":"evals/cases/edge-incomplete-input.yaml","sizeBytes":853,"isText":true},{"path":"evals/cases/edge-scope-boundary.yaml","sizeBytes":921,"isText":true},{"path":"evals/eval.yaml","sizeBytes":441,"isText":true},{"path":"evals/local-rules.json","sizeBytes":135,"isText":true},{"path":"evals/trigger-prompts.csv","sizeBytes":795,"isText":false},{"path":"prompts/pairwise-testing.md","sizeBytes":3573,"isText":true},{"path":"SKILL.md","sizeBytes":3793,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-24T14:58:13.175343Z","sha256":"7965CAA75B6D58769FE5DD6350851A0B86303D9766ED3B7DB4AF1265F7D65A84","sizeBytes":6352},"review":null,"source":{"repositoryUrl":"https://github.com/naodeng/awesome-qa-skills","path":"skills/en/testing-types/pairwise-testing","license":null,"commit":"c44b8922085e01bafc804d1ffa3f21d4cec1d1c5","subtreeSha":"C63DB405683152590226D4BE19D304742B1732767D51C33A06A431F9D86E5962","lastSyncedAt":"2026-09-24T14:54:50.849933Z"},"reviewedAt":"2026-09-24T15:07:58.511801Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/naodeng/awesome-qa-skills/tree/main/skills/en/testing-types/pairwise-testing"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install naodeng-awesome-qa-skills@llmmart"},{"target":"git","command":"git clone https://github.com/naodeng/awesome-qa-skills.git"}]}