Mis on testskript? Kuidas kirjutada näidetega

⚡ Nutikas kokkuvõte

Tarkvara testimise testskript on rida-realt koosnev käivitatavate käskude kogum, mis juhib rakendust ja kontrollib iga sammu. See juhend hõlmab kolme ehitusmeetodit, korduvkasutatavat malli ja toimivat... Selenium näide.

  • 📝 Põhidefinitsioon: Skript kirjeldab iga teostatavat tehingut, sisestatavat täpset sisendit ja iga sammu oodatavat tulemust.
  • 🎛️ Kolm ehitusmeetodit: Salvestamine ja taasesitus, märksõna- või andmepõhine skriptimine ja koodi kirjutamine otse programmeerimiskeeles.
  • 🧱 Keelevabadus: Skriptikeel ei pea rakenduse keelega ühtima, seega a Java toodet saab testida koos JavaSkript või Python.
  • ???? Malli distsipliin: Standardmall määrab kindlaks ID, eeltingimused, testiandmed, sammud, oodatava tulemuse ja olekuväljad.
  • 🇧🇷 Skript vs juhtum: Testjuhtum on käsitsi samm-sammult tehtav protseduur, samas kui testiskripti käivitab tööriist automaatselt.
  • Kvaliteedireeglid: Hoia iga skript selge, piira iga samm ühe tegevusega ja kujunda teed reaalse kasutaja vaatenurgast.

Mis on testskript

Mis on tarkvara testimise testskript?

A testiskript on rida-realt kirjeldus süsteemitoimingutest, mis tuleb testitava rakenduse valideerimiseks teha. See loetleb kõik vajalikud sammud koos iga sammu oodatava tulemusega.

Kuna see on käivitatav, saab sama skripti süstemaatiliselt esitada paljudes seadmetes ja versioonides. Kasutatav skript salvestab alati nii sisestatava sisendi kui ka oodatava väljundi.

Kuidas kirjutada testskripti

Testi skript
Testi skript

Testskripti loomiseks on kolm erinevat viisi:

Salvestamine ja taasesitus

Selle meetodi puhul ei pea testija üldse koodi kirjutama, vaid ainult kasutaja toimingute salvestamiseks. Kodeerimine on hiljem siiski vajalik, et parandada vigu või täpsustada automatiseerimise käitumist.

See meetod on lihtsam kui täieliku testskripti nullist kirjutamine, kuna teil on juba täielik kood. Seda kasutatakse enamasti lihtsustatud programmeerimiskeeles nagu VBScript.

Märksõna- või andmepõhine skriptimine

Selle meetodi puhul on testijad ja arendajad selgelt eraldatud. Andmepõhise skriptimise puhul määratleb testija testi, kasutades märksõnu, teadmata aluseks olevat koodi.

Siin on arendajate ülesandeks juurutada märksõnade testskripti kood ja vajadusel seda koodi värskendada. Nii et selle meetodi puhul ei pea testija süsteemi pärast muretsema. Kuid kõik uued funktsioonid, mida soovite automaatselt testida, sõltuvad nad suuresti arendusressurssidest.

Koodi kirjutamine programmeerimiskeeles

Selle meetodi valimisel on teil tavaliselt endiselt salvestamise ja taasesituse võimalus skripti esimese mustandi loomiseks.

Varem või hiljem peab testija aga salvestamisest ja taasesitusest kaugemale liikuma ning õppima käsitsi lihtsaid skripte kirjutama. Oluline on mõista, et saate valida oma Programmeerimiskeel isegi kui teie avaldus on sisse kirjutatud Java.

Kuid see ei tähenda, et peate oma testskriptid sisse kirjutama Java, mida võib olla raske õppida. Selle asemel saate oma testiskripte kirjutada lihtsamas keeles, näiteks JavaScript või Ruby (või mõni lihtsam keel, mida soovite kasutada).

Testskripti näide

Näiteks veebisaidil sisselogimisfunktsiooni kontrollimiseks võib teie testskript teha järgmist.

  • Määrake, kuidas automatiseerimistööriist suudab sisselogimisekraanil leida väljad „Kasutajanimi” ja „Parool”. Ütleme nende CSS-i elementide ID-de järgi.
  • Laadige veebisaidi avaleht, seejärel klõpsake lingil "sisselogimine". Veenduge, et kuvatav sisselogimisekraan ning väljad „Kasutajanimi” ja „Parool” oleksid nähtavad.
  • Tippige kasutajanimi „Charles” ja parool „123456”, seejärel leidke nupp „Kinnita” ja klõpsake seda.
  • Nad peavad täpsustama, kuidas kasutaja saab CSS-i elemendi ID järgi leida pärast sisselogimist ilmuva tervituskuva pealkirja.
  • Veenduge, et tervituskuva pealkiri oleks nähtav.
  • Lugege tervituskuva pealkirja.
  • Väida, et pealkirja tekst on võrdne „Tere tulemast, Charles“.
  • Kui pealkiri vastab ootusele, registreerige test sooritatuks. Vastasel juhul registreerige see ebaõnnestunuks.

Näidis-testskript Selenium koos Java

Ülaltoodud täpploend kirjeldab sisselogimistesti lihtsas inglise keeles. Siin on sama test, mis on kirjutatud käivitatava skriptina, kasutades Selenium WebDriver ja JUnitIga täpploend vastab ühele või kahele koodireale.

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

Kolm detaili eristavad päris stsenaariumi salvestatud stsenaariumist:

  • Lokaatorid on selgesõnalised. Elemendid leitakse ID, mitte ekraanipositsiooni järgi, seega skript jääb paigutuse muutmise järel alles.
  • Väide on test. Ilma assertEquals funktsioonita skript lihtsalt klõpsab; just assertion otsustab, kas see on õnnestunud või mitte.
  • Puhastus töötab alati. driver.quit() vabastab brauseri, vastasel juhul jätab ebaõnnestunud käivitamine protsesse maha.

Sama struktuur kehtib igas keeles. Python koos Selenium kõnedest saab driver.find_element(By.ID, “email”) ja need kinnitavad tegelikku väärtust “Welcome Charles”.

Näpunäiteid testskripti loomiseks

Siin on mõned olulised näpunäited testskripti loomiseks.

Hoidke see selge

Sinu testiskript peaks olema piisavalt selge, et seda saaks ilma abita käivitada. Kui testija peab projekti omanikult rakenduse kohta üksikasju küsima, raisatakse aega ja ressursse.

Selle vältimiseks veenduge, et iga testskripti samm oleks selge, kokkuvõtlik ja sidus. See aitab testimisprotsessi sujuvana hoida.

Hoidke see lihtne

Peaksite looma testskripti, mis peaks sisaldama ainult ühte konkreetset toimingut, mida testijad peavad tegema. See tagab, et iga funktsiooni testitakse õigesti ja testijad ei jätaks tarkvara testimisprotsessi samme vahele.

Mõtle see läbi

Testskripti kirjutamiseks peate asetama end kasutaja kohale, et otsustada, milliseid teid testida. Peaksite olema piisavalt loominguline, et ennustada kõiki erinevaid teid, mida kasutajad süsteemi või rakenduse käitamise ajal kasutavad.

Millal kasutada testskripti meetodit?

Siin on testskripti kasutamise põhjused.

  • Testi skript on kõige usaldusväärsem viis kinnitamaks, et ühtegi sammu ei jäeta vahele ja et tulemused vastavad kokkulepitud testiplaanile.
  • Ettevalmistatud skript jätab täitmise ajal palju vähem ruumi vigadele.
  • Kui testijad toodet vabalt uurivad, võivad nad selle funktsioone kergesti kahe silma vahele jätta.
  • Testija võib eeldada, et funktsioon andis oodatud tulemuse, kui see seda ei teinud.
  • See on eriti kasulik, kui kasutaja jõudlus on oluline ja konkreetne.

Mis on testskripti mall?

Testiskripti mall on korduvkasutatav, eelvormindatud dokument, mis sisaldab välju, mida iga teie projekti skript peab täitma. Selle standardiseerimine määrab teie testide detailsuse ja tagab, et ükski retsensent ei pea aimama, mida samm tähendab.

Toimiv mall sisaldab järgmisi välju:

Väli Eesmärk
Skripti ID Unikaalne identifikaator, mida kasutatakse tracligipääsetavus ja defektide linkimine
Pealkiri Üks rida, mis näitab, mida skript valideerib
Moodul või funktsioon Testitava rakenduse ala
Eeltingimused Märkige, et süsteem peab olema enne esimese etapi käivitamist sisse lülitatud
Testi andmed Täpsed sisendid, sh volitused ja piirväärtused
Sammud Nummerdatud toimingud, üks toiming sammu kohta
Oodatav tulemus Iga sammu jälgitav tulemus
Tegelik tulemus Täidetud teostuse ajal
olek Läbitud, ebaõnnestunud, blokeeritud või mitte käivitatud
Autor ja kuupäev Omandiõigus ja versiooniajalugu

Erinevus testjuhtumi ja testskripti vahel

Siin on peamised erinevused testi ja testiskripti vahel:

Testjuhtum Testi skript
Katsejuhtum on samm-sammult protseduur, mida kasutatakse rakenduse testimiseks. Testskript on juhiste kogum rakenduse automaatseks testimiseks.
Testjuhtumeid kasutatakse käsitsi testimise keskkonnas. Testskripti kasutatakse automatiseerimise testimise keskkonnas.
Seda tehakse käsitsi. Seda tehakse vastavalt skriptivormingule.
Testjuhtumi mall sisaldab testi ID-d, testiandmeid, testimisprotseduuri, tegelikke ja oodatavaid tulemusi jne. Testskriptis saame skripti väljatöötamiseks kasutada erinevaid käske.

Testiskriptide eelised ja puudused

Skriptimine on investeering. Teadmine, kus see end ära tasub, annab sulle teada, milliseid teste kõigepealt automatiseerida.

Eelised

  • Korratav: Samad sammud toimivad igas versioonis identselt, mis teebki regressioontestimise praktiliseks.
  • Kiire mastaabis: Komplekt, mis võtab ühelt testijalt päevas aega, saab käivitada minutitega ja seda saab käivitada üleöö.
  • Järjepidev: skript ei hakka kunagi igavaks, ei jäta ühtegi sammu vahele ega loe tulemust valesti.
  • Platvormiülene: Ühte skripti saab esitada erinevates brauserites, seadmetes ja operatsioonisüsteemides.
  • CI-valmidus: skriptid ühendatakse ehitustorustikuga, nii et iga commit kontrollitakse automaatselt.

Puudused

  • Kõrge paigalduskulu: Skripti kirjutamine ja silumine võtab palju kauem aega kui testi ühekordne käsitsi käivitamine.
  • Hoolduskoormus: muudetud elemendi ID või ümberkujundatud lehevahetuste skriptid, mis tuleb seejärel parandada.
  • Oskusnõue: Lisaks salvestamisele ja taasesitusele vajab meeskond programmeerimisoskust.
  • Pime ootamatuste suhtes: Skript kontrollib ainult seda, mida tal kästakse kontrollida, seega visuaalsed ja kasutatavusvead libisevad mööda.
  • Vale enesekindlus: Roheline pealiskaudsete skriptide komplekt võib varjata tegelikke lünki katvuses.

Praktiline reegel: kirjuta stabiilsed, korduvad ja kõrge riskiga teed ning pea uurimis- ja kasutatavusjuhendit.

Testi skript: peamised järeldused

  • Testskriptid on rida-realt kirjeldus, mis sisaldab teavet süsteemitehingute kohta, mida tuleks testitava rakenduse või süsteemi valideerimiseks teha.
  • Testjuhtum on samm-sammult protseduur, mida kasutatakse rakenduse testimiseks, samas kui testskript on juhiste kogum rakenduse automaatseks testimiseks.
  • Testskripti loomiseks on kolm võimalust: 1) salvestamine/taasesitus, 2) märksõna-/andmepõhine skriptimine ja 3) kirjutamine. Code Programmeerimiskeele kasutamine.
  • Teie testskript peab olema selge ja peaksite looma testskripti, mis peaks sisaldama ainult ühte konkreetset toimingut, mida testijad peavad tegema.
  • Testi skript on kõige usaldusväärsem viis kinnitamaks, et ühtegi sammu ei jäeta vahele ja et tulemused vastavad kokkulepitud testiplaanile.
  • Test Script Template on korduvkasutatav vormindatud dokument, mis sisaldab kasutatava testskripti loomiseks olulist eelvalitud teavet.

KKK

Testjuhtum on käsitsi kirjutatud samm-sammult protseduur, mis on kirjutatud inimesest testijale. Testskript on käivitatav kood, mida tööriist automaatselt käivitab. Ühest testijuhtumist saab sageli üks testskript, kui see automatiseeritakse.

Alusta salvestamise ja taasesitusega, et näha struktuuri, seejärel redigeeri genereeritud koodi. Kui salvestatud koodid katki lähevad, hakka skripte käsitsi kirjutama, sest salvestatud lokaatorid harva kasutajaliidese muutmist üle elavad.

Kõik käivitatakse üks kord, kõik muutub igas sprindis ja kõik hinnatakse visuaalselt. Uuriv testimine, kasutatavuse ülevaade ja ühekordsed kontrollid maksavad skriptile rohkem kui käsitsi teostamine.

Jah. Tehisintellekti tööriistad saavad kirjalikud testid teisendada käivitatavateks skriptideks ja pakkuda elemendi muutumisel isetervendavaid lokaatoreid. RevVaadake iga genereeritud väidet, sest skript, mis kunagi ei vea, ei testi midagi.

Tehisintellekti abil töötavad tööriistad tuvastavad muudetud elemente ja värskendavad lokaatoreid ilma inimese sekkumiseta, vähendades seeläbi vigaste skriptide kõige levinumat põhjust. Meeskonnad vaatavad muudatused enne komplekti uuesti usaldamist siiski üle.

Võta see postitus kokku järgmiselt: