agentleFS
jaktestowacjaktestowac/awesome-copilot-for-testers/skills/designing-functional-tests/SKILL.md

designing-functional-tests

Skill118 starsChanged 2 months agoMITView on GitHub

Designs risk-based functional test plans, manual test cases, regression slices, and automation handoff packs from requirements, URLs, or exploratory notes. Use when preparing manual QA coverage before automation, turning feature descriptions into scenario catalogs, or converting exploratory findings into structured test assets.

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 14 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈14

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when the goal is to turn product intent into tester-ready coverage rather than directly generating automation.

    line 10
  2. Distinctive:

    create a risk-based functional test plan

    line 15
  3. Distinctive:

    One case proves one thing: - avoid giant cases that validate five behaviors at once.

    line 25
  4. Distinctive:

    Stable IDs matter: - use durable IDs for scenarios and cases so they can be referenced later.

    line 26
  5. Distinctive:

    If the user did not specify the artifact, choose the lightest format that still solves the task.

    line 39
  6. Distinctive:

    Before writing cases, confirm the test basis gives enough signal to work with.

    line 43
  7. Distinctive:

    If any of these are missing:

    line 52
  8. Distinctive:

    If the user wants to move fast, proceed with an Assumptions section instead of inventing hidden requirements.

    line 55
  9. Distinctive:

    Do not write confident-looking expected results for behavior that is still unknown.

    line 58
  10. Distinctive:

    Not every flow needs the same depth.

    line 74
  11. Distinctive:

    Use a simple three-level priority scale:

    line 79
  12. Very specific:

    Use ./resources/test-plan-template.md when possible.

    line 96
  13. Very specific:

    Use IDs like MTC-001

    line 111
  14. Distinctive:

    Keep steps observable and short

    line 112
  15. Distinctive:

    Write specific expected results, not "works correctly"

    line 113
  16. Very specific:

    Add an Automation Candidate value: high, medium, or low

    line 115
  17. Distinctive:

    Before finishing, decide what should happen next:

    line 128

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Designing Functional Tests

Use this skill when the goal is to turn product intent into tester-ready coverage rather than directly generating automation. It helps produce plans and cases that are clear enough for manual execution and clean enough to hand off to automation later.

When to Use

  • create a risk-based functional test plan
  • turn acceptance criteria into manual test cases
  • convert exploratory notes into reusable scenario packs
  • prepare a regression slice for a bug fix or small feature
  • identify which scenarios should move into automated tests first

Core Rules

  • No silent invention - missing behavior becomes a question or an explicit assumption.
  • Risk decides depth - high-risk flows deserve positive, negative, boundary, permission, and recovery coverage.
  • One case proves one thing - avoid giant cases that validate five behaviors at once.
  • Stable IDs matter - use durable IDs for scenarios and cases so they can be referenced later.
  • Manual first, automation second - good automation starts with stable, observable manual intent.

Workflow

Phase 0: Frame the deliverable

Decide which artifact is needed:

  • Full plan - scope, priorities, scenario catalog, risks, open questions
  • Manual cases - detailed steps and expected results
  • Regression slice - the smallest believable retest pack after a change

If the user did not specify the artifact, choose the lightest format that still solves the task.

Phase 1: Run the test-readiness gate

Before writing cases, confirm the test basis gives enough signal to work with.

Minimum signal:

  • the feature or flow being tested
  • the actor or user role
  • the starting state or preconditions
  • an observable success outcome

If any of these are missing:

  1. Ask targeted questions.
  2. If the user wants to move fast, proceed with an Assumptions section instead of inventing hidden requirements.
  3. Tag affected scenarios or cases with ASSUMPTION.

Do not write confident-looking expected results for behavior that is still unknown.

Phase 2: Map the coverage lenses

For each high-value flow, check these lenses:

LensWhat to cover
Happy pathBaseline success path
NegativeInvalid inputs, rejected actions, failures
BoundaryEmpty, min, max, off-by-one, format edges
PermissionsWrong role, wrong state, missing access
RecoveryRetry, refresh, session loss, partial failure
Data / StatePersistence, deduplication, conflicting updates
Accessibility smokeKeyboard reachability, labels, error visibility

Not every flow needs the same depth. Apply full coverage to risky flows and lighter smoke coverage to low-risk areas.

Phase 3: Prioritize before expanding

Use a simple three-level priority scale:

  • High - critical business path, security-sensitive area, money/data movement, or frequent user action
  • Medium - important supporting workflow or high-change area
  • Low - secondary behavior, visual polish, or low-impact option

High-priority flows should include at least:

  • one happy path
  • one negative case
  • one boundary or permission case
  • one recovery or state-handling case

Phase 4: Produce the requested artifact

Full plan

Use ./resources/test-plan-template.md when possible. A good plan includes:

  • scope and exclusions
  • risks and priorities
  • scenario catalog with IDs like SCN-001
  • assumptions and open questions
  • automation handoff notes

Manual test cases

Use ./resources/manual-test-cases-template.md when possible.

Case rules:

  • Use IDs like MTC-001
  • Keep steps observable and short
  • Write specific expected results, not "works correctly"
  • Include case type tags such as happy, negative, boundary, permission, recovery, a11y-smoke
  • Add an Automation Candidate value: high, medium, or low

Regression slice

For small changes or bug fixes, produce:

  • changed surface
  • must-retest scenarios
  • adjacent risk areas
  • optional "do later" scenarios if time is tight

Phase 5: Prepare the handoff

Before finishing, decide what should happen next:

  • send risky edge cases into the /qa-strategy prompt for adversarial expansion
  • send stable, repeatable scenarios into the /test-generator or /playwright-generate-test prompts
  • send requirements-heavy work into requirements-test-coverage-mapper when traceability matters more than step-by-step execution

Output Standards

Always include:

  • clear scope
  • priority or risk signal
  • explicit assumptions or open questions
  • scenario or case IDs
  • enough detail for another tester to execute without a live explanation

Good output is handoff-ready, not just impressive-looking.

Common Failure Modes

  • writing a plan that only covers happy paths
  • burying critical assumptions inside prose
  • mixing multiple assertions into one giant test case
  • using vague expected results such as "data saved successfully"
  • generating every possible case without prioritization

Resource Map

  • ./resources/test-plan-template.md - structure for full plans and regression slices
  • ./resources/manual-test-cases-template.md - table format for detailed manual execution

Related Skills

  • requirements-test-coverage-mapper - when traceability to PRD, stories, or AC is the main deliverable
  • reporting-bugs - when the task has shifted from planning to documenting a defect
  • auditing-accessibility - when coverage needs a deeper accessibility pass instead of smoke checks

Definition of Done

This skill is complete when:

  • the requested artifact type is clear
  • missing information is either answered or listed as assumptions
  • high-risk flows have deeper coverage than low-risk flows
  • each case or scenario has a stable ID
  • the output can be executed or handed off without extra explanation

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.