qa-property-based-tests
/qa-property-based-tests
Pisze testy oparte na właściwościach w Hypothesis, fast-check lub proptest, definiując niezmienniki, generatory i strategie skracania.
- Autor
- lookatitude ↗
- Repozytorium
- guild ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 26.10.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 2
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 0
Brak sygnałów. Repozytorium zmienione 26.10.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Pisze testy oparte na właściwościach w Hypothesis, fast-check lub proptest, definiując niezmienniki, generatory i strategie skracania.
Wyzwalacze z opisu
Oryginalny opis (EN)
Authors property-based tests (Hypothesis / fast-check / proptest / QuickCheck) for a target function or module — invariants, generators, shrink strategies. Output: a property-test module plus generator definitions. Pulled by the `qa` specialist. TRIGGER: "write property-based tests for X", "add Hypothesis tests to X", "fast-check properties for X", "author proptest cases for X", "what invariants should we test for X", "add fuzz-style properties for X". DO NOT TRIGGER for: deciding whether the feature needs property tests at all (use `qa-test-strategy`), writing snapshot tests (use `qa-snapshot
Jak działa
- What you do
- Output shape
- Anti-patterns
- Handoff
Podgląd SKILL.md
--- name: qa-property-based-tests description: Authors property-based tests (Hypothesis / fast-check / proptest / QuickCheck) for a target function or module — invariants, generators, shrink strategies. Output: a property-test module plus generator definitions. Pulled by the `qa` specialist. TRIGGER: "write property-based tests for X", "add Hypothesis tests to X", "fast-check properties for X", "author proptest cases for X", "what invariants should we test for X", "add fuzz-style properties for X". DO NOT TRIGGER for: deciding whether the feature needs property tests at all (use `qa-test-strategy`), writing snapshot tests (use `qa-snapshot-tests`), diagnosing flaky tests (use `qa-flaky-test-hunter`), example-based unit tests (owning service group), security fuzzing of untrusted inputs (security-threat-modeling), performance benchmarks (mobile-performance-tuning). when_to_use: The parent `qa` specialist pulls this skill when the task requires asserting properties over a space of inputs rather than hand-picked examples. Also fires on explicit user request. type: specialist --- # qa-property-based-tests The property is the spec; a failing shrink is a minimal counterexample the author cannot hand-wave. ## What you do Pick invariants that hold over the input space of the function under test, build generators that cover the space broadly, and let the framework find the corner case. The output is readable: a human scanning the tests should see what the function promises. - State each property as a single-line invariant (round-trip, idempotence, commutativity, monotonicity, bounds). - Build generators that cover edge ranges (empty, boundary, Unicode, very large, NaN) — not only the happy shape. - Pick enough examples per property (default ≥ 100) and let CI crank it higher nightly. - Name the property so a failure message is self-describing. - Record seeds of failing runs — reproducibility is a hard requirement. - Keep generators fast: complex setup kills the value. ## Output shape A test module (e.g. `tests/properties/test_<module>.py`, `__tests__/properties/<module>.test.ts`) with: 1. **Generators** — small, composable, reusable across properties. 2. **Properties** — each function-under-test gets named invariants. 3. **Settings** — examples count, timeout, deadline, derandomize / seed policy. 4. **Shrinking** — custom shrinkers only when the default is unhelpful. 5. **Regression list** — hard-coded examples pinned from past failures. ## Anti-patterns - Weak invariants like "does not throw" — passes trivially. - Slow generators that crush the examples-per-property budget. - Shrink strategies tuned to hide real bugs (filtering away valid inputs). - Copying example-based tests into a `given` loop — that's parameterization, not properties. - No regression pinning — a found counterexample is lost on next run. - Non-deterministic generators with no seed — failures don't reproduce. ## Handoff Return the test module path and generator module path to the invoking `qa` specialist. If properties reveal bugs the service owner must fix, the qa agent hands off to the owning specialist (backend / mobile). This skill does not dispatch.
Pliki w paczce (2)
- SKILL.md 3 KB
- evals.json 1 KB
Wersje
W bazie nie ma innych skilli o nazwie qa-property-based-tests.
Migawka bazy z 28.10.2026 · wersja paczki 47009f22716b (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100property-based-testing
Pisze testy oparte na własnościach z fast-check (TS/JS) i Hypothesis (Python): generowanie danych testowych, szukanie przypadków brzegowych i testy w stylu QuickCheck. - 95property-based-testing
Pomaga pisać testy oparte na właściwościach z fast-check (TypeScript i JavaScript) oraz Hypothesis (Python): automatyczne generowanie przypadków i wyszukiwanie przypadków brzegowych. - 100proptest-testing
Pisze testy oparte na właściwościach w Rust z proptest: makro proptest, strategie, kompozycję wartości oraz zawężanie i zapis nieudanych przypadków. - 90hegel
Pisze testy oparte na właściwościach w Ruście, Go, C++, TypeScript, Javie i OCaml, sprawdzające niezmienniki na wielu danych. - 95bitcoin-testing-property-based
Stosuje testy właściwości (proptest, quickcheck, hypothesis) do parserów Bitcoin: serializacja transakcji, round-trip deskryptorów i spełnialność miniscriptu. - 100pbt-strategy
Pomaga pisać testy oparte na własnościach w Pythonie z Hypothesis: szuka niezmienników, pisze strategie @given i testuje systemy stanowe.