Awesome Testing

Markdown document

Podsumowanie sesji Codex

Lekcja 20: Zadanie 4 - rozwiązanie

Historical artifacts may name disposable training credentials and environments. Do not reuse credentials, target course systems, or execute archived prompts without authorization.

Podsumowanie sesji Codex

Zakres sesji

Sesja pokazuje rozwiązanie zadania 4 rozpoczęte w folderze l15. Codex otrzymał długotrwały Goal obejmujący audyt braków, uzupełnienie testów e-commerce, aktualizację planu oraz pełną weryfikację. Praca była asynchroniczna: po uruchomieniu celu agent działał bez bieżącego prowadzenia, a użytkownik wrócił do gotowego wyniku po około dwudziestu minutach. Zweryfikowany stan rozwiązania został zachowany jako kolejny checkpoint w folderze l16, dzięki czemu l15 pozostaje punktem startowym zadania.

Prompt użyty w Codex

Pracuj w folderze l15 i odpowiadaj po angielsku. Uzupełnij brakujące pokrycie
produktów, koszyka i zamówień po stronie klienta oraz operacji adminowych.
Testy nie-adminowe mają działać w projekcie api, a adminowe w admin-api.
Nie przebudowuj planu ani architektury bez potrzeby; zaktualizuj istniejący
api-test-plan.md o faktyczny stan. Zastanów się, które niezależne prace można
zrównoleglić. Użyj Goal i pracuj przez implementację, testy, poprawki i review,
aż kryteria zadania zostaną spełnione albo zostanie opisany prawdziwy blocker.

Co sprawdził Codex przed implementacją?

Agent przeprowadził audyt istniejących testów i planu, aby znaleźć brakujące operacje zamiast duplikować już pokryte zachowania. Sprawdził podział na projekty api i admin-api, klientów HTTP, typy oraz fixture potrzebne do utworzenia własnych produktów, pozycji koszyka i zamówień.

Goal pozwolił wracać do kryteriów po kolejnych iteracjach. W trakcie pracy agent mógł delegować niezależne fragmenty do subagentów, ale finalna odpowiedzialność za integrację i pełny run pozostała w jednym miejscu.

Co zaimplementował Codex?

W rozwiązaniu powstało szerokie pokrycie produktów, koszyka i zamówień oraz brakujących operacji administracyjnych. Testy wykorzystują klientów HTTP zamiast składać requesty w każdym pliku i zachowują czytelny układ Given–When–Then.

Istotnym elementem są helpery danych. Przykładowy helper zamówienia przygotowuje potrzebny produkt i koszyk, tworzy zamówienie, zwraca dane wykorzystywane przez test, a po scenariuszu sprząta utworzone zasoby. Dzięki temu test biznesowy pozostaje krótki, a równoległe workery nie współdzielą modyfikowanego stanu.

Plan testów został uzupełniony o wykonane elementy i kolejne obszary, które można rozwijać niezależnie.

Jakie korekty zostały zlecone po implementacji?

Prompt rozwiązania doprecyzował, że testy klienta i admina mają pozostać w odpowiednich projektach, a istniejący plan ma zostać zaktualizowany zamiast zastąpiony. Agent miał również zachować obecną architekturę i rozważyć równoległość tylko dla obszarów z jawnymi granicami.

W samym nagraniu nie zlecono kolejnej rundy poprawek kodu. Następnym krokiem było ludzkie review rezultatu.

Co wyszło w review?

Review zwróciło uwagę na estetyczny podział odpowiedzialności: operacje HTTP są w klientach, setup i cleanup w helperach lub fixture, a asercje biznesowe w testach. Agent nie rozciągał każdego scenariusza w długą „pajęczynę” requestów.

Najważniejszym wnioskiem nie jest sama liczba wygenerowanych testów, lecz zmiana modelu pracy. Coraz więcej implementacji może odbywać się asynchronicznie, dlatego rośnie znaczenie szybkiego skanowania diffu, oceny ryzyka, czytania raportu i sprawdzania dowodów.

Wynik testów

W nagraniu agent zakończył Goal po około dwudziestu minutach i zgłosił szeroki zestaw nowych scenariuszy. Pokrycie obejmowało produkty, koszyk i zamówienia, a wynik został zweryfikowany przez uruchomienia wykonywane w trakcie Goal.

Po zachowaniu rozwiązania w l16 ponownie uruchomiono testy zakresowe oraz pełny suite. Test listy użytkowników przeszedł w izolacji (2/2), a cały checkpoint zakończył się wynikiem 135/135 testów w projektach api i admin-api. Kryterium ukończenia pozostaje ważniejsze niż sama liczba: testy zakresowe i pełny suite mają przechodzić również w lokalnym checkoutcie kursanta.

Finalny efekt sesji

Goal doprowadził większe zadanie od audytu do reviewowalnego rezultatu bez ciągłego sterowania każdą komendą. Projekt otrzymał szersze pokrycie e-commerce, izolowane dane i helpery cleanupu, a użytkownik mógł skupić się na ocenie jakości zamiast ręcznym tworzeniu każdego testu. Materiał startowy pozostał w l15, a gotowy, ponownie zweryfikowany rezultat znajduje się w l16.