Najlepszy sposób na przetestowanie prostych przypadków w grach

9

Podczas projektowania i testowania nowej gry ludzie często wypróbowujący funkcjonalność przyzwyczajają się do różnych rzeczy i nie wypróbowują już „głupich sposobów”. Więc jeśli rozwój coś zepsuje, może to być funkcja, którą tylko nowy użytkownik będzie się starał. Jakie są najlepsze sposoby, aby upewnić się, że gra jest testowana w „głupich przypadkach”, kiedy zostanie ostatecznie wydana lub po ważnej aktualizacji? Metodologia, pomoc oprogramowania, może nawet strony, na których ludzie będą grać dla ciebie, i tak dalej.

eruciform
źródło

Odpowiedzi:

9

Kilka rzeczy, które powiedziałbym, są ważne:

Zachęcaj do testowania jednostek programisty

Zapewni to, że niektóre głupie błędy, jeśli jest dla nich test jednostkowy, nie powtórzą się, ponieważ test jednostkowy zakończy się niepowodzeniem, jeśli to zrobią. Wymaga to zmiany metodologii programowania, ale moim zdaniem jest całkowicie tego warte.

Zautomatyzuj cokolwiek możesz

Oprócz testów jednostkowych utwórz zestaw automatycznych testów funkcji i testów akceptacyjnych, które są uruchamiane na każdej kompilacji, aby upewnić się, że niektóre kompilacje są dobre. Jeśli masz kontrolę skryptów i gra jest ogólnie spójna, możesz automatycznie testować wiele błędów.

Utwórz plan testów wielopoziomowych

Upewnij się, że twoi testerzy mają plan testów, który testuje najważniejsze błędy. Powinno to być wielopoziomowe:

  • Test dymu: Testuje, czy gra nie ulega awarii w najczęstszych przypadkach.
  • Regularny test: Testuje bardziej rzadkie przypadki.
  • Test namaczania: Uruchom tak głęboko, jak to możliwe, usuwając jak najwięcej typowych błędów. Sprawdź także, czy gra może działać przez bardzo długi czas (dni) bez awarii.

Utwórz ten plan testów i postępuj zgodnie z nim przy każdej kompilacji.

Jeff
źródło
11

W przypadku przypadków testowych można zastosować rodzaj pokrycia kodu przy użyciu prostych flag, które są wyzwalane po wykonaniu bloku kodu w grze. Wyświetlanie na ekranie, które flagi zostały wyzwolone, a które nietknięte, pozwala testerom dowiedzieć się, które przypadki zostały objęte, a które nie.

Choć jest to proste, nadal działa, o ile flagi mają sensowne nazwy, dzięki czemu testerzy mogą ustalić, co należy zrobić.

Technikę tę przypisuje Matthew Jack, który wdrożył ją w Crysis.

David Young
źródło
3
ciekawa koncepcja, +1
falstro,
Można to faktycznie zautomatyzować. „Uruchom grę z -debugFlags, grep wyjście i upewnij się, że trafiliśmy xliczbę flag.” +1
ashes999
3

Kilka dobrych odpowiedzi tutaj po stronie programowania. Dodam taki, który jest bardziej zorientowany na projekt.

Poproś projektantów systemu o napisanie planów testowania przypadków dla testerów

Jeśli wiedzą, co robią, osoba odpowiedzialna za zaprojektowanie systemu lub napisanie skryptu sekwencji w grze najprawdopodobniej zna najważniejsze przypadki tego systemu i jego awarię. Powinny także mieć pojęcie o tym, w jaki sposób system współdziała z innymi. Nakłonienie ich do napisania planu testów lub przedyskutowania z testerami, gdzie mogą wystąpić problemy, mogą zaoszczędzić każdemu czas.

wkerslake
źródło
1

Powinieneś zbadać tak zwane testowanie małp. Może wychwycić wiele błędów tego typu:

https://secure.wikimedia.org/wikipedia/en/wiki/Monkey_test

Musisz także zorganizować testy doświadczeń użytkowników z „testerami Kleenex”, testerami, które widzą twoją grę po raz pierwszy i których już nigdy nie użyjesz. Jest to trochę kosztowne i skomplikowane w organizacji, ale warte wysiłku. Jeśli to zrobisz, filmuj każdy test za pomocą 3 kamer: jednej na ekranie, jednej na kontrolkach i jednej na twarzy testera, aby wykryć frustrację.

Stéphane Bura
źródło
1

Świetne pytanie, każda odpowiedź w tym wątku jest doskonałą odpowiedzią. Jedną rzecz do dodania:

Z mojego doświadczenia (30 lat rozwoju oprogramowania): aplikacje i gry są bardziej niezawodne, jeśli przynajmniej jeden członek grupy testowej jest wykwalifikowanym testerem goryli , mistrzowskim w testowaniu ad hoc, nadużywaniu aplikacji i celowym używaniu gier w niewłaściwy sposób, aby znaleźć błędy rodzaju opisanego na oryginalnym plakacie. Testerzy goryli mają niezwykłe umiejętności - gdy znajdziesz dobrą, trzymaj ją w swoim zespole.

Przykład skutecznego testowania goryla znajduje się na stronie: www.youtube.com/watch?v=8C-e96m4730;)

Podsumowując odpowiedzi w tym wątku: skuteczne strategie jakości oprogramowania są wieloaspektowe , łącząc wiele podejść, aby osiągnąć wysoki poziom zaufania do jakości funkcjonalnej i niezawodności Twojej gry.

cheeeseburger
źródło
0

Ciekawa sztuczka, o której słyszałem od znajomego, aby przetestować grafikę; podczas znanego dobrego przeglądu statystyk wydajności rekordu poziomu z GPU w regularnych odstępach czasu (na przykład polis na ekranie). Następnie możesz odtworzyć tę trasę, a jeśli liczby zmienią się poza określoną tolerancją, może to oznaczać, że coś nie wyświetla się poprawnie.

koderanger
źródło
0

Jedna prosta, łatwa rzecz, która bardzo pomaga, szczególnie w testach warunków skrajnych i testach sieciowych. Pozwól, aby twoja AI mogła grać przeciwko innym AI. Jeśli możesz zostawić swoją grę samą w sobie lub małą grupę AI przez sieć na weekend, możesz się wiele nauczyć.

Oczywiście zaloguj wszystko.

Kimau
źródło