Wat is een testscript? Hoe schrijf je er een? (Voorbeeld)

โšก Slimme samenvatting

Een testscript in softwaretesten is een regel-voor-regel set uitvoerbare instructies die een applicatie aanstuurt en elke stap controleert. Deze handleiding behandelt de drie buildmethoden, een herbruikbare sjabloon en een werkend voorbeeld. Selenium voorbeeld.

  • ๐Ÿ“ Kerndefinitie: Een script beschrijft elke uit te voeren transactie, de exacte invoer die moet worden gegeven en het verwachte resultaat van elke stap.
  • ๏ธ Drie bouwmethoden: Opnemen en afspelen, scripten op basis van trefwoorden of data, en rechtstreeks code schrijven in een programmeertaal.
  • ๐Ÿงฑ Taalvrijheid: De scripttaal hoeft niet overeen te komen met de applicatietaal, dus een Java Het product kan worden getest met JavaScriptie of Python.
  • ๐Ÿ“‹ Sjabloondiscipline: Een standaardsjabloon legt de velden ID, voorwaarden, testgegevens, stappen, verwacht resultaat en status vast.
  • โ€‹ Script versus casus: Een testcase is een handmatige, stapsgewijze procedure, terwijl een testscript automatisch door een tool wordt uitgevoerd.
  • โœ… Kwaliteitsregels: Houd elk script duidelijk, beperk elke stap tot รฉรฉn actie en ontwerp de paden vanuit het perspectief van de echte gebruiker.

Wat is een testscript

Wat is een testscript bij het testen van software?

A testscript Dit is een regel-voor-regel beschrijving van de systeemtransacties die moeten worden uitgevoerd om de te testen applicatie te valideren. Het geeft een overzicht van elke uit te voeren stap, samen met het verwachte resultaat van elke stap.

Omdat het uitvoerbaar is, kan hetzelfde script systematisch op verschillende apparaten en systemen worden herhaald. Een bruikbaar script registreert altijd zowel de daadwerkelijke invoer als de verwachte uitvoer.

Hoe u een testscript schrijft

Testscript
Testscript

Er zijn drie verschillende manieren om een โ€‹โ€‹testscript te maken:

Opnemen en afspelen

Bij deze methode hoeft de tester helemaal geen code te schrijven, alleen de acties van de gebruiker vast te leggen. Programmeren is later nog steeds nodig om eventuele fouten te herstellen of het automatiseringsgedrag te verfijnen.

Deze methode is eenvoudiger dan het helemaal opnieuw schrijven van een compleet testscript, omdat u al over de volledige code beschikt. Het wordt meestal gebruikt in een vereenvoudigde programmeertaal zoals VBScript.

Trefwoord- of datagestuurde scripting

Bij deze werkwijze is er een duidelijke scheiding tussen testers en ontwikkelaars. Bij datagestuurde scripting definieert de tester de test met behulp van trefwoorden zonder kennis van de onderliggende code.

Hier is het de taak van de ontwikkelaars om de testscriptcode voor de trefwoorden te implementeren en deze code indien nodig bij te werken. Bij deze methode hoeft de tester zich dus geen zorgen te maken over het systeem. Ze zullen echter sterk afhankelijk zijn van ontwikkelingsbronnen voor elke nieuwe functionaliteit die u automatisch wilt testen.

Code schrijven in een programmeertaal

Als je voor deze methode kiest, heb je normaal gesproken nog steeds de mogelijkheid om op te nemen en af โ€‹โ€‹te spelen, zodat je een eerste versie van het script kunt maken.

Vroeg of laat moet een tester echter verder gaan dan opnemen en afspelen en leren om eenvoudige scripts met de hand te schrijven. Het is belangrijk om te begrijpen dat je je eigen keuzes kunt maken. Programmeertaal zelfs als uw aanvraag is geschreven Java.

Dit betekent echter niet dat u uw testscripts moet schrijven Java, wat moeilijk te leren kan zijn. In plaats daarvan kunt u uw testscripts in een eenvoudiger taal schrijven, zoals JavaScript of Ruby (of een eenvoudigere taal die u wilt gebruiken).

Voorbeeld van een testscript

Om bijvoorbeeld de inlogfunctie op een website te controleren, kan uw testscript het volgende doen:

  • Geef op hoe de automatiseringstool de velden โ€œGebruikersnaamโ€ en โ€œWachtwoordโ€ in het inlogscherm kan vinden. Laten we zeggen, op basis van hun CSS-element-ID's.
  • Laad de startpagina van de website en klik vervolgens op de link โ€œinloggenโ€. Controleer of het inlogscherm dat verschijnt en de velden โ€œGebruikersnaamโ€ en โ€œWachtwoordโ€ zichtbaar zijn.
  • Voer de gebruikersnaam "Charles" en het wachtwoord "123456" in, zoek vervolgens de knop "Bevestigen" en klik erop.
  • Ze moeten specificeren hoe een gebruiker de titel van het welkomstscherm dat verschijnt na het inloggen kan vinden, bijvoorbeeld aan de hand van de CSS-element-ID.
  • Controleer of de titel van het welkomstscherm zichtbaar is.
  • Lees de titel van het welkomstscherm.
  • Beweer dat de titeltekst gelijk is aan "Welkom Charles".
  • Als de titel overeenkomt met de verwachting, registreer de test dan als geslaagd. Zo niet, registreer deze dan als niet geslaagd.

Voorbeeld testscript in Selenium with Java

De bovenstaande opsomming beschrijft een inlogtest in begrijpelijke taal. Hieronder staat dezelfde test, maar dan als een uitvoerbaar script. Selenium WebDriver en JUnitElk opsommingsteken komt overeen met รฉรฉn of twee regels code.

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();
    }
}

Drie details onderscheiden een echt script van een opgenomen script:

  • Locators zijn expliciet. Elementen worden gevonden op basis van hun ID in plaats van hun schermpositie, waardoor het script behouden blijft bij een wijziging van de lay-out.
  • De bewering is de toets. Zonder assertEquals klikt het script gewoon; het is de assertie die bepaalt of de bewerking slaagt of mislukt.
  • De opschoonfunctie wordt altijd uitgevoerd. driver.quit() sluit de browser af; anders blijven er bij een mislukte uitvoering processen achter.

Dezelfde structuur is van toepassing in elke taal. Python with Selenium De aanroepen worden driver.find_element(By.ID, โ€œemailโ€) en assert actual == โ€œWelkom Charlesโ€.

Tips voor het maken van een testscript

Hier volgen enkele belangrijke tips voor het maken van een testscript:

Houd het duidelijk

Je testscript moet duidelijk genoeg zijn om zonder hulp te kunnen worden uitgevoerd. Als een tester steeds de projecteigenaar om details over de applicatie moet vragen, worden tijd en middelen verspild.

Om dit te voorkomen, controleer of elke stap in het testscript duidelijk, beknopt en samenhangend is. Dit draagt โ€‹โ€‹bij aan een soepel verloop van het testproces.

Hou het simpel

U moet een testscript maken dat slechts รฉรฉn specifieke actie bevat die testers kunnen uitvoeren. Dit zorgt ervoor dat elke functie correct wordt getest en dat testers geen stappen in het softwaretestproces overslaan.

Denk er eens over na

Om het testscript te schrijven, moet u uzelf in de plaats van de gebruiker verplaatsen en beslissen welke paden u wilt testen. U moet creatief genoeg zijn om alle verschillende paden te voorspellen die gebruikers zouden gebruiken tijdens het uitvoeren van een systeem of applicatie.

Wanneer gebruik je de testscriptaanpak?

Hier zijn de redenen om het testscript te gebruiken.

  • Een testscript is de meest betrouwbare manier om te bevestigen dat er geen stappen worden overgeslagen en dat de resultaten overeenkomen met het afgesproken testplan.
  • Een voorbereid script laat veel minder ruimte voor fouten tijdens de uitvoering.
  • Wanneer testers een product vrijelijk verkennen, kunnen ze gemakkelijk functies over het hoofd zien.
  • Een tester kan er ook van uitgaan dat een functie het verwachte resultaat oplevert, terwijl dat niet het geval is.
  • Het is vooral handig als de gebruikersprestaties belangrijk en specifiek zijn.

Wat is een testscriptsjabloon?

Een testscriptsjabloon is een herbruikbaar, vooraf opgemaakt document met de velden die elk script in je project moet invullen. Door het te standaardiseren, bepaal je hoe gedetailleerd je tests zijn en zorg je ervoor dat geen enkele reviewer hoeft te raden wat een bepaalde stap inhoudt.

Een bruikbaar sjabloon bevat de volgende velden:

Veld Doel
Script-ID Unieke identificatiecode gebruikt voor tracverband tussen geschiktheid en defecten
Onderwerp Eรฉn regel waarin wordt aangegeven wat het script valideert.
Module of functie Het te testen gedeelte van de applicatie
Randvoorwaarden Geef aan in welke toestand het systeem zich moet bevinden voordat de eerste stap wordt uitgevoerd.
Testgegevens Exacte invoer, inclusief referenties en grenswaarden
Stappen Genummerde acties, รฉรฉn actie per stap.
Verwacht resultaat Het waarneembare resultaat van elke stap
Werkelijke resultaat Ingevuld op het moment van de executie.
Status Geslaagd, niet geslaagd, geblokkeerd of niet uitgevoerd
Auteur en datum Eigendoms- en versiegeschiedenis

Verschil tussen testcase en testscript

Hieronder volgen de belangrijkste verschillen tussen een testcase en een testscript:

Testgeval Testscript
Testgeval is een stapsgewijze procedure die wordt gebruikt om een โ€‹โ€‹applicatie te testen. Het testscript is een set instructies om een โ€‹โ€‹applicatie automatisch te testen.
Testgevallen worden gebruikt voor handmatige testomgevingen. TestScript wordt gebruikt in de automatiseringstestomgeving.
Het gebeurt handmatig. Het wordt gedaan volgens het scriptformaat.
De testcase-sjabloon bevat test-ID, testgegevens, testprocedure, werkelijke en verwachte resultaten, enz. In het TestScript kunnen we verschillende commando's gebruiken om een โ€‹โ€‹script te ontwikkelen.

Voordelen en nadelen van testscripts

Scripting is een investering. Weten waar het zich terugbetaalt, vertelt je welke tests je als eerste moet automatiseren.

Voordelen

  • Herhaalbaar: Dezelfde stappen worden bij elke build exact hetzelfde uitgevoerd, en dat maakt regressietesten praktisch.
  • Snel op grote schaal: Een testsuite die normaal gesproken een dag duurt voor een tester, kan nu in enkele minuten worden uitgevoerd en kan zelfs 's nachts draaien.
  • Consequent: Het script verveelt zich nooit, slaat geen stap over en interpreteert geen resultaat verkeerd.
  • Platformonafhankelijk: Eรฉn script kan op verschillende browsers, apparaten en besturingssystemen worden afgespeeld.
  • CI-klaar: Scripts worden in een build-pipeline geรฏntegreerd, waardoor elke commit automatisch wordt geverifieerd.

Nadelen

  • Hoge opstartkosten: Het schrijven en debuggen van een script duurt veel langer dan het eenmalig handmatig uitvoeren van de test.
  • Onderhoudslast: Een gewijzigde element-ID of een herontworpen pagina zorgt ervoor dat scripts niet meer werken en moeten vervolgens worden hersteld.
  • Vaardigheidsvereiste: Naast opnemen en afspelen heeft het team ook programmeervaardigheden nodig.
  • Blind voor het onverwachte: Een script controleert alleen wat het is opgedragen, waardoor visuele en gebruiksvriendelijkheidsfouten onopgemerkt blijven.
  • Valse zelfverzekerheid: Een reeks oppervlakkige scripts kan echte lacunes in de dekking verbergen.

De praktische regel: documenteer de stabiele, repetitieve en risicovolle trajecten en houd verkennend werk en gebruiksvriendelijkheidsonderzoek handmatig.

Testscript: Belangrijkste conclusies

  • Testscripts betekent een regel-voor-regel beschrijving met de informatie over de systeemtransacties die moeten worden uitgevoerd om de te testen applicatie of het systeem te valideren.
  • Testcase is een stapsgewijze procedure die wordt gebruikt om een โ€‹โ€‹applicatie te testen, terwijl het testscript een reeks instructies is om een โ€‹โ€‹applicatie automatisch te testen.
  • Er zijn drie manieren om een โ€‹โ€‹testscript te maken: 1) Opnemen/afspelen, 2) Op trefwoorden/gegevens gebaseerd scripten, 3) Schrijven. Code Het gebruik van de programmeertaal.
  • Uw testscript moet duidelijk zijn en u moet een testscript maken dat slechts รฉรฉn specifieke actie bevat die testers kunnen ondernemen.
  • Een testscript is de meest betrouwbare manier om te bevestigen dat er geen stappen worden overgeslagen en dat de resultaten overeenkomen met het afgesproken testplan.
  • Testscriptsjabloon is een herbruikbaar opgemaakt document dat vooraf geselecteerde informatie bevat die belangrijk is voor het maken van een bruikbaar testscript.

Veelgestelde vragen

Een testcase is een handmatig beschreven, stapsgewijze procedure voor een menselijke tester. Een testscript is uitvoerbare code die automatisch door een tool wordt uitgevoerd. Eรฉn testcase wordt vaak รฉรฉn testscript zodra deze geautomatiseerd is.

Begin met opnemen en afspelen om de structuur te bekijken, en bewerk vervolgens de gegenereerde code. Ga over op het handmatig schrijven van scripts zodra de opgenomen scripts niet meer werken, omdat opgenomen locators zelden een wijziging in de gebruikersinterface overleven.

Alles wat eenmalig wordt uitgevoerd, alles wat elke sprint verandert en alles wat visueel wordt beoordeeld. Exploratieve tests, gebruiksvriendelijkheidsbeoordelingen en eenmalige controles zijn duurder om te automatiseren dan om ze handmatig uit te voeren.

Ja. AI-tools kunnen geschreven testgevallen omzetten in uitvoerbare scripts en zelfherstellende locators voorstellen wanneer een element verandert. RevBekijk elke gegenereerde bewering, want een script dat nooit faalt, test niets.

Door AI ondersteunde tools detecteren gewijzigde elementen en werken locators bij zonder menselijke tussenkomst, waardoor de meest voorkomende oorzaak van defecte scripts wordt geรซlimineerd. Teams controleren de wijzigingen nog steeds voordat ze de suite opnieuw vertrouwen.

Vat dit bericht samen met: