# Testowanie Gier - Zestaw zadań nr 4 ##### Zajęcia 13.04.2023r. grupa czwartkowa ##### Piotr Urbański, Adam Jarząbek ## Wybrana przez nas gra: Swords and Sandals II ## Dodanie nowej funkcjonalności: Nowa funkcjonalność miałaby polegać na możliwości ulepszania części swojego ekwipunku. Jest to mechanizm znany z wielu innych gier; po udaniu się do maga odpowiedzialnego za ulepszenie gracz wybiera część ekwipunku którą chce ulepszyć, opłatę za ulepszenie dla maga, oraz jakiś specjalny przedmiot, który jest możliwy do zdobycia podczas gry. W naszym przypadku opłatą dla maga będzie waluta zdobywana w grze, natomiast "specjalnym przedmiotem", będą odłamki metalu, które gracz będzie zbierał w losowej ilości po każdym pojedynku stoczonym na arenie. Opłata dla maga oraz ilość odłamków będzie rosła wraz z kolejnymi ulepszeniami danej części. Losowa liczba odłamków będzie rosła wraz z poziomiem gracza, oraz będzie premiowana względem "win streak'a" na arenie. **Taka mechanika ma na celu:** - dodanie kolejnej funkcjonalności dla rozbudowania rozgrywki - wprowadzenie znanego i lubianego z innych gier elementu - możliwości wyboru; gracz będzie musiał podejmować decyzję, czy na danym etapie rozgrywki warto nadal ulepszać stary sprzęt, czy jednak lepiej będzie kupić nowy, lepszy, jednak bez ulepszeń. ## Opracowanie procesu testowego: ### Planowanie i nadzór nad testami Zakładamy wariant, w którym użytkownicy gry wnosili wiele uwag, że chcieliby aby do gry została funkcjonalność w postaci mechaniki pozwalającej na ulepszanie przedmiotów. **Historyjka użytkownika** **Jako** gracz chcący rozbudowy gry **chcę** mieć możliwość utworzenia ulepszania przedmiotów, w szczególności - mechaniki na wzór tych z innych gier, - możliwość zbierania surowca, za który będę mógł ulepszać przedmioty, - rozbudowy mechaniki przedmiotów, **abym** po zebraniu danego surowca mógł - mieć tą samą broń, lecz z lepszymi parametrami, - podejmować decyzję między zakupieniem nowego, a ulepszeniem obecnego przedmiotu. Korzystając z historyjek użytkownika testowana jest grywalność. Testerzy mają za zadanie analizować i poprawiać historyjki użytkownika. **Testy zostaną przeprowadzone w następujących celach:** - Dokonanie oceny produktów testowania: wymagania, historyjki użytkownika, projekt i kod - Sprawdzenie czy gra działa zgodnie z oczekiwaniami użytkowników - Zapobiegnięce pojawiającym się błędom - Sprawdzenie czy zostały spełnione wszystkie postawione wymagania aplikacji (feedback graczy). **Zostaną przeprowadzone następujące testy:** * Systemowe - są to te testy które, przeprowadzamy gdy integrujemy ze sobą elementy systemu. * Akceptacyjne - testy wykonywane po stronie klienta - testowany obszar aplikacji musi już w pełni działać. Ich celem nie jest znajdowanie błędów, lecz upewnienie się, że aplikacja spełnia oczekiwania klienta. (test akceptacyjny w tym wypadku będzie feedback'iem ze strony graczy, na przykład w formie ankiety, która będzie dobrowolna do wypełnienia, w nagrodę gracz otrzymie bonus w grze) ### Analiza testów Głównym celem analizy testów jest analiza podstawy testów, czyli w naszym przypadku analiza historyjek użytkownika, w taki sposób, aby stały się one podstawą do dalszego działania. Na podstawie hisotryjek jesteśmy w stanie określić, czy rozgrywka jest odpowiednio zaimplementowana (feedback graczy). Będzie również trzeba określić, czy i w jaki sposób przeprowadzić testowanie na podstawie podstawy testowania (historyjek użytkowników). Następnie stworzenie warunków oraz przypadków testowych, a w dalszej kolejności ustalić, jakie dane będą potrzebne do przeprowadzenia testów. W przypadku takiego rozszerzenia gry kluczowymi elementami do przetestowania wydają się być: - sprawdzenie, czy dodana mechanika działa poprawnie, nie ma żadnych błędów, czy dodanego sklepu nie da się "zepsuć" - sprawdzenie integralności z resztą gry, w szczególności, czy ulepszone przedmioty faktycznie w innych częściach świata gry, zwłaszcza na arenie zachowują się poprawnie ### Projektowanie testów Na tym etapie testowania gier powinniśmy się upewnić, że wszystkie warunki testowe oraz podstawy testów zostały pokryte. Dodatkowo powinniśmy określić zasady sprawdzania kodu oraz upewnić się, że wymagania niefunkcjonalne również zostaną przez nas sprawdzone w procesie testowania. ### Implementacja testów Zaimplementowane testy powinny skupić się na sprawdzeniu integracji istniejącej części gry wraz z nową mechaniką, czy nowy pole wyświetlające "odłamki metalu" wyświetla się we właściwym miejscu, nie glitchuje się oraz czy nie przysłania żadnych istotnych elementów scen z innych części gry, czy po zdobyciu odłamków za np. walkę na arenie ich ilość poprawnie się inkrementuje. Z drugiej strony trzeba przetestować samo nowe okno, przede wszystkim tak jak wyżej czy dodany wskaźnik waluty nie przeszkadza w odbiorze reszty okna, niczego nie przysłania. Czy algorytm wyliczający cenę za dany upgrade przedmiotu działa poprawnie, czy wszystkie przyciskie działają, czy po ulepszeniu przedmiotu saldo gracza w postaci odłamków poprawnie się zmniejsza, czy cena kolejnego upgrade'u oblicza się poprawnie, czy jeśli gracz ma mniej odłamków niż wymaga tego dany upgrade opcja ulepszenia jest zdezaktywowana itd. Po testach należy przygotować: Sumaryczny raport z testów, informację, w przypadku wykrycia błędów poprawić kod oraz ponownie przetestować, ew. wprowadzić automatyzację do testów, tak aby ten proces w przyszłości dało się zoptymalizować i usprawnić. ## Wymagania funkcjonalne modyfikacji do gry *Swords and Sandals II* * W menu głównym powinien pojawić się nowy interaktywny sklep, po którego kliknięciu użytkownik zostanie przeniesiony do sceny, w której możliwe jest ulepszenie przedmiotów; * Przy pierwszym wejściu do sklepu powinien zostać zaprezentowany krótki samouczek; * Gracz za "odłamki metalu" może zakupić ulepszenie do danego przedmiotu, o ile ma wystarczająco dużo waluty * Cena kolejnych ulepszeń powinna rosnąć wraz z rozwojem postaci przez gracza. ## Wymagania niefunkcjonalne gry *Swords and Sandals II* * Przejście do nowego sklepu powinno odbywać się bez ekranów ładowania. * Nowa funkcjonalność nie powinna pogarszać wydajności gry. * Projekt nowego okna powinien być spójny z resztą gry oraz intuicyjny. ## Przypadki testowe dla wymagań niefunkcjonalnych 1. Przejście do nowego sklepu powinno odbywać się bez ekranów ładowania. * **Cel:** optymalizacja gry w taki sposób, aby wybór nowego okna nie wymagał ekranu ładowania * **Warunki początkowe:** Gracz znajduje się w menu głównym gry (widok miasta) * **Kroki:** * Gracz klika na sklep "Ulepszenie broni"/"Mag" * **Rezultaty:** Jeżeli sklep został wczytana natychmiastowo to znaczy, że gra jest dobrze zoptymalizowana. 2. Nowa funkcjonalność nie powinna pogarszać wydajności gry. * **Cel:** Poruszanie się po nowym sklepie powinno działać płynnie, nie ustępować od płynności rozgrywki w pozostałych częściach świata gry. * **Warunki początkowe:** Gracz znajduje się w sklepie "Ulepszenie broni". * **Kroki:** * Wybór poszczególnych przedmiotów, klikanie przycisków powinno działać natychmiastowo oraz się nie zawieszać * **Rezultaty:** * Jeżeli płynność rozgrywki nie ustępuje płynności z pozostałych części gry znaczy to, że nowo dodany sklep został zaimplementowany w sposób poprawny, bez niepotrzebnego wczytywania zbędnych informacji 3. Projekt nowego okna powinien być spójny z resztą gry oraz intuicyjny. * **Cel:** Sprawienie aby nowy sklep nawiązywał swoją stylistykę oraz GUI do pozostałych części gry. * **Warunki początkowe:** Gracz znajduje się w sklepie "Ulepszenie broni". * **Kroki:** * Gracz zaznajomiony z pozostałymi elementami gry nie powinien mieć problemów ze skorzystaniem z nowej funkcjonalności, powinna być dla nuego intuicyjna * **Rezultaty:** * Odczucia gracza związane z immersją pozostaną na niezmienionym poziomie względem poprzedniej wersji gry ## Przypadki testowe dla scenariuszy użycia **Odbycie samouczku obsługi nowego okna** * **Cel:** zaprezentowanie możliwości oraz funkcjonalności nowego sklepu * **Warunki początkowe:** Gracz znajduje się w menu głównym gry * **Kroki:** * Po pierwszym wejściu do menu na ekrania pojawia się informacja o sklepie z ulepszeniami oraz przycisk umożliwiający odbycie samoczuka pominięcie go * Na ekranie pojawia się strzałka z sugestią kliknięcia na nowy sklep * W sklepie pojawiają się kolejne dymki dialogowe opisujące poszczególne funkcjonalności wraz ze strzałkami, po kliknięciu których gracz widzi omówiony w dymku fragment rozgrywki * **Rezultaty:** Gracz zostaje zaznajomiony z nową mechaniką. **Sprawdzenie funkcjonalności nowego okna** - Wariant A - gracz próbuje dokonać ulepszenia, na które go stać * **Cel:** przetestowanie, czy upgrade działa poprawnie. * **Warunki początkowe:** Gracz znajduje się w menu głównym gry. * **Kroki:** * Gracz wchodzi do sklepu z ulepszeniami * Gracz klika przycisk "ulepsz przedmiot" * Gracz wybiera z ekwipunku przedmiot, który chce ulepszyć * Na ekranie zostaje wyświetlony koszt ulepszenia, informacja o tym o ile poprawią się dane statystyki przedmiotu oraz przyciski: Ulepsz/Anuluj * Gracz klika przycisk "Ulepsz", z jego konta zostaje odjęta adekwatna ilość metalowych odłamków, a przedmiot z ulepszonymi statystykami trafia do ekwipunku gracza * **Rezultaty:** * Gracz poprawnie ulepszył przedmiot. - Wariant B - gracz próbuje dokonać ulepszenia, na które go nie stać * **Cel:** przetestowanie, czy upgrade działa poprawnie. * **Warunki początkowe:** Gracz znajduje się w menu głównym gry. * **Kroki:** * Gracz wchodzi do sklepu z ulepszeniami * Gracz klika przycisk "ulepsz przedmiot" * Gracz wybiera z ekwipunku przedmiot, który chce ulepszyć * Na ekranie zostaje wyświetlony koszt ulepszenia, informacja o tym o ile poprawią się dane statystyki przedmiotu oraz przyciski: Ulepsz/Anuluj * Gracz klika przycisk "Ulepsz", na ekranie pojawia się stosowna informacja o braku wystarczających funduszy, stan konta oraz ekwipunku pozostaje bez zmian * **Rezultaty:** * Gracz nie ulepszył przedmiotu z racji na brak wystarczających środków.