Hva er et testautomasjonsrammeverk?
Et testautomatiseringsrammeverk er et sett med verktøy som brukes til å utføre automatisert programvaretesting. Testautomatiseringsrammer gir betydelige fordeler fremfor manuell testing og brukes ofte i rask programvareutvikling. Disse rammene lar programvareutviklere lage tester, utføre tester og analysere testresultater. Et testautomatiseringsrammeverk kan være drevet av kode, data, et grafisk brukergrensesnitt (GUI) eller en kombinasjon av disse.
Testautomatiseringsrammer er påkrevd for å møte behovene for rask programvareutvikling. I den klassiske livssyklusen for programvareutvikling for fossefall var programvaretesting en diskret fase utført etter implementering eller koding. Som sådan var tester som ble utført av mennesker, typiske.
Mange utviklingsteam har erstattet fossefallmodellen med forskjellige smidige programvareutviklingsmetoder, som vanligvis krever rask, iterativ utvikling. Rask utvikling har skapt et behov for rask testing. Et testautomatiseringsramme gjør at et programvareteam kan utføre hyppige, automatiserte tester på en kodebase. For eksempel, i stedet for å kreve en egen testfase etter utvikling, kan et team som bruker et testautomatiseringsrammeverk, velge å kjøre en full pakke med tester over natten, samt mindre biter av automatiserte tester i løpet av dagen når endringer gjøres i kilden kode.
Den mest brukte typen rammer er det kodedrevne rammeverket, som brukes til å utføre test med hvite bokser. Kodedrevne rammer krever at utviklere skriver små kodestykker, i form av enhetstester, for å teste programvarefunksjonalitet eller ytelse. Utviklere som bruker kodedrevne rammer, må passe på å skrive programvaren sin på en måte som kan testes - det vil si at koden må moduliseres slik at en enhetstest kan ringe et kodebit og verifisere resultatet. Disse rammene inkluderer vanligvis en implementering av xUnit, der "x" varierer basert på programmeringsspråket som testes.
GUI-drevne testrammer brukes til å utføre svart boks-testing, ved hjelp av et programvareverktøy slik brukeren gjør, gjennom mus- og tastaturinnganger. De kan bestå av skript skrevet av utviklere for å utøve en serie med funksjonalitet, eller de kan være sammensatt av verktøygenererte skript, for eksempel innspilling og avspilling av skript. En potensiell ulempe med disse rammene er at skriptet vil gå i stykker når GUI endres. Noen GUI-automatiseringsrammer kan generere et skript som kan redigeres av en utvikler i tilfelle GUI-endringer, og andre kan kreve at brukeren oppretter en ny innspilling og avspilling.
Datadrevne testrammer utfører programvaretesting ved bruk av data, og disse testene fungerer vanligvis med datatabeller som spesifiserer både innganger og utganger. Dataene kan lagres på forskjellige steder, for eksempel databaser, regneark eller tekstfiler. Manus kan skrives for å utføre programvaremetoder som tar inputene som parametere og for å validere programvaremetodens returverdi mot utdataene. Alt annet som kan varieres, for eksempel miljøet som testen utføres under, kan også lagres med dataene og skilles fra testskriptet. En fordel gitt av disse rammene er atskillelsen av data og logikk, noe som ofte fører til lavere vedlikehold på lang sikt.