Hvad er en testautomationsramme?
En testautomationsramme er et sæt værktøjer, der bruges til at udføre automatiseret softwaretest. Testautomatiseringsrammer giver betydelige fordele i forhold til manuel test og bruges ofte til hurtig softwareudvikling. Disse rammer giver softwareudviklere mulighed for at oprette test, udføre test og analysere testresultater. En testautomationsramme kan være drevet af kode, data, en grafisk brugergrænseflade (GUI) eller en kombination af disse.
Testautomatiseringsrammer er nødvendige for at imødekomme behovene for hurtig softwareudvikling. I den klassiske udviklingslivscyklus for vandfaldssoftware var softwaretest en diskret fase udført efter implementering eller kodning. Som sådan var human-udførte tests typiske.
Mange udviklingshold har erstattet vandfaldsmodellen med forskellige smidige softwareudviklingsmetoder, som typisk kræver hurtig, iterativ udvikling. Hurtig udvikling har skabt et behov for hurtig test. En testautomationsramme giver et softwareteam mulighed for at udføre hyppige, automatiserede test på en kodebase. For eksempel, snarere end at kræve en separat testfase efter udvikling, kan et team, der bruger en testautomatiseringsramme, vælge at køre en komplet pakke tests natten over, samt mindre bidder med automatiserede test i løbet af dagen, når der foretages ændringer i kilden kode.
Den mest almindeligt anvendte type ramme er den kodedrevne ramme, der bruges til at udføre test i hvid boks. Kodedrevne rammer kræver, at udviklere skriver små kodestykker i form af enhedstest for at teste softwarefunktionalitet eller ydeevne. Udviklere, der bruger kodedrevne rammer, skal sørge for at skrive deres software på en måde, der kan testes - det vil sige, at koden skal moduleres, så en enhedstest kan kalde et kodestykke og verificere resultatet. Disse rammer inkluderer typisk en implementering af xUnit, hvor "x" varierer baseret på det programmeringssprog, der testes.
GUI-drevne testrammer bruges til at udføre black-box-test ved hjælp af et softwareværktøj, som en bruger ville gøre, gennem input fra mus og tastatur. De kan være sammensat af scripts skrevet af udviklere til at udøve en række funktioner, eller de kan være sammensat af værktøjsgenererede scripts, såsom record-and-play-back-scripts. En potentiel ulempe ved disse rammer er, at scriptet går i stykker, hver gang GUI ændres. Nogle GUI-automatiseringsrammer genererer muligvis et script, der kan redigeres af en udvikler i tilfælde af GUI-ændringer, og andre kan muligvis kræve, at brugeren opretter en ny record-and-play-back-session.
Datadrevne testrammer udfører softwaretest ved hjælp af data, og disse test fungerer typisk med datatabeller, der specificerer både input og output. Dataene kan opbevares forskellige steder, f.eks. Databaser, regneark eller tekstfiler. Manuskripter kan skrives for at udføre softwaremetoder, der tager inputene som parametre og for at validere softwaremetodens returværdi mod output. Alt andet, der kan varieres, såsom miljøet, som testen udføres under, kan også gemmes med dataene og adskilles fra testscriptet. En fordel ved disse rammer er adskillelsen af data og logik, som ofte fører til lavere langtidsvedligeholdelse.