Zyski:
- Umiejętność zrozumienia warstw funkcjonalnych, regresyjnych, przypadków brzegowych i testów zderzeniowych oraz tworzenia scenariuszy testowych i list przypadków brzegowych przy użyciu sztucznej inteligencji
- Możliwość przyspieszenia debugowania poprzez pisanie automatycznego kodu testowego ze sztuczną inteligencją i wyodrębnianie wzorców w analizie logów i awarii
- Będąc w stanie zrozumieć, że diagnoza błędów sztucznej inteligencji nie jest dowodem, ale hipotezą, przyczynę należy udowodnić za pomocą dzienników i reprodukcji, a także znaczenie powtarzalności raportu o błędach.
Kiedy gra zostanie wydana, gracze grają w nią w sposób, jakiego twórca sobie nie wyobrażał: utykając w ścianach, wykorzystując ekwipunek, docierając do niemożliwych miejsc, powodując awarie. Zapewnienie jakości (QA – zapewnienie jakości); Jest to proces systematycznego testowania gry przed jej wydaniem oraz znajdowania i naprawiania błędów (błędów), awarii, niestabilności i złych doświadczeń. Jest to jedno z najbardziej pracochłonnych, ale kluczowych ogniw w produkcji gier. Sztuczna inteligencja przyspiesza kontrolę jakości w wielu punktach: generowaniu przypadków testowych, analizie raportów o błędach, przeglądaniu dzienników, automatycznym pisaniu kodu testowego, debugowaniu i udoskonalaniu etapów produkcji. Ale sztuczna inteligencja nie zastępuje intuicji testera i oceny wrażenia z gry.
W tej części dowiesz się, jak używać sztucznej inteligencji w kontroli jakości i debugowaniu; Poznasz projektowanie scenariuszy testowych, analizę logów, automatyczne pisanie testów i dyscyplinę raportowania błędów.
Warstwy QA i miejsce AI
Kontrola jakości jest wielowarstwowa. Testy funkcjonalne: czy funkcja działa (czy otwierają się drzwi, czy ładuje się zapis). Testowanie regresyjne: czy nowa zmiana zepsuła to, co działało wcześniej? Testowanie przypadków brzegowych: nietypowe dane wejściowe (reset zapasów, dwa klucze na raz, wartości graniczne). Testy wydajności/crash: czy gra jest stabilna. Test rozgrywki/doświadczenia: zabawny, intuicyjny. Sztuczna inteligencja jest silna w pierwszych czterech obszarach: generowaniu scenariuszy, wyświetlaniu listy przypadków brzegowych, pisaniu kodu testowego i analizowaniu logów. Ostatnie doświadczenie – należy do człowieka.
Przepływ kontroli jakości krok po kroku:
- Generuj przypadki testowe (lista przypadków funkcjonalnych i brzegowych z wykorzystaniem AI).
- Napisz testy automatyczne (kod do kontroli powtarzalnych).
- Uruchom i zbierz (loguj błędy, logi, awarie).
- Analizuj (przeanalizuj logi i wzorce błędów za pomocą sztucznej inteligencji).
- Zgłaszaj i weryfikuj (jasny, powtarzalny raport o błędach; poprawka testowa).
Wskazówka: trudno znaleźć przypadki Edge, ponieważ projektant gra w swoją grę „właściwie”. Zapytaj sztuczną inteligencję „czego spróbowałby gracz, gdyby chciał złamać ten system?” Lista exploitów i przypadków brzegowych.
Testowanie automatyczne: powtórzenie zostaw maszynie
Ręczne testowanie tych samych rzeczy w każdej wersji jest męczące i podatne na błędy. Testowanie automatyczne umieszcza w kodzie następujące elementy sprawdzające: czy funkcja zwraca poprawny wynik przy każdym wywołaniu, czy system znajduje się w oczekiwanym stanie. Unity i Unreal oferują frameworki testowe; AI szybko pisze te testy. Jest to szczególnie cenne w przypadku regresji: jeśli zmiana psuje coś, co wcześniej działało, test staje się czerwony. Przejrzyj testy tworzone przez sztuczną inteligencję, upewniając się, że sprawdzają, co jest naprawdę znaczące – pusty test jest gorszy niż brak testu.
Uwaga: podczas debugowania sztuczna inteligencja czasami tworzy zmyślone wyjaśnienie jako „prawdopodobną przyczynę” (halucynacje). Nie akceptuj przyczyny błędu tylko dlatego, że sztuczna inteligencja ci tak powiedziała; Udowodnij przyczynę, rejestrując, odtwarzając i testując. Błędna diagnoza opóźnia znalezienie właściwej.
Reprodukcja: serce debugowania
Pierwszym wymogiem naprawienia błędu jest jego niezawodne odtworzenie. Nie można naprawić błędu opisanego jako „czasami się zdarza”, ponieważ nie można sprawdzić, czy poprawka zadziałała. Zatem najcenniejszą pracą związaną z debugowaniem jest zawężenie dokładnych warunków, w jakich pojawia się błąd (które kroki, jaka sytuacja, w jakim czasie). Sztuczna inteligencja pomaga zawęzić zakres: możesz podać objawy i etapy częściowej reprodukcji oraz powiedzieć „zaproponuj warunki i strategię zawężania, które mogą wywołać to zachowanie”. Ale tak naprawdę zawężasz grę, uruchamiając grę; AI generuje hipotezy, ty je eliminujesz.
Szczególnie błędy związane z synchronizacją (wyścig) i stanem pamięci są podstępne; występują one tylko w określonej sekwencji lub obciążeniu. W przypadku takich błędów niezwykle istotne jest dodanie do dziennika sygnatury czasowej i informacji o stanie; Sztuczna inteligencja może przeanalizować ten bogaty dziennik i zobaczyć wzór („błąd zawsze pojawia się, gdy te dwa zdarzenia mają miejsce niedawno”). Pamiętaj o złotej zasadzie debugowania: najpierw zrozum, potem napraw. Korekta bez zrozumienia ukrywa błąd, ale go nie rozwiązuje i często tworzy nowy błąd gdzie indziej.
trzy mini etui
Przypadek 1 — Polowanie na przypadki skrajne. W grze RPG zespół przetestował system ekwipunku w „normalnej” rozgrywce i uznał, że jest solidny. Kazali sztucznej inteligencji powiedzieć „spróbuj złamać ten ekwipunek” i wygenerowali 30 scenariuszy skrajnych przypadków; 4 z nich były prawdziwymi błędami (podział artykułów na wagę 0, jednoczesne jednorazowe użycie). Poprawione przed publikacją.
Przypadek 2 — analiza dziennika rozwiązała awarię. Gra zawieszała się losowo; dzienniki awarii liczyły setki wierszy. Kiedy sztuczna inteligencja otrzymała logi i poprosiła o wzór, okazało się, że awaria zawsze występowała przy przejściu określonej sceny i przy małej ilości pamięci. Dzięki tej wskazówce programista znalazł wyciek pamięci; Liczba wypadków spadła do zera.
Przypadek 3 — Powrót po błędnej diagnozie. Programista zaufał wyjaśnieniom sztucznej inteligencji, że „ten błąd jest spowodowany tą funkcją” i majstrował przy nim przez pół dnia; nie wyszło żadne rezultaty. Kiedy ponownie wyjaśnił i zapisał etapy produkcji, błąd znajdował się w zupełnie innym miejscu. Lekcja: Diagnostyka sztucznej inteligencji to hipotezy, a nie dowody.
Cztery szablony do kopiowania
1) Generowanie przypadków brzegowych/scenariuszy eksploatacji:
Twoja rola: złośliwy tester kontroli jakości. Opisuję następujący system: [system, zasady]. Zadanie: wypisz 20 scenariuszy Edge, które będą próbowały złamać, wykorzystać lub wprowadzić system w nieoczekiwany stan. Dla każdego: czego spróbować, oczekiwany wynik, możliwy błąd.
2) Automatyczne pisanie testów:
Silnik: [Unity 2022.3 / Unreal 5.3]. Struktura testów: [określ]. Napisz automatyczne testy dla następującej funkcji/systemu: [opis/kod]. Uwzględnij przypadek normalny, przypadek graniczny i błędne dane wejściowe. Upewnij się, że każdy test weryfikuje coś naprawdę znaczącego; Pisanie pustych/bezsensownych testów.
3) Analiza dziennika/awarii:
Poniżej znajdują się dzienniki awarii/błędów gry: [log]. Zadanie: zaznacz powtarzające się wzorce, typowe warunki (scena, pamięć, czas) i możliwe przyczyny źródłowe. Przedstaw każdą przyczynę jako „hipotezę do udowodnienia”; mówić wyraźnie. Powiedz mi też, jak to sprawdzić.
4) Wyjaśnienie raportu o błędzie:
Spraw, aby następujący niejasny raport o błędach był jasny i powtarzalny: [raport surowy]. Wynik: tytuł, reprodukcja krok po kroku, oczekiwany wynik, rzeczywisty wynik, częstotliwość, środowisko. Jeśli brakuje informacji, wypisz, jakie informacje są potrzebne.
Słaba zachęta/silna zachęta
Słaba zachęta:
W mojej grze jest błąd, napraw go.
Bez kontekstu, bez dziennika, bez reprodukcji; Sztuczna inteligencja jest przewidywalna, a ryzyko halucynacji jest wysokie.
Potężny monit:
W mojej grze Unity 2022.3 występuje błąd: ekwipunek czasami podwaja się, gdy gracz wykonuje szybkie ładowanie zapisu. Powielanie: [kroki]. Powiązany kod: [wklej]. Dziennik: [wklej]. Zadanie: wypisz możliwe przyczyny źródłowe jako hipotezy do udowodnienia, podaj sposób weryfikacji i możliwe rozwiązanie każdej z nich. Wymyśl nieistniejącą przyczynę; Jeśli nie jesteś pewien, daj mi znać.
Reprodukcja, kod, log i żądanie „przedstawienia hipotezy” sprawiają, że diagnoza jest wiarygodna.
Tabela warstw kontroli jakości
warstwa
Co testuje?
Wkład AI
udział ludzki
funkcjonalny
Czy ta funkcja działa?
Skrypt, kod testowy
Decyzja o przyjęciu
regresja
Czy stara rzecz jest zepsuta?
test automatyczny
Decyzja zakresowa
skrajny przypadek
nietypowe wejście
Produkcja scenariusza
priorytet
Awaria/wydajność
determinacja
Analiza dziennika
Potwierdzenie pierwotnej przyczyny
Doświadczenie
rozrywka, intuicja
ograniczone
całkowicie ludzki
Typowe błędy
- Właśnie testuję „normalną” rozgrywkę. Obudowy Edge eksplodują po wydaniu.
- Mylenie diagnozy AI z dowodem. Dlaczego zostało to udowodnione w logach i testach.
- Pisanie pustych testów automatycznych. Bezsensowne testowanie daje iluzję pewności.
- Niejasny raport o błędzie. Błędu niepowtarzalnego nie da się naprawić.
- Pomijam testy regresyjne. Każda korekta może powodować nowe błędy.
Podsumowując
Kontrola jakości to dyscyplina, która sprawia, że gra jest gotowa dla gracza. sztuczna inteligencja; generuje scenariusze przypadków brzegowych, pisze automatyczne testy, analizuje logi i wyjaśnia raporty o błędach. Ale ich diagnozy są hipotezami, ocena doświadczenia jest rzeczą ludzką, a każda korekta wymaga ponownego sprawdzenia. Powtórz odruch „kto może to złamać i jak” za pomocą sztucznej inteligencji; Zbierasz dowody.
Zadanie aplikacji
Wybierz system ze swojej gry. Wygeneruj 20 scenariuszy za pomocą szablonu „generowanie scenariuszy brzegowych/scenariuszy wykorzystania” i faktycznie przetestuj 5 najbardziej ryzykownych. Utwórz powtarzalny raport dotyczący znalezionego błędu, korzystając z szablonu „Udoskonalanie raportu o błędach”.
lista kontrolna
- [ ] Stworzyłem przypadek Edge z pytaniem „Kto może to złamać i jak?”
- [ ] Napisał i recenzował automatyczne testy dla kontroli cyklicznych.
- [ ] Potraktowałem diagnozę AI jako hipotezę i udowodniłem ją za pomocą logu/testu.
- [ ] Zgłaszałem błędy w powtarzalny sposób.
- [ ] Ponownie przetestowałem każdą poprawkę pod kątem regresji.