Hvad er et testscript? Hvordan skriver man med eksempler

โšก Smart opsummering

Testscript i softwaretest er et linje-for-linje sรฆt af eksekverbare instruktioner, der driver en applikation og kontrollerer hvert trin. Denne vejledning dรฆkker de tre byggemetoder, en genanvendelig skabelon og en fungerende Selenium eksempel.

  • ๐Ÿ“ Kernedefinition: Et script angiver hver transaktion, der skal udfรธres, det nรธjagtige input, der skal indtastes, og det forventede resultat af hvert trin.
  • ๐ŸŽ›๏ธ Tre byggemetoder: Optagelse og afspilning, nรธgleords- eller datadrevet scripting og skrivning af kode direkte i et programmeringssprog.
  • ๐Ÿงฑ Sprogfrihed: Skriptsproget behรธver ikke at matche applikationssproget, sรฅ en Java produktet kan testes med JavaScript eller Python.
  • ???? Skabelondisciplin: En standardskabelon fastlรฆgger felterne ID, forudsรฆtninger, testdata, trin, forventet resultat og status.
  • โš–๏ธ Script vs. sag: En testcase er en manuel trin-for-trin procedure, mens et testscript udfรธres automatisk af et vรฆrktรธj.
  • โœ… Kvalitetsregler: Hold hvert script klart, begrรฆns hvert trin til รฉn handling, og design stierne ud fra den virkelige brugers perspektiv.

Hvad er et testscript

Hvad er et testscript i softwaretest?

A test script er en linje-for-linje beskrivelse af de systemtransaktioner, der skal udfรธres for at validere den applikation, der testes. Den angiver alle trin, der skal tages, sammen med det forventede resultat af hvert enkelt trin.

Fordi det er eksekverbart, kan det samme script afspilles systematisk pรฅ tvรฆrs af mange enheder og builds. Et brugbart script registrerer altid bรฅde det faktiske input, der skal indtastes, og det forventede output.

Sรฅdan skriver du et testscript

Test script
Test script

Der er tre forskellige mรฅder at oprette et testscript pรฅ:

Optagelse og afspilning

Med denne metode behรธver testeren slet ikke at skrive nogen kode, kun at registrere brugerens handlinger. Kodning er stadig nรธdvendig senere for at rette eventuelle fejl eller for at finjustere automatiseringsadfรฆrden.

Denne metode er nemmere end at skrive et komplet testscript fra bunden, fordi du allerede har den komplette kode. Det bruges mest i et forenklet programmeringssprog sรฅsom VBScript.

Sรธgeords- eller datadrevne scripts

I denne metode er der en klar adskillelse mellem testere og udviklere. I datadrevet scripting definerer testeren testen ved hjรฆlp af nรธgleord uden kendskab til den underliggende kode.

Her er udviklernes opgave at implementere testscriptkoden til nรธgleordene og opdatere denne kode, nรฅr det er nรธdvendigt. Sรฅ i denne metode behรธver testeren ikke bekymre sig om systemet. De vil dog i hรธj grad stole pรฅ udviklingsressourcer til enhver ny funktionalitet, du vil teste automatisk.

At skrive kode i et programmeringssprog

Hvis du vรฆlger denne metode, har du normalt stadig mulighed for optagelse og afspilning til rรฅdighed til at generere et fรธrste udkast til manuskriptet.

Fรธr eller siden bliver en tester dog nรธdt til at gรฅ ud over optagelse og afspilning og lรฆre at skrive simple manuskripter i hรฅnden. Det er vigtigt at forstรฅ, at du kan vรฆlge din Programmeringssprog ogsรฅ selvom din ansรธgning er skrevet ind Java.

Det betyder dog ikke, at du skal skrive dine testscripts ind Java, hvilket kan vรฆre svรฆrt at lรฆre. I stedet kan du skrive dine testscripts pรฅ et lettere sprog som f.eks JavaScript eller Ruby (eller et hvilket som helst lettere sprog, du รธnsker at bruge).

Eksempel pรฅ et testscript

For at kontrollere loginfunktionen pรฅ et websted kan dit testscript for eksempel gรธre fรธlgende:

  • Angiv, hvordan automatiseringsvรฆrktรธjet kan finde felterne "Brugernavn" og "Adgangskode" pรฅ login-skรฆrmen. Lad os sige, ved deres CSS element ID'er.
  • Indlรฆs hjemmesidens hjemmeside, og klik derefter pรฅ linket "login". Kontroller, at login-skรฆrmen, der vises, og felterne "Brugernavn" og "Adgangskode" er synlige.
  • Indtast brugernavnet โ€œCharlesโ€ og adgangskoden โ€œ123456โ€, find derefter knappen โ€œBekrรฆftโ€, og klik pรฅ den.
  • De skal specificere, hvordan en bruger kan finde titlen pรฅ velkomstskรฆrmen, der vises efter login, f.eks. ved hjรฆlp af dens CSS-element-id.
  • Bekrรฆft, at titlen pรฅ velkomstskรฆrmen er synlig.
  • Lรฆs titlen pรฅ velkomstskรฆrmen.
  • Bekrรฆft at titelteksten er lig med "Velkommen, Charles".
  • Hvis titlen stemmer overens med forventningerne, skal testen registreres som bestรฅet. Ellers skal den registreres som ikke bestรฅet.

Eksempel pรฅ testscript i Selenium med Java

Ovenstรฅende punktliste beskriver en logintest pรฅ almindeligt engelsk. Her er den samme test skrevet som et eksekverbart script, der bruger Selenium WebDriver og JUnitHvert punkttegn er knyttet til en eller to linjer kode.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.junit.Assert;
import org.junit.Test;

public class LoginTestScript {

    @Test
    public void validLoginShowsWelcomeMessage() {
        // Step 1: start the browser and open the site
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/login.html");

        // Step 2: locate the fields by their element ids
        driver.findElement(By.id("email")).sendKeys("Charles");
        driver.findElement(By.id("passwd")).sendKeys("123456");

        // Step 3: submit the form
        driver.findElement(By.id("SubmitLogin")).click();

        // Step 4: read the welcome title and assert the expected result
        String actual = driver.findElement(By.id("welcome")).getText();
        Assert.assertEquals("Welcome Charles", actual);

        driver.quit();
    }
}

Tre detaljer adskiller et rigtigt manuskript fra et indspillet manuskript:

  • Lokaliseringspunkter er eksplicitte. Elementer findes efter id snarere end efter skรฆrmposition, sรฅ scriptet overlever en layoutรฆndring.
  • Pรฅstanden er testen. Uden assertEquals klikker scriptet blot; det er assertionen, der afgรธr om den bestรฅs eller ikke.
  • Oprydning kรธrer altid. driver.quit() frigiver browseren, ellers efterlader en mislykket kรธrsel processer.

Den samme struktur gรฆlder i alle sprog. Python med Selenium kaldene bliver driver.find_element(By.ID, โ€œemailโ€) og bekrรฆfter actual == โ€œVelkommen, Charlesโ€.

Tips til oprettelse af et testscript

Her er nogle vigtige tips til at oprette et testscript:

Hold det klart

Dit testscript skal vรฆre tydeligt nok til at kรธre uden hjรฆlp. Hvis en tester bliver ved med at spรธrge projektejeren om detaljer om applikationen, spildes tid og ressourcer.

For at undgรฅ dette skal du kontrollere, at hvert trin i testscriptet er klart, prรฆcist og sammenhรฆngende. Dette hjรฆlper med at holde testprocessen gnidningsfri.

Hold det simpelt

Du bรธr oprette et testscript, der kun skal indeholde รฉn specifik handling, som testerne kan udfรธre. Dette sikrer, at hver funktion testes korrekt, og at testere ikke gรฅr glip af trin i softwaretestprocessen.

Tรฆnk det igennem

For at skrive testscriptet skal du sรฆtte dig i brugerens sted for at bestemme, hvilke stier der skal testes. Du bรธr vรฆre kreativ nok til at forudsige alle de forskellige stier, som brugere vil bruge, mens de kรธrer et system eller en applikation.

Hvornรฅr skal man bruge Test Script-metoden?

Her er grundene til at bruge testscriptet.

  • Et testscript er den mest pรฅlidelige mรฅde at bekrรฆfte, at intet trin springes over, og at resultaterne stemmer overens med den aftalte testplan.
  • Et forberedt script giver langt mindre plads til fejl under udfรธrelsen.
  • Nรฅr testere udforsker et produkt frit, kan de nemt overse funktioner.
  • En tester kan ogsรฅ antage, at en funktion producerede det forventede resultat, nรฅr den ikke gjorde det.
  • Det er isรฆr nyttigt, nรฅr brugerens ydeevne er vigtig og specifik.

Hvad er en testscriptskabelon?

En skabelon til et testscript er et genanvendeligt, prรฆformateret dokument, der indeholder de felter, som hvert script i dit projekt skal udfylde. Standardiseringen afgรธr, hvor detaljerede dine tests er, og garanterer, at ingen korrekturlรฆser behรธver at gรฆtte, hvad et trin betyder.

En brugbar skabelon indeholder disse felter:

Felt Formรฅl
Script-ID Unik identifikator brugt til traceffektivitet og defektkobling
Emne En linje, der angiver, hvad scriptet validerer
Modul eller funktion Omrรฅdet for den applikation, der testes
forudsรฆtninger Angiv, at systemet skal vรฆre aktiveret, fรธr det fรธrste trin kรธrer
Test data Prรฆcise input, inklusive legitimationsoplysninger og grรฆnsevรฆrdier
Steps Nummererede handlinger, รฉn handling pr. trin
Forventet resultat Det observerbare resultat af hvert trin
Faktisk resultat Udfyldt pรฅ udfรธrelsestidspunktet
Status Bestรฅet, mislykket, blokeret eller ikke kรธrsel
Forfatter og dato Ejerskab og versionshistorik

Forskellen mellem testcase og testscript

Her er de vigtigste forskelle mellem en testcase og et testscript:

Test sag Test script
Test tilfรฆlde er en trinvis procedure, der bruges til at teste en applikation. Testscriptet er et sรฆt instruktioner til at teste en applikation automatisk.
Testcases bruges til manuel testmiljรธ. Test Script bruges i automatiseringstestmiljรธet.
Det gรธres manuelt. Det gรธres i henhold til script-formatet.
Testcase-skabelonen inkluderer test-id, testdata, testprocedure, faktiske og forventede resultater osv. I testscriptet kan vi bruge forskellige kommandoer til at udvikle et script.

Fordele og ulemper ved testscripts

Scripting er en investering. At vide, hvor det betaler sig, fortรฆller dig, hvilke tests du skal automatisere fรธrst.

Fordele

  • Gentagelig: De samme trin kรธrer identisk pรฅ hver build, hvilket er det, der gรธr regressionstestning praktisk.
  • Hurtig i stor skala: En suite, der tager en tester om dagen, kan kรธre pรฅ fรฅ minutter og kan kรธre natten over.
  • Konsekvent: Scriptet keder sig aldrig, springer aldrig et trin over eller lรฆser et resultat forkert.
  • Pรฅ tvรฆrs af platforme: ร‰t script kan afspilles pรฅ tvรฆrs af browsere, enheder og operativsystemer.
  • CI-klar: Scripts tilsluttes en build-pipeline, sรฅ hver commit verificeres automatisk.

Ulemper

  • Hรธje opsรฆtningsomkostninger: Det tager langt lรฆngere tid at skrive og fejlfinde et script end at kรธre testen รฉn gang manuelt.
  • Vedligeholdelsesbyrde: et รฆndret element-id eller et redesignet sideskiftscript, der derefter skal repareres.
  • Fรฆrdighedskrav: Ud over optagelse og afspilning har holdet brug for programmeringsevner.
  • Blind for det uventede: Et script kontrollerer kun det, det har fรฅet besked pรฅ at kontrollere, sรฅ visuelle og brugervenlighedsfejl slipper forbi.
  • Falsk selvtillid: En grรธn samling af overfladiske manuskripter kan skjule reelle huller i dรฆkningen.

Den praktiske regel: lav et script til de stabile, repetitive stier med hรธj risiko, og fรธr en manual til udforskende og brugervenlighedsarbejde.

Testscript: Vigtige konklusioner

  • Test Scripts betyder en linje-for-linje beskrivelse, der indeholder oplysninger om systemtransaktioner, der skal udfรธres for at validere applikationen eller systemet, der testes.
  • Testcase er en trinvis procedure, der bruges til at teste en applikation, hvorimod testscriptet er et sรฆt instruktioner til at teste en applikation automatisk.
  • Tre mรฅder at oprette et testscript pรฅ er 1) Optagelse/afspilning 2) Sรธgeords-/datadrevet scripting, 3) Skrivning Code Brug af programmeringssproget.
  • Dit testscript skal vรฆre klart, og du bรธr oprette et testscript, der kun skal indeholde รฉn specifik handling, som testerne kan udfรธre.
  • Et testscript er den mest pรฅlidelige mรฅde at bekrรฆfte, at intet trin springes over, og at resultaterne stemmer overens med den aftalte testplan.
  • Test Script Template er et genbrugeligt formateret dokument, der indeholder forudvalgte oplysninger, der er vigtige for at skabe et brugbart test script.

Ofte Stillede Spรธrgsmรฅl

En testcase er en manuel trin-for-trin procedure skrevet til en menneskelig tester. Et testscript er eksekverbar kode, som et vรฆrktรธj kรธrer automatisk. ร‰n testcase bliver ofte til รฉt testscript, nรฅr den er automatiseret.

Start med optagelse og afspilning for at se strukturen, og rediger derefter den genererede kode. Gรฅ videre til at skrive scripts i hรฅnden, nรฅr de optagede koder ikke fungerer, da optagede locators sjรฆldent overlever en รฆndring af brugergrรฆnsefladen.

Alt der kรธres รฉn gang, alt der รฆndres i hvert sprint, og alt der bedรธmmes visuelt. Udforskende test, brugervenlighedsgennemgang og engangstjek koster mere at scripte end at udfรธre manuelt.

Ja. AI-vรฆrktรธjer kan konvertere skrevne testcases til kรธrbare scripts og foreslรฅ selvreparerende lokaliseringsvรฆrktรธjer, nรฅr et element รฆndres. RevSe hver genereret pรฅstand, fordi et script, der aldrig fejler, tester ingenting.

AI-assisterede vรฆrktรธjer registrerer รฆndrede elementer og opdaterer locators uden menneskelig indgriben, hvilket fjerner den mest almindelige รฅrsag til defekte scripts. Teams gennemgรฅr stadig รฆndringerne, fรธr de igen stoler pรฅ pakken.

Opsummer dette indlรฆg med: