Mi az a tesztszkript? Hogyan írjunk példákkal illusztrálva?

⚡ Okos összefoglaló

A szoftvertesztelésben a tesztszkript egy soronkénti végrehajtható utasításkészlet, amely egy alkalmazást vezérel és minden lépést ellenőriz. Ez az útmutató a három build metódust, egy újrafelhasználható sablont és egy működőképes... Selenium példa.

  • 📝 Alapvető definíció: Egy szkript meghatározza az egyes tranzakciókat, amelyeket végre kell hajtani, a pontos bemenetet, és az egyes lépések várható eredményét.
  • 🎛️ Három építési módszer: Felvétel és lejátszás, kulcsszó- vagy adatvezérelt szkriptelés, valamint kódírás közvetlenül egy programozási nyelven.
  • 🧱 Nyelvszabadság: A szkriptnyelvnek nem kell megegyeznie az alkalmazás nyelvével, tehát a Java a termék tesztelhető JavaScript ill Python.
  • 📋 Sablon fegyelem: Egy szabványos sablon rögzíti az azonosítót, az előfeltételeket, a tesztadatokat, a lépéseket, a várható eredményt és az állapotmezőket.
  • 🇧🇷 Szkript vs. eset: A teszteset egy manuális, lépésről lépésre végrehajtható eljárás, míg a tesztszkriptet egy eszköz automatikusan futtatja.
  • Minőségi szabályok: Tartsd minden szkriptet világosan, korlátozd az egyes lépéseket egyetlen műveletre, és a valós felhasználó szemszögéből tervezd meg az útvonalakat.

Mi az a tesztszkript

Mi az a tesztszkript a szoftvertesztelésben?

A tesztszkript egy soronkénti leírás a tesztelt alkalmazás validálásához végrehajtandó rendszertranzakciókról. Felsorolja az összes megteendő lépést az egyes lépések várható eredményével együtt.

Mivel végrehajtható, ugyanaz a szkript szisztematikusan lejátszható számos eszközön és builden keresztül. Egy használható szkript mindig rögzíti mind a ténylegesen beírandó bemenetet, mind a várt kimenetet.

Hogyan írjunk tesztszkriptet

Teszt szkript
Teszt szkript

Három különböző módon hozhat létre tesztszkriptet:

Felvétel és lejátszás

Ebben a módszerben a tesztelőnek egyáltalán nem kell kódot írnia, csak a felhasználó műveleteit kell rögzítenie. Később továbbra is kódolásra van szükség a hibák kijavításához vagy az automatizálási viselkedés finomhangolásához.

Ez a módszer egyszerűbb, mint egy teljes tesztszkriptet a semmiből írni, mert már rendelkezik a teljes kóddal. Leginkább olyan egyszerűsített programozási nyelvekben használják, mint például a VBScript.

Kulcsszó- vagy adatvezérelt szkriptelés

Ebben a módszerben világosan elválasztják a tesztelőket és a fejlesztőket. Az adatvezérelt szkripteknél a tesztelő kulcsszavak használatával határozza meg a tesztet a mögöttes kód ismerete nélkül.

Itt a fejlesztők feladata, hogy implementálják a kulcsszavakhoz tartozó tesztszkriptet, és szükség esetén frissítsék ezt a kódot. Tehát ennél a módszernél a tesztelőnek nem kell aggódnia a rendszer miatt. Azonban nagymértékben támaszkodnak a fejlesztési erőforrásokra minden olyan új funkcióhoz, amelyet automatikusan tesztelni szeretnének.

Kód írása programozási nyelven

Ha ezt a módszert választja, általában továbbra is rendelkezésre áll felvétel és lejátszás a szkript első vázlatának elkészítéséhez.

Előbb vagy utóbb azonban egy tesztelőnek túl kell lépnie a rögzítésen és lejátszáson, és meg kell tanulnia egyszerű szkripteket kézzel írni. Fontos megérteni, hogy kiválaszthatja a sajátját Programozási nyelv akkor is, ha a jelentkezésed be van írva Java.

Ez azonban nem jelenti azt, hogy be kell írnia a tesztszkripteket Java, amit nehéz lehet megtanulni. Ehelyett megírhatja a tesztszkripteket egy egyszerűbb nyelven, például JavaForgatókönyv vagy Ruby (vagy bármilyen egyszerűbb nyelv, amelyet használni szeretne).

Példa egy tesztszkriptre

Például egy webhely bejelentkezési funkciójának ellenőrzéséhez a tesztszkript a következőket teheti:

  • Adja meg, hogy az automatizálási eszköz hogyan találja meg a „Felhasználónév” és a „Jelszó” mezőket a bejelentkezési képernyőn. Tegyük fel, a CSS elemazonosítóik alapján.
  • Töltse be a weboldal kezdőlapját, majd kattintson a „bejelentkezés” linkre. Ellenőrizze, hogy a megjelenő bejelentkezési képernyő, valamint a „Felhasználónév” és „Jelszó” mezők láthatóak-e.
  • Írd be a „Charles” felhasználónevet és az „123456” jelszót, majd keresd meg a „Megerősítés” gombot, és kattints rá.
  • Meg kell adniuk, hogy a felhasználó hogyan találhatja meg a bejelentkezés után megjelenő üdvözlő képernyő címét, mondjuk a CSS elem azonosítója alapján.
  • Ellenőrizze, hogy az üdvözlő képernyő címe látható-e.
  • Olvassa el az üdvözlő képernyő címét.
  • Állapítsd meg, hogy a cím szövege megegyezik a következővel: „Üdvözöljük, Charles!”.
  • Ha a cím megfelel az elvárásoknak, akkor a tesztet sikeresként kell rögzíteni. Ellenkező esetben sikertelenként kell rögzíteni.

Minta tesztszkript Selenium ahol Java

A fenti felsorolás egy bejelentkezési tesztet ír le egyszerű angol nyelven. Itt ugyanaz a teszt látható futtatható szkriptként, a következő használatával: Selenium WebDriver és JUnitMinden felsorolásjel egy vagy két kódsorhoz tartozik.

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

Három részlet különbözteti meg a valódi forgatókönyvet a felvetttől:

  • A lokátorok explicit módon vannak megadva. Az elemek azonosító, nem pedig képernyőpozíció alapján találhatók, így a szkript túléli az elrendezés változását.
  • Az állítás a teszt. Az assertEquals nélkül a szkript csak kattint; az assertion dönti el, hogy sikeres vagy sikertelen.
  • A takarítás mindig fut. A driver.quit() függvény elengedi a böngészőt, ellenkező esetben egy sikertelen futás folyamatokat hagy maga után.

Ugyanez a struktúra érvényes bármely nyelven. Python ahol Selenium A hívások driver.find_element(By.ID, “email”) formátumúra változnak, és a következőt állítják be: actual == “Welcome Charles”.

Tippek tesztszkript létrehozásához

Íme néhány fontos tipp a tesztszkript létrehozásához:

Tartsd tisztán

A tesztszkriptednek elég egyértelműnek kell lennie ahhoz, hogy segítség nélkül is lefusson. Ha egy tesztelőnek folyamatosan a projekt tulajdonosától kell kérdezősködnie az alkalmazás részleteiről, az idő és erőforrások pazarlása.

Ennek elkerülése érdekében ellenőrizze, hogy a tesztszkript minden lépése világos, tömör és koherens-e. Ez segít a tesztelési folyamat zökkenőmentes lebonyolításában.

Legyen egyszerű

Létre kell hoznia egy tesztszkriptet, amely csak egy konkrét műveletet tartalmazhat a tesztelők számára. Ez biztosítja, hogy minden funkciót megfelelően teszteljenek, és hogy a tesztelők ne hagyják ki a szoftvertesztelési folyamat lépéseit.

Gondold át

A tesztszkript megírásához a felhasználó helyébe kell helyeznie magát, hogy eldöntse, mely útvonalakat tesztelje. Elég kreatívnak kell lennie ahhoz, hogy megjósolja a felhasználók által a rendszer vagy alkalmazás futtatása közben használt különféle útvonalakat.

Mikor kell használni a tesztszkript megközelítést?

Íme a tesztszkript használatának okai.

  • Egy tesztszkript a legmegbízhatóbb módja annak, hogy megerősítsük, hogy egyetlen lépés sem marad ki, és hogy az eredmények megfelelnek a megállapodott tesztelési tervnek.
  • Egy előre elkészített szkript sokkal kevesebb lehetőséget hagy a hibákra a végrehajtás során.
  • Amikor a tesztelők szabadon felfedeznek egy terméket, könnyen kihagyhatnak bizonyos funkciókat.
  • Egy tesztelő azt is feltételezheti, hogy egy függvény a várt eredményt hozta létre, ha nem.
  • Különösen akkor hasznos, ha a felhasználói teljesítmény fontos és specifikus.

Mi az a tesztszkript sablon?

A tesztszkript sablon egy újrafelhasználható, előre formázott dokumentum, amely tartalmazza azokat a mezőket, amelyeket a projekt minden szkriptjének ki kell töltenie. A szabványosítás határozza meg, hogy mennyire részletesek a tesztek, és garantálja, hogy egyetlen felülvizsgálónak sem kell találgatnia, mit jelent egy lépés.

Egy működőképes sablon a következő mezőket tartalmazza:

Mező Cél
Szkriptazonosító Egyedi azonosító, amelyet a következőhöz használnak: trachasználhatóság és hibák összekapcsolása
Cím Egy sor, amely kiírja, hogy mit ellenőriz a szkript
Modul vagy funkció A tesztelt alkalmazás területe
Előfeltételek Állapítsa meg, hogy a rendszernek be kell állnia az első lépés futtatása előtt
Teszt adat Pontos bemenetek, beleértve a hitelesítő adatokat és a határértékeket
Lépései Számozott műveletek, lépésenként egy művelet
Várható eredmény Az egyes lépések megfigyelhető eredménye
Valós eredmény Végrehajtáskor kitöltve
Állapot Sikeres, sikertelen, blokkolt vagy nem fut
Szerző és dátum Tulajdonjog és verzióelőzmények

Különbség a teszteset és a tesztszkript között

Íme a teszteset és a tesztszkript közötti fő különbségek:

Teszt eset Teszt szkript
Vizsgálati eset egy lépésről lépésre végzett eljárás, amelyet egy alkalmazás tesztelésére használnak. A tesztszkript egy alkalmazás automatikus teszteléséhez szükséges utasításkészlet.
A tesztesetek kézi tesztelési környezethez használatosak. A tesztszkriptet az automatizálási tesztelési környezetben használják.
Ez manuálisan történik. Ez a szkript formátum szerint történik.
A teszteset sablon tartalmazza a tesztazonosítót, a tesztadatokat, a vizsgálati eljárást, a tényleges és várt eredményeket stb. A Tesztszkriptben különböző parancsokat használhatunk a szkript fejlesztéséhez.

A tesztszkriptek előnyei és hátrányai

A szkriptelés befektetés. Ha tudod, hol térül meg, akkor melyik teszteket automatizáld először.

Előnyök

  • Megismételhető: ugyanazok a lépések futnak azonosan minden builden, ami a regressziós tesztelést praktikussá teszi.
  • Gyorsan skálázható: Egy olyan csomag, amihez egy tesztelőre van szükség egy napra, percek alatt futtatható, és akár egy éjszaka alatt is futtatható.
  • Következetes: A szkript soha nem unatkozik, nem hagy ki egyetlen lépést sem, és nem olvassa félre az eredményt.
  • Keresztplatform: Egyetlen szkript lejátszható böngészők, eszközök és operációs rendszerek között.
  • CI-kész: A szkriptek egy build folyamatba csatlakoznak, így minden commit automatikusan ellenőrzésre kerül.

Hátrányok

  • Magas beállítási költség: Egy szkript megírása és hibakeresése sokkal tovább tart, mint a teszt egyszeri kézi futtatása.
  • Karbantartási teher: egy megváltozott elemazonosító vagy egy újratervezett oldaltörés-szkript, amelyet aztán javítani kell.
  • Képességkövetelmény: A felvételen és lejátszáson túl a csapatnak programozási ismeretekre is szüksége van.
  • Vakok a váratlanra: Egy szkript csak azt ellenőrzi, amire utasítást kapott, így a vizuális és használhatósági hibák kicsúsznak a kezei közül.
  • Hamis önbizalom: A sekély szkriptek zöld halmaza elrejtheti a lefedettség valódi hiányosságait.

A gyakorlati szabály: írj szkriptet a stabil, ismétlődő, magas kockázatú útvonalakra, és vezess egy feltáró és használhatósági munkafüzetet.

Tesztszkript: Főbb tanulságok

  • A tesztszkriptek soronkénti leírást jelentenek, amely tartalmazza azokat a rendszertranzakciókat, amelyeket a tesztelés alatt álló alkalmazás vagy rendszer érvényesítéséhez végre kell hajtani.
  • A teszteset egy lépésről lépésre végzett eljárás, amelyet egy alkalmazás tesztelésére használnak, míg a tesztszkript egy alkalmazás automatikus teszteléséhez szükséges utasítások halmaza.
  • A tesztszkriptek létrehozásának három módja: 1) Felvétel/lejátszás 2) Kulcsszó-/adatvezérelt szkriptelés, 3) Írás Code A programozási nyelv használata.
  • A tesztszkriptnek egyértelműnek kell lennie, és létre kell hoznia egy tesztszkriptet, amely csak egy konkrét műveletet tartalmazhat a tesztelők számára.
  • Egy tesztszkript a legmegbízhatóbb módja annak, hogy megerősítsük, hogy egyetlen lépés sem marad ki, és hogy az eredmények megfelelnek a megállapodott tesztelési tervnek.
  • A Test Script Template egy újrafelhasználható formázott dokumentum, amely előre kiválasztott információkat tartalmaz, amelyek fontosak a használható tesztszkript létrehozásához.

GYIK

A teszteset egy manuálisan, lépésről lépésre leírt eljárás, amelyet emberi tesztelők számára írnak. A tesztszkript egy végrehajtható kód, amelyet egy eszköz automatikusan futtat. Egy teszteset gyakran egyetlen tesztszkriptté válik, miután automatizálták.

Kezdd a felvétellel és lejátszással, hogy lásd a struktúrát, majd szerkeszd a generált kódot. Amint a rögzített szkriptek elromlanak, térj át a kézi szkriptírásra, mert a rögzített lokátorok ritkán élik túl a felhasználói felület módosítását.

Bármi egyszer fut le, bármi minden sprintben változik, és bármit vizuálisan kell megítélni. A feltáró tesztelés, a használhatósági áttekintés és az egyszeri ellenőrzések többe kerülnek a szkriptnek, mint a manuális végrehajtás.

Igen. A mesterséges intelligencia eszközei képesek az írott teszteseteket futtatható szkriptekké alakítani, és önjavító lokátorokat javasolni, amikor egy elem megváltozik. RevTekintsd meg az összes generált állítást, mert egy soha meg nem hibázó szkript semmit sem tesztel.

A mesterséges intelligencia által támogatott eszközök emberi beavatkozás nélkül észlelik a megváltozott elemeket és frissítik a helymeghatározókat, kiküszöbölve a hibás szkriptek leggyakoribb okát. A csapatok továbbra is áttekintik a változtatásokat, mielőtt újra megbíznak a csomagban.

Foglald össze ezt a bejegyzést a következőképpen: