Diba Vosta

Evaluering av t-wise Testning av REST APIer

Sammanfattning

En kombinatorisk explosion kan uppstå när all möjliga kombinationer av inputparametrar av ett system testas. Antal testfall som behövs för att täcka alla kombinationer av inputparametrar växer exponentiellt när antalet parametrar och dess möjliga värden ökar. För att undvika en kombinatorisk explosion används kombinatorisk interaktionstestning vilket är en typ av black box testning. Syftet med kombinatorisk interaktionstestning är att hitta de fel som uppstår på grund av interaktioner mellan parametrar. Kombinatorisk interaktionstestning har ett flertal så kallade kombinationsstrategier och den kombinationsstrategi som denna rapport använder är t-wise testning. Kravet med t-wise testning är att skapa åtminstone ett testfall för varje kombination av t parametervärden där t är styrkan mätt i antalet parametrar som interaktioner sinsemellan testas. Denna rapport evaluerar effekterna av t-wise testning som en testningsmetod för REST APIer.

Uppsatsen jämför hur väl 1-wise, 2-wise och 3-wise interaktionstestning upptäcker injicerade fel i källkoden av ett REST API. Utöver det undersöks även hur effektiva testsekvenserna är med hänsyn till exekveringstiden. Dessa aspekter undersöktes med hjälp av tre API slutpunkter där testsekvenser för 1-wise, 2-wise och 3-wise skapades direkt utifrån deras OpenAPI specifikationer. Testsekvenskerna som skapades använde gränsvärdeanalys och ekvivalensklasspartitionering för att generera parametervärden. För att kunna besvara frågorna i uppsatsen användes mutationstestning för att injicera fel i källkoden. I det här fallet utvecklades mutanterna specifikt för studien eftersom APIernas inputvalidering bestod av valideringsregler vilka inte har fastställda mutanter. Resultaten av studien visade att både 1-wise, 2-wise och 3-wise testning av REST APIer kunder identifiera samma injicerade fel. Därutöver förlängs exekveringstiden av en testsekvens markant när styrkan av t-wise testning ökar. Däremot är dessa resultat begränsade till just detta arbete och kan inte antas stämma för alla fall at t-wise testning av REST APIer eftersom endast tre slutpunkter utvärderades. För att stärka slutsatsen av detta arbete föreslås framtida arbeten som kan göras.