Rouwayd Hanna

Testfall Beroendedetektering med hjälp av Syntaktisk Analys av Kod för Testoptimeringssyften

Sammanfattning

Det är inte möjligt att utveckla programvara av hög kvalitet för stora system utan en rigorös testningsprocess. Testning tenderar dock att vara kostsamt och tidskrävande, vilket är anledningen till varför forskning inom testoptimering har fått mycket uppmärksamhet. Testoptimering är ofta sedd som ett multikriteriebeslutstödproblem, där beroenden mellan testfall är ett av kriterierna. Att inte ta hänsyn till beroenden mellan testfall kan orsaka onödiga test exekveringsfel eftersom beroende testfall direkt påverkar exekveringsresultaten av varandra. Att känna till beroenden och likheter mellan testfall är gynnsamt i många aspekter av testoptimering, såsom testminimering och testprioritering.

Beroende informationen är vanligtvis härledd från krav- och designartefakter som inte är alltid tillgängliga i testfasen. En artefakt som är alltid tillgänglig under en testningsprocess är testkoden som exekverar testfallen. I denna avhandling föreslås, tillämpas och utvärderas en metod för automatiskt detektering av testfallsberoenden genom att analysera testkod inom ramen för en industriell fallstudie hos Ericsson AB i Sverige.

Den föreslagna metoden innefattar syntaktisk analys av testkod för att producera abstrakta syntaxträd som omvandlas till egenskapsvektorer och matas in i maskininlärningsmodeller för att klassificera de beroende testfallen i kluster. Två klusteralgoritmer HDBSCAN och K-means användes och deras resultat jämfördes. Den föreslagna metoden kunde upptäcka beroenden med hjälp av testkoden och de bästa uppnådda resultaten erhölls med HDBSCAN-klusteralgoritmen, vilket gav en F1 poäng på $70.7\%$. Metoden som föreslås i detta examensarbete kan användas i industriella miljöer för att hjälpa testare att identifiera beroenden mellan testfall. Att använda de identifierade beroenden under testningsprocessen kan minska risken för onödiga exekveringsfel, vilket sparar tid och kostnader.