Webapplikationer er blevet vigtige for virksomheder, der søger avancerede måder at forbinde med og betjene deres målgruppe i den digitale verden. I betragtning af vigtigheden af webapps i forretningsdriften i disse dage, uanset branche, skal de testes grundigt for at sikre, at de tilbyder avancerede brugeroplevelser.
Automatiseringstest fremskynder softwareudviklings livscyklus. Desuden kan forskellige interessenter som udviklere, kvalitetssikringsselskaber og ikke-teknologiteams samarbejde aktivt i projektet, når de anvender BDD-tilgangen (Behavior Driven Development) til udvikling.
Scenarierne er skrevet ud fra den forventede adfærd. af softwaren, og den testes for at kontrollere, om den matcher de nævnte scenarier.
Billedkilde
Disse scenarier dokumenteres ved hjælp af et domænespecifikt sprog som f.eks. Agurk. I hvert testscenarie bruges naturlige sprogkonstruktioner, der udgør små engelsklignende sætninger, til at beskrive en applikations adfærd og forventede resultat. Dette gøres ved hjælp af et dedikeret softwareværktøj som agurk, der tillader udførelse af automatiserede acceptstest skrevet i agurk.
Hvad er agurk?
Agurk er en open source-testramme, der understøtter Behavior Driven Development til automatiseringstest af webapplikationer. Testene skrives først i en simpel scenarieform, der beskriver systemets forventede opførsel ud fra brugerens perspektiv.
Størst anvendt til acceptstest, agurk er skrevet i Ruby, mens testene er skrevet i Gherkin, et ikke-teknisk og menneskeligt læsbart sprog.
Testning af agurk og selen: En samarbejdsvillig tilgang
Mens automatiseret selen-test tilføjer nøjagtighed og hastighed til udviklingscyklussen, tilføjer agurk en ekstra kant til det, hvilket gør det mere samarbejde for de ikke-tekniske ledelsesinteressenter. Meget gavnlig for test af brugeraccept, hvor testscenarierne i vid udstrækning er drevet af adfærd, styrker agurk automatiseringstest.
Agurkerammen
Agurkeramme består hovedsageligt af tre hoveddele – Feature File, Trindefinitioner og Test Runner-filen.
Feature File
En enkeltstående enhed eller en enkelt funktionalitet (såsom et login) til et projekt kan kaldes en Feature. Hver af disse funktioner vil have scenarier, der skal testes ved hjælp af Selen integreret med agurk. En fil, der gemmer data om funktioner, deres beskrivelser og de scenarier, der skal testes, kaldes en Feature File.
Agurktests er skrevet i disse Feature Files, der er gemt med udvidelsen – “.feature” . En funktionsfil kan gives en beskrivelse for at gøre dokumentationen mere læselig.
Eksempel:
Login-funktionen på et websted
Feature File Name: userLogin .feature
Beskrivelse: Brugeren skal være i stand til at logge på ved indtastning af det korrekte brugernavn og adgangskode i de korrekte felter. Brugeren skal henvises til hjemmesiden, hvis det indtastede brugernavn og adgangskode er korrekte.
Nøgleord som GIVEN, WHEN og THEN, der bruges til at skrive testen i agurk, kaldes Annotations.
- GIVEN-bruger navigerer til login-siden ved at åbne Firefox
- NÅR bruger indtaster korrekt < brugernavn > OG < adgangskode > værdier
- DENNE bruger henvises til t startsiden
Trindefinitioner
Nu hvor funktionerne er skrevet i funktionsfilerne, skal koden for det relaterede scenario køres. For at vide, hvilket batch kode der skal køres for et givet scenarie, kommer trindefinitioner ind i billedet. En Steps Definitions-fil gemmer kortlægningsdataene mellem hvert trin i et scenarie, der er defineret i funktionsfilen, og den kode, der skal udføres.
Trindefinitioner kan bruge både Java- og Selenium-kommandoer til de Java-funktioner, der er skrevet til at kortlægge en funktionsfil til koden.
Eksempel:
package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps{@Given("^user navigates to the login page by opening Firefox$")//Code to Open Firefox Browser and launch the login page of application to define the GIVEN step of the feature@When("^user enters correct username and password values$")//take inputs for username and password fields using find element by xpath. Put the correct username and password values
read more