Toolverse
Wszystkie skille

reproduce-reduce-regress

autor: facet-rs

Systematyczne debugowanie: reprodukuj błędy, minimalizuj przypadki testowe, dodawaj testy regresji

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Testowanie

O skillu

Umiejętność Claude'a, która prowadzi Cię przez sprawdzony proces debugowania. Zamiast zgadywać, co powoduje błąd, nauczysz się go odtworzyć na rzeczywistych danych, zredukować do najmniejszego możliwego przykładu, a następnie zabezpieczyć kodem testów regresji. Skill pokazuje, jak tworzyć wiele wariantów testów, używać wyszukiwania binarnego do minimalizacji danych wejściowych i dokumentować zarówno przypadki przechodzące, jak i nieprzechodzące. Dzięki temu błędy nigdy nie powrócą.

Jak używać

  1. Zainstaluj skill w swoim projekcie, kopiując katalog reproduce-reduce-regress do folderu .claude/skills w repozytorium.

  2. Gdy napotkasz błąd, zacznij od kroku Reproduce: skopiuj dokładne dane wejściowe, które go wyzwalają, nie upraszczając ich. Utwórz test, który zawiera rzeczywiste typy i struktury z kodu, w którym błąd się pojawia. Uruchom test i potwierdź, że zwraca ten sam komunikat błędu co w produkcji.

  3. Przejdź do kroku Reduce: zamiast komentować kod, utwórz wiele wariantów testów z opisowymi nazwami (na przykład test_minimal_one_field, test_with_queries). Używając wyszukiwania binarnego, usuwaj połowę danych wejściowych na raz i sprawdzaj, czy błąd nadal się pojawia. Kontynuuj aż do znalezienia najmniejszego zestawu danych, który go wyzwala.

  4. Znajdź również minimalny przypadek przechodzący, który jest jak najbardziej zbliżony do przypadku nieprzechodzącego. Różnica między nimi wskaże przyczynę błędu.

  5. W kroku Regress zachowaj wszystkie warianty testów, zarówno te, które się nie powiodą, jak i te, które przejdą. Po naprawieniu błędu testy nieprzechodzące stają się testami regresji, a testy przechodzące dokumentują oczekiwane zachowanie. Nazwij je według numeru problemu: test_issue_1356_*.

  6. Unikaj antypatternów: nie komentuj kodu w celu testowania różnych scenariuszy, nie modyfikuj jeden test wielokrotnie, nie usuwaj wariantów testów po znalezieniu błędu i nie teoryzuj o przyczynach przed odtworzeniem problemu.

Podobne skille