Tarkvara Testimine

Tarkvara testimise artefaktid – üksikasjalik juhend

30. oktoober 2021

Sisukord

  • Tarkvara testimise artefaktid
  • 1. Katseplaan
  • Testiplaanide tüübid
  • Testiplaani mall
  • Katseplaani juhised
  • 2. Test Suite
  • Mis on testkomplekt?
  • Mida sviit tähendab? Selgitab näide
  • Testsviitide tüübid
  • Test Suitesi omadused
  • Test Suites mallid
  • Erinevus testistsenaariumi, testikomplekti, katseplaani ja testjuhtumi vahel
  • Järeldus
  • 3. Testjuhtum
  • Mis on testjuhtum?
  • Kuidas kirjutada häid testjuhtumeid?
  • Testjuhtumi mall
  • Standardsete testjuhtumite näidisvorming
  • Testjuhtumite haldamise tööriistad
  • 4. Testi skript
  • Mis on testskript?
  • Testige skriptikeelt näitega
  • Millist koodi kasutatakse?
  • Kuidas luua testskripti?
  • Kuidas testiskripti käivitada?
  • 5. Testi andmed
  • Mis on testiandmed?
  • Testiandmete tähtsus
  • Testiandmete tüübid
  • Testimise andmed testimisel
  • Head testiandmete omadused
  • Testiandmete ettevalmistamise või genereerimise tehnikad
  • Testandmete genereerimise lähenemisviisid
  • Testi andmete genereerimise tööriistad
  • Testiandmete haldamine (TDM)
  • Katseandmete piirangud
  • Järeldus
  • Soovitatavad artiklid

4. Testi skript

Mis on testskript?

img 617dd4e96d22c

Testskript on defineeritud kui inimkeeles (käsitsi) või skriptimis-/programmeerimiskeeles (automatiseeritud) kirjutatud juhiste kogum, et kontrollida, kas testitav süsteem toimib ootuspäraselt.

See on osa testjuhtumist, millel võib olla mitu testskripti.

Testimismootorit koos testskriptide hoidlaga nimetatakse testrakmed.

Ühel testjuhtumil võib olla mitu testskripti, kui:

  • Testjuhtumid võivad olla käsitsi ja automatiseeritud skriptide abil.
  • Iga testskript pakub testjuhtumi testimiseks erineva testistsenaariumi.

Testskripti kood teostab tavaliselt üks või kaks korda järgmist.

  1. Tuvastage kasutajaliidese sisendelemendid
  2. Liikuge kasutajaliidese komponendile ja oodake ning kontrollige kuvatavaid sisendelemente.
  3. Kasutaja sisendi simulatsioon.
  4. Väljundelementide tuvastamine
  5. Tulemuse kuvamiseks oodake ja kontrollige väljundelemente.
  6. Lugege väljundelemendi tulemust.
  7. Väljundväärtuse väide, mis on võrdne eeldatava väärtusega.

Testige skriptikeelt näitega

Automatiseeritud testimist saab teha järgmistes keeltes:

  • TCL
  • Python
  • JavaScript
  • VBScript
  • Perl
  • Rubiin
  • Unixi Shelli skript

Mõned testimise automatiseerimise tööriistad või raamistikud, millel on oma skriptikeel, võivad genereerida testskripte ilma tegeliku kodeerimiseta.

Näide: Sikuli, mis on GUI automatiseeritud tööriist, kasutab testjuhtumite testimiseks Pythonit. Näiteks järgmine on Pythoni testskripti näide:

|_+_|

Testskripti näide

Kaaluge lisamisfunktsiooni automaatset testimist e-kaubanduse veebisaidil. Veebisaidi testskript täidab järgmist.

  1. Määrake, kuidas leida ostukorvi lehel nuppu Lisa toode ostukorvi. Nt. kasutades CSS-i elementide ID-sid.
  2. Laadige veebisaidi avaleht, klõpsake ikooni Ostukorv, veenduge, et ostukorvi leht ilmub, ja kuvage ostukorvi tühi ekraan.
  3. Otsige tootekataloogist mis tahes toodet. Näiteks lisage kleit. Seejärel vajutage Lisa ostukorvi.
  4. Määrake, kuidas ostukorvi lisatud kaupa kasutajale kuvatakse.
  5. Oodake ja kontrollige, kas kauba lisamine õnnestus ning ostukorvi ekraanil on näha piisavad andmed.
  6. Loe ostukorvi lehte.
  7. Kinnitage, et toote nimi ja selle andmed on nähtavad

Millist koodi kasutatakse?

Testskripti loomiseks võib olla kolme tüüpi kodeerimine:

Salvestamine/taasesitus

Kui kasutaja toimingud on salvestatud, ei ole vaja koodi kirjutada ja skript genereeritakse automaatselt.

Kuna aga skript luuakse automaatselt, võib loojal olla vaja sageli skripti kontrollida, et automatiseerimise käitumist täpsustada või asju parandada.

Sellegipoolest on see lihtsam kui skripti nullist kirjutamine, kuna skript on otse testija ees ja on üldiselt kodeeritud lihtsustatud keeltes, nagu VBScript.

Tõeline programmeerimiskeele kood

Isegi kui testijal võib olla võimalus koodi salvestada/esitada või luua lihtsat skriptimiskoodi, võivad testijad lõpuks õppida ise kodeerima.

Testijad saavad valida mis tahes programmeerimiskeele, olenemata tarkvara kirjutamiseks kasutatud programmeerimiskeelest. Näiteks isegi kui programm on kirjutatud Java keeles, kuid testija valdab Pythoni keelt, saab ta kirjutada Pythoni testskripti.

Märksõna/andmepõhine skriptimine

Testijad, kes pole aluskoodist teadlikud, määravad testid tavaliselt märksõnade abil. Teisest küljest rakendavad arendajad märksõnade testskripti koodi ja värskendavad neid.

See meetod on testijatele kasulik, kuid sõltub suuresti ressursside väljatöötamisest uute funktsioonide automaatseks testimiseks.

Kuidas luua testskripti?

Testskripti loomiseks on kolm võimalust:

1. Salvestamine/taasesitus

Algajatele sellised tööriistad nagu HP Kiirtesti professionaal võib aidata kvaliteedikontrolli spetsialistidel luua automatiseeritud testskripte.

Need tööriistad sooritavad veebisaidil või rakenduses toimingute komplekti, salvestavad kasutaja tegevused ja genereerivad testskripte nende toimingute automaatseks taasesitamiseks või kordamiseks.

Need võimaldavad teste redigeerida ja muuta, valides objekte ja määrates kasutaja toiminguid nende simuleerimiseks.

Selle meetodi simulatsiooni ja valideerimise erinevus on järgmine:

    Simulatsioon:Skripti simulatsiooni jäädvustamine on salvestus-/taasesitussüsteemide abil lihtne. Testijad teevad kasutaja toiminguid ja süsteem loob suhtelise skripti, kasutades lihtsaid skriptikeeli, nagu VBScript.Valideerimine:Kui simulatsioon on tehtud, on järgmine samm valideerimine, mis on problemaatiline. Liidese elementide tuvastamiseks ning eeldatavate ja tegelike väärtuste võrdlemiseks on skriptile lisatud selgesõnaliselt sammud. Neid valideerimisi ei saa salvestada, kuna need viiakse läbi järjestikku, kasutades automatiseerimissüsteemi GUI-d.

2. Päris programmeerimiskeele kood

Täiustatud testijad eelistavad salvestamise/taasesituse funktsioonide kasutamise asemel oma koodi kirjutada. Sellised raamistikud nagu Appium, Microsoft Coded UI ja Selenium võimaldavad testijatel kirjutada nullist testskripte, kasutades selliseid keeli nagu Java, C++, PHP või JavaScript.

Need keeled võivad, kuid ei pruugi olla sarnased testitavas rakenduses kasutatava keelega.

Raamistikud pakuvad hetkel testitava rakenduse puhul spetsiaalseid käske, nagu ekraanielementide tuvastamine, menüüvalikute valimine, klõpsamine, tippimine ja muu.

Enamik testimise automatiseerimise raamistikke toetab ka salvestamise/taasesituse skriptimist.

Selle meetodi simulatsiooni ja valideerimise erinevus on järgmine:

    Simulatsioon:Selenium pakub üherealisi käske objektide valimiseks, klõpsamiseks, ootamiseks või mis tahes muu kasutajaliidese toimingu tegemiseks. Seega, kui testija keelt oskab, on nende sisseehitatud käskude abil suhteliselt lihtne automatiseerida.Kinnitused:Nagu salvestamise/taasesituse puhul, on ka see osa koodi kirjutamise meetodi puhul keeruline. Kuigi seleen aitab leida süsteemi väljundobjektide liidese asukohta, ei toetata neid väiteid. See tähendab, et testijad peavad eeldatavate väärtuste kontrollimiseks koodi ise kirjutama. Erinevalt simulatsioonist, mis on välja töötatud ja hooldatud ainult üks kord kasutaja toimingu kohta, on valideerimiskoodil iga testitava liidese elemendi jaoks mitu osa.

3. Märksõna/andmepõhine skriptimine

Mõnes testimistööriistas, nagu Robot Framework, määravad testijad märksõnad, et genereerida testitavale süsteemile soovitud toimingute tegemiseks automaatselt skript.

Selle lähenemisviisi sarnane variant on andmepõhine lähenemisviis. Sama testi korratakse mitu korda ja iga kord erinevate andmeväärtuste või kasutajatoimingutega. Näiteks iga kord erinevate esemete ostmine erinevate võimalustega ja seejärel tulemuste analüüsimine.

Sel juhul esitatakse testija tabel, mis täpsustab testide kompleksi koos vastavate toimingute ja andmetega.

Seda tüüpi testskriptide genereerimise peamine eelis on see, et iga testskripti jaoks pole vaja kasutaja toiminguid korduvalt simuleerida. Selle asemel on need määratletud ühes kohas, et testija saaks neid mitmes testiskriptis kasutada.

Vaatleme a näide deebetkaardiga maksmise võimalust kasutades:

Märksõna checkout määrab, et skript peaks liikuma ostukorvi lehele ja võimaldama kasutajal sisestada makseandmed. Seejärel kirjutab arendaja selle funktsiooni rakendamiseks koodi. Testija pakutav tabel on järgmine:

Kaardi number Aegumine CVV Nimi kaardil
Sisestage makse üksikasjad 1234-1234-1234-12342/20***John

Tester võib pakkuda ka selliseid tekstiridu nagu:

  • Avage ostukorvi leht ja klõpsake vahekaarti makse üksikasjad.
  • Sisestage kaardi number
  • Sisestage kaardi aegumiskuupäev
  • Sisestage CVV
  • Sisestage kaardile nimi
  • Minge lehele Payment Gateway

Genereeritakse testskript, mis teab, kuidas ülaltoodud tekstiridu rakendada.

Selle meetodi simulatsiooni ja valideerimise erinevus on järgmine:

    Simulatsioon:Seda skripti osa saab hõlpsasti hallata ühe märksõnaga, mis määratleb kasutaja toimingu.Valideerimine:See osa nõuab iga kasutajaliidese osa jaoks mitut märksõna ja eeldatavaid andmeväärtusi, mis tuleb kinnitada. Testijal ei ole väga keeruline määrata erinevate funktsioonide jaoks erinevaid märksõnu, kuid see tähendab, et testijatel on piiratud valideerimisvõimalused ja nad peavad rohkemate valikute lisamiseks lootma arendusele.

Kuidas testiskripti käivitada?

Testija ei saa toota üldist testskripti, mis töötaks üheski automatiseerimissüsteemis, ega portida teste ühest süsteemist teise ilma testiraamistikule vastamata.

Automatiseerimisraamistikud, mida mõnikord nimetatakse testrakmed, käitavad testskripte.

Need raamistikud (Selenium, Appium, HP QTP ja Robot Framework) võivad võtta spetsifikatsioonide kohaselt kirjutatud skripti ja laadida kasutajaliidese, simuleerida kasutaja toiminguid liideses ja raporteerida tulemustest.

Testide läbiviimiseks kasutatakse järgmisi meetodeid:

    Pideva integratsiooni keskkond:Kui arendajad loovad tarkvara automaatselt, kasutades selliseid tööriistu nagu Jenkins või Teamcity, saab automaatseid testskripte käivitada ehitusprotsessi osana.

Seega käivituvad kasutajaliidese spetsiifilised automatiseeritud testid ja raporteerivad iga uue ehituse tulemused. Seda saab kasutada kergete testide jaoks, nagu ühikutestid.

    GUI-põhine raamistik:GUI-põhises raamistikus, nagu HP UFT, saavad testijad valida testid loendist ja klõpsata nuppu, et neid erinevatel aegadel käivitada või ajastada.Koodipõhine raamistik:Koodipõhistes raamistikes avavad testijad IDE (nagu Seleen) , kompileerida ja seejärel käivitada. Kui kood käivitub, aktiveeruvad testraamistiku osad ja sooritavad testitava liidese nõutavad toimingud.