Return to search

Utilizing Input Simulation for Video Game Test Automation : A Case Study

In typical software projects, it is common that half of the development time and cost is spent on testing the software. Software Test Automation is an area that has been rapidly expanding in recent years because of its capacity to test features rapidly and efficiently, but in the Video Game industry, this concept is still in its infancy and common practices are still being developed. Having the Automated Tests be as close as possible to the user's experience is desirable to ensure a resilient and bug-free interactive experience. Having the ability to properly automate a test in such a way could potentially save manual Quality Assurance (QA) analysts and developers a lot of time in finding and reporting bugs early on, which in turn can help companies save both time and resources. This thesis explores the use of Input Simulation, e.g., simulating keyboard and mouse inputs, in the context of Video Game Test Automation. For the design and implementation of the Input Simulation framework, Agile Scrum and Human Centered Design Methodologies were followed. Exploratory interviews were conducted with 2 test automation engineers at Fatshark, desk research was used to explore existing tools and their benefits, and Proof of Concepts (POC) were created with tools selected from the Desk Research on two of the company’s games, Vermintide 2 and Darktide. From this, a new framework named TestifyInput, best fitting the needs of the company, was created and implemented as a part of Fatshark’s in-house test automation framework called Testify, on both the Engine and Gameplay side, written in C++ and Lua respectively. TestifyInput was then evaluated through an Automated Test that was implemented to test weapon interactions in the game, a User Observation with 5 QA testers completing 2 tasks, and a Questionnaire sent out to 7 QA testers. By using metrics such as defect detection, speed, and limitations, TestifyInput was evaluated in the existing Test Automation context and against its human counterparts. The evaluation results showed that Input Simulation allowed for better test coverage and allowed to test close to the actual User Experience. TestifyInput itself remains relatively easy to implement and to use, and the test case written with it remained stable, not needing any modification despite changing gameplay code. However, to fully compare the capabilities of a traditional test case with one employing Input Simulation, further research is needed. / I typiska programvaruprojekt är det vanligt att hälften av utvecklingstiden och kostnaden går åt till att testa programvaran. Automatisering av programvarutestning är ett område som har expanderat snabbt under de senaste åren på grund av dess förmåga att testa funktioner snabbt och effektivt, men inom spelindustrin är detta koncept fortfarande i sin linda och gemensamma metoder håller fortfarande på att utvecklas. Det är önskvärt att de automatiserade testerna ligger så nära användarens upplevelse som möjligt för att säkerställa en motståndskraftig och felfri interaktiv upplevelse. Att ha förmågan att korrekt automatisera ett test på ett sådant sätt kan potentiellt spara manuell kvalitetssäkring (QA) analytiker och utvecklare mycket tid när det gäller att hitta och rapportera buggar i ett tidigt skede, vilket i sin tur kan hjälpa företag att spara både tid och resurser. I den här avhandlingen undersöks användningen av inmatningssimulering, t.ex. simulering av tangentbords- och musinmatningar, i samband med automatisering av test av videospel. För utformning och genomförande av ramverket för inmatningssimulering följdes metoderna Agile Scrum och Human Centered Design. Utforskande intervjuer genomfördes med två testutomatiseringsingenjörer på Fatshark, skrivbordsforskning användes för att utforska befintliga verktyg och deras fördelar, och Proof of Concepts (POC) skapades med verktyg som valts ut från skrivbordsforskningen på två av företagets spel, Vermintide 2 och Darktide. Utifrån detta skapades ett nytt ramverk vid namn TestifyInput, som bäst passade företagets behov, och implementerades som en del av Fatsharks interna ramverk för testautomatisering vid namn Testify, både på motor- och spelsidan, skrivet respektivt i C++ och Lua. TestifyInput utvärderades sedan genom ett automatiserat test som implementerades för att testa vapeninteraktioner i spelet, en användarobservation med 5 QA-testare som utförde 2 uppgifter och ett frågeformulär som skickades ut till 7 QA-testare. Med hjälp av mätvärden som defektdetektering, hastighet och begränsningar utvärderades TestifyInput i det befintliga testutomatiseringssammanhanget och mot sina mänskliga motsvarigheter. Utvärderingsresultaten visade att inmatningssimulering gav bättre testtäckning och gjorde det möjligt att testa nära den faktiska användarupplevelsen. TestifyInput i sig är relativt lätt att implementera och använda, och det testfall som skrevs med det förblev stabilt och behövde inte ändras trots att spelkoden ändrades. För att fullt ut kunna jämföra kapaciteten hos ett traditionellt testfall med ett testfall som använder sig av input-simulering krävs dock ytterligare forskning.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-321473
Date January 2022
CreatorsJerlström, Auguste
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS)
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2022:716

Page generated in 0.0022 seconds