Przejdź do treści
Biblioteka skilli
Programowanie · Testowanie

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.

Repozytorium
guild ↗
Licencja
MIT
Ostatnia zmiana repozytorium
26.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
2
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 26.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

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

write property-based tests for Xadd Hypothesis tests to Xfast-check properties for Xauthor proptest cases for Xwhat invariants should we test for Xadd fuzz-style properties for X
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

  1. What you do
  2. Output shape
  3. Anti-patterns
  4. Handoff
Sekcje z nagłówków SKILL.md, w oryginale · 39 linii, 312 słów
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.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.