Sistemsko testiranje je vrsta testiranja programske opreme, ki preverja sistem kot celoto.
Vključuje integracijo vseh posameznih modulov in sestavnih delov programske opreme, ki ste jo razvili, da bi preverili, ali sistem deluje skupaj, kot je bilo pričakovano.
Sistemsko testiranje je bistven korak pri testiranju programske opreme, ki bo testnim ekipam omogočil, da preverijo kakovost zgradbe, preden bo ta izdana končnim uporabnikom.
V tem članku bomo raziskali sistemsko testiranje: kaj je, kako deluje, kdo izvaja sistemsko testiranje ter katere pristope in orodja lahko testne ekipe uporabijo za hitrejše in zanesljivejše sistemsko testiranje.
Skratka, tu boste našli vse, kar morate vedeti o testiranju sistemov.
Kaj je testiranje sistema?
Sistemsko testiranje je vrsta testiranja programske opreme, ki se vedno izvaja na celotnem sistemu. Preveri, ali sistem izpolnjuje njegove zahteve, ne glede na to, kakšne so.
Preizkuševalci izvajajo testiranje sistema, da bi ocenili funkcionalne in nefunkcionalne zahteve sistema, potem ko so bili posamezni moduli in komponente združeni.
Sistemsko testiranje je kategorija testiranja črne skrinjice, kar pomeni, da se z njim testirajo le zunanje delujoče funkcije programske opreme, ne pa tudi notranja zasnova aplikacije.
Testerji ne potrebujejo znanja o programiranju in strukturi programske kode, da bi med testiranjem sistema v celoti ocenili sestavljeno programsko opremo. Namesto tega preizkuševalci preprosto ocenjujejo delovanje programske opreme z vidika uporabnika.
1. Kdaj moramo opraviti testiranje sistema?
Testiranje sistema se izvaja po integracijskem testiranju in pred sprejemnim testiranjem. Ekipa za testiranje programske opreme redno izvaja testiranje sistema, da zagotovi, da sistem v ključnih fazah razvoja deluje, kot bi moral.
Nekateri primeri, ko se izvaja testiranje sistema, so:
● Med razvojem novih različic programske opreme.
● med zagonom aplikacije, ko poteka alfa in beta testiranje.
● Po končanem testiranju enote in integracijskem testiranju.
● Ko so zahteve za izgradnjo sistema izpolnjene.
● Ko so izpolnjeni drugi pogoji testiranja.
Tako kot pri drugih oblikah testiranja programske opreme je priporočljivo redno izvajati testiranje sistema, da se zagotovi, da programska oprema deluje, kot mora.
Pogostost testiranja sistema je odvisna od virov vaše ekipe ter pristopov in orodij, ki jih uporabljate za testiranje sistemske programske opreme.
2. Ko ne potrebujete sistemskih testov
Če še niste izvedli predhodnih testov, kot so testi za testiranje, testi enote in integracijski testi, potem še niste pripravljeni na začetek testiranja sistema.
Vedno je pomembno, da po končanem integracijskem testiranju izvedete sistemsko testiranje, vendar če naletite na napake in težave, zaradi katerih je sistemski test neuspešen, lahko prekinete sistemsko testiranje in se vrnete k razvoju in odpravljanju napak, preden nadaljujete z delom.
3. Kdo sodeluje pri testiranju sistema?
Sistemsko testiranje izvajajo testerji in ekipe za zagotavljanje kakovosti in ne razvijalci. Sistemsko testiranje upošteva le zunanje elemente programske opreme ali, z drugimi besedami, izkušnje uporabnikov, ki poskušajo dostopati do funkcij programske opreme.
To pomeni, da preizkuševalci, ki izvajajo testiranje sistemov, ne potrebujejo tehničnega znanja o računalniškem kodiranju, programiranju in drugih vidikih razvoja programske opreme, ki bi lahko zahtevali prispevek razvijalcev.
Edina izjema je avtomatizirano testiranje sistema, ki lahko zahteva nekaj prispevka razvijalcev, odvisno od tega, kako se ga lotite.
Kaj testiramo pri testiranju sistema?
Sistemsko testiranje je vrsta testiranja programske opreme, ki se uporablja za testiranje funkcionalnih in nefunkcionalnih vidikov programske opreme.
Uporablja se lahko za testiranje najrazličnejših funkcionalnosti in lastnosti, od katerih so številne podrobneje opisane v poglavju o vrstah testiranja sistema.
Nekateri vidiki programske opreme, ki jih preverja sistemsko testiranje, so podrobno opisani v nadaljevanju.
1. Funkcionalnost
Testerji s testiranjem sistema preverijo, ali različni vidiki dokončanega sistema delujejo, kot bi morali.
S predhodnim testiranjem je mogoče oceniti strukturo in logiko notranje kode ter povezovanje različnih modulov, vendar je sistemsko testiranje prvi korak, s katerim se na ta način preveri funkcionalnost programske opreme kot celote.
2. Integracija
Sistemsko testiranje preverja, kako različne komponente programske opreme delujejo skupaj in ali se med seboj nemoteno povezujejo.
Preizkuševalci lahko preizkušajo tudi zunanje periferne naprave, da ocenijo, kako te delujejo s programsko opremo in ali delujejo pravilno.
3. Pričakovani rezultati
Preizkuševalci uporabljajo programsko opremo tako kot uporabniki med testiranjem sistema, da preverijo rezultate programske opreme med redno uporabo. Preverijo, ali je rezultat za vsako funkcionalno in nefunkcionalno lastnost programske opreme takšen, kot je bil pričakovan.
Če se programska oprema ne obnaša tako, kot bi se morala, je očitno, da je potreben nadaljnji razvoj.
4. Napake in pomanjkljivosti
Sistemsko testiranje se uporablja za ocenjevanje funkcionalnosti in zanesljivosti programske opreme na več platformah in operacijskih sistemih.
Sistemski preizkuševalci preverjajo, ali je programska oprema brez napak, težav z delovanjem in združljivostjo na vseh platformah, na katerih naj bi delovala.
Merila za vstop in izstop
Vstopna in izstopna merila se uporabljajo pri testiranju sistema, da se ugotovi, ali je sistem pripravljen za testiranje sistema in ali so izpolnjene zahteve za testiranje sistema.
Z drugimi besedami, vstopna in izstopna merila pomagajo testerjem oceniti, kdaj začeti testiranje sistema in kdaj končati testiranje sistema.
Vstopna merila
Vstopna merila določajo, kdaj morajo testerji začeti s testiranjem sistema.
Vstopna merila se lahko med projekti razlikujejo glede na namen testiranja in uporabljeno strategijo testiranja.
Vstopna merila določajo pogoje, ki morajo biti izpolnjeni pred začetkom testiranja sistema.
1. Faza testiranja
V večini primerov je pomembno, da je sistem, ki se testira, že končal integracijsko testiranje in izpolnil izhodne zahteve za integracijsko testiranje, preden se začne testiranje sistema.
Testiranje integracije ne bi smelo odkriti večjih napak ali težav pri integraciji komponent.
2. Načrti in scenariji
Pred začetkom testiranja sistema je treba napisati, podpisati in odobriti načrt testiranja.
Prav tako boste morali vnaprej pripraviti testne primere in testne skripte, pripravljene za izvajanje.
3. Pripravljenost
Preverite, ali je testno okolje pripravljeno in ali so na voljo vse nefunkcionalne zahteve testa.
Merila pripravljenosti se lahko pri različnih projektih razlikujejo.
Merila za izstop
Izhodna merila določajo končno fazo testiranja sistema in določajo zahteve, ki morajo biti izpolnjene, da se testiranje sistema šteje za zaključeno.
Izhodna merila so pogosto predstavljena kot en sam dokument, ki preprosto določa rezultate te faze testiranja.
1. Izvedba
Najosnovnejše izhodno merilo za dokončanje testiranja sistema je, da so bili vsi testni primeri, opisani v načrtih testiranja sistema in vstopnih merilih, pravilno izvedeni.
2. Hrošči
Pred zaključkom testiranja sistema preverite, ali ni odprta nobena kritična ali prednostna napaka.
Napake srednje in nizke prioritete lahko ostanejo odprte, če se z njihovo izvedbo strinja stranka ali končni uporabnik.
3. Poročanje na spletni strani
Pred koncem testiranja sistema je treba predložiti izhodno poročilo. V tem poročilu so zabeleženi rezultati testiranja sistema in dokazano, da je testiranje izpolnilo zahtevana izhodna merila.
Življenjski cikel testiranja sistema
Življenjski cikel testiranja sistema opisuje vsako fazo testiranja sistema od faze načrtovanja do poročanja in zaključka.
Z razumevanjem vsake faze življenjskega cikla testiranja sistema boste lažje razumeli, kako izvajati testiranje sistema in kako deluje.
Faza 1: Ustvarite načrt testiranja
Prva faza testiranja sistema je izdelava načrta testiranja sistema.
Namen testnega načrta je opisati pričakovanja testnih primerov in strategijo testiranja.
V načrtu testiranja so običajno opredeljeni cilji in naloge testiranja, obseg, področja, rezultati, časovni razpored, vstopna in izstopna merila, testno okolje ter vloge in odgovornosti oseb, ki sodelujejo pri testiranju sistema programske opreme.
Faza 2: Ustvarite testne primere
Naslednja faza testiranja sistema je ustvarjanje testnih primerov.
Testni primeri določajo natančne funkcije, lastnosti in metrike, ki jih boste testirali med testiranjem sistema. Lahko na primer preverite delovanje določene funkcije ali čas nalaganja.
Za vsak testni primer navedite ID in ime testnega primera ter informacije o načinu testiranja tega scenarija in pričakovanem rezultatu testnega primera.
Tukaj lahko tudi opišete merila za uspešno/neuspešno izvedbo vsakega testnega primera.
Faza 3: Ustvarjanje testnih podatkov
Ko ste ustvarili testne primere, lahko ustvarite testne podatke, ki jih boste potrebovali za izvedbo testov.
Testni podatki opisujejo vhodne podatke, ki jih bo testna skupina potrebovala za preverjanje, ali bodo njeni ukrepi privedli do pričakovanih rezultatov.
Faza 4: Izvedba testnih primerov
Večina ljudi ob misli na testiranje sistema pomisli na to fazo: izvajanje testnih primerov ali samo testiranje.
Ekipa za testiranje bo izvedla vsak testni primer posebej, pri tem pa spremljala rezultate vsakega testa in beležila vse napake ali pomanjkljivosti, na katere bo naletela.
5. faza: Poročajte o napakah in jih odpravite
Po izvedbi testnih primerov testerji napišejo poročilo o testiranju sistema, v katerem podrobno opišejo vse težave in napake, ki so se pojavile med testiranjem.
Nekatere napake, ki jih odkrije test, so lahko majhne in jih je mogoče zlahka odpraviti, druge pa lahko zavrnejo izgradnjo. Odpravite te napake, ko se pojavijo, in ponovite cikel testiranja (ki vključuje druge vrste testiranja programske opreme, kot je testiranje “smoke”), dokler ne bo uspešno opravljeno brez večjih napak.
Razjasnitev nejasnosti: Testiranje sistema vs. testiranje integracije vs. testiranje uporabniškega sprejema
Veliko ljudi zamenjuje testiranje sistema z drugimi vrstami testiranja programske opreme, kot sta integracijsko testiranje in testiranje uporabniškega sprejema.
Čeprav imajo testiranje sistema, integracijsko testiranje in testiranje uporabniškega sprejema nekatere skupne značilnosti, gre za različne vrste testiranja, ki služijo različnim namenom, in vsako vrsto testiranja je treba izvajati neodvisno od drugih.
Kaj je integracijsko testiranje?
Integracijsko testiranje je vrsta testiranja programske opreme, pri kateri se moduli in komponente programske opreme testirajo kot skupina, da se ugotovi, kako dobro se integrirajo med seboj.
Integracijsko testiranje je prva vrsta testiranja programske opreme, ki se uporablja za testiranje posameznih modulov, ki delujejo skupaj.
Integracijsko testiranje izvajajo preizkuševalci v okolju QA in je bistvenega pomena, saj razkriva napake, ki se lahko pojavijo pri medsebojnem delovanju posamezno kodiranih komponent.
Kakšne so razlike med sistemskim in integracijskim testiranjem?
Sistemsko testiranje in integracijsko testiranje sicer testirata programsko opremo kot celoto, vendar sta različni vrsti testiranja programske opreme, ki delujeta ločeno.
Najprej se izvede integracijsko testiranje, po končanem integracijskem testiranju pa sistemsko testiranje. Druge glavne razlike med testiranjem sistema in integracijskim testiranjem so:
1. Namen:
Namen testiranja integracije je oceniti, ali posamezni moduli pri integraciji pravilno delujejo skupaj. Namen testiranja sistema je preveriti, kako sistem deluje kot celota.
2. Vrsta:
Integracijsko testiranje preverja zgolj funkcionalnost in ni vrsta sprejemnega testiranja.
Sistemsko testiranje pa preizkuša tako funkcionalne kot nefunkcionalne funkcije in spada v kategorijo sprejemnega testiranja (ne pa tudi uporabniškega).
3. Tehnika:
Pri integracijskem testiranju se uporabljata tako testiranje črne kot bele škatle, da se programska oprema oceni z vidika uporabnika in razvijalca, pri sistemskem testiranju pa se uporabljajo izključno metode testiranja črne škatle, da se programska oprema testira z vidika uporabnika.
4. Vrednost:
Integracijsko testiranje se uporablja za odkrivanje napak vmesnika, sistemsko testiranje pa za odkrivanje sistemskih napak.
Kaj je uporabniško sprejemljivo testiranje?
Uporabniško sprejemno testiranje ali UAT je vrsta testiranja programske opreme, ki ga izvaja končni uporabnik ali stranka, da preveri, ali programska oprema izpolnjuje želene zahteve.
Uporabniško sprejemno testiranje je zadnja oblika testiranja, ki jo je treba opraviti, preden se programska oprema premakne v produkcijsko okolje.
Pojavi se po končanem funkcionalnem testiranju, integracijskem testiranju in sistemskem testiranju.
Kakšne so razlike med testiranjem sistema in uporabniškim testiranjem?
S testiranjem uporabniškega sprejema in integracijskim testiranjem se preverja, ali programska oprema deluje, kot bi morala, obe vrsti testiranja pa se osredotočata na delovanje programske opreme kot celote.
Vendar pa je med testiranjem sistema in testiranjem uporabniškega sprejema veliko razlik:
1. Preizkuševalci:
Testiranje sistema izvajajo preizkuševalci (in včasih tudi razvijalci), medtem ko testiranje uporabniškega sprejema izvajajo končni uporabniki.
2. Namen:
Namen uporabniškega sprejemnega testiranja je oceniti, ali programska oprema izpolnjuje zahteve končnega uporabnika, namen sistemskega testiranja pa je preveriti, ali sistem izpolnjuje zahteve preizkuševalca.
3. Metoda:
Med testiranjem sistema so posamezne enote programske opreme integrirane in testirane kot celota. Med uporabniškim sprejemnim testiranjem končni uporabnik testira sistem kot celoto.
4. Faza:
Testiranje sistema se izvede takoj po zaključku integracijskega testiranja in pred uporabniškim sprejemnim testiranjem. Testiranje uporabniškega sprejema poteka tik preden je izdelek izdan za prve uporabnike.
Vrste testiranja sistema
Obstaja več kot 50 različnih vrst sistemskega testiranja, ki jih lahko uporabite, če želite preizkusiti delovanje programske opreme v celoti.
V praksi pa večina testnih skupin dejansko uporablja le nekaj teh vrst testiranja sistema.
Vrsta testiranja sistema je odvisna od številnih različnih dejavnikov, vključno z vašim proračunom, časovnimi omejitvami, prednostnimi nalogami in viri.
1. Testiranje funkcionalnosti
Testiranje funkcionalnosti je vrsta testiranja sistema, ki je namenjena preverjanju posameznih lastnosti in funkcij programske opreme ter ocenjevanju, ali delujejo, kot bi morale.
Ta vrsta testiranja sistema se lahko izvaja ročno ali samodejno in je ena od glavnih vrst testiranja sistema, ki jih izvajajo ekipe za testiranje.
2. Preizkušanje učinkovitosti
Testiranje zmogljivosti je vrsta testiranja sistema, ki vključuje testiranje, kako dobro deluje aplikacija med redno uporabo.
Imenuje se tudi testiranje skladnosti in običajno pomeni testiranje delovanja aplikacije, ko jo hkrati uporablja več uporabnikov.
Pri testiranju zmogljivosti preizkuševalci preverijo čas nalaganja ter napake in druge težave.
3. Testiranje obremenitve
Testiranje obremenitve je vrsta testiranja sistema, s katerim testerji ocenijo, kako dobro aplikacija prenaša velike obremenitve.
Preizkuševalci lahko na primer preverijo, kako dobro aplikacija deluje, ko veliko uporabnikov hkrati poskuša opraviti isto nalogo, ali kako dobro aplikacija opravlja več nalog hkrati.
4. Preizkušanje skalabilnosti
Testiranje razširljivosti je vrsta testiranja sistema programske opreme, ki preverja, kako dobro se programska oprema razširja za potrebe različnih projektov in skupin.
To je vrsta nefunkcionalnega testiranja, ki vključuje ocenjevanje delovanja programske opreme za različno število uporabnikov ali pri uporabi na različnih lokacijah in z različnimi viri.
5. Testiranje uporabnosti
Testiranje uporabnosti je vrsta testiranja sistema, ki vključuje testiranje uporabnosti aplikacije.
To pomeni, da preizkuševalci ocenijo in ovrednotijo, kako enostavno je krmariti po aplikaciji in jo uporabljati, kako intuitivne so njene funkcije in ali obstajajo napake ali težave, ki bi lahko povzročile težave z uporabnostjo.
6. Preizkušanje zanesljivosti
Testiranje zanesljivosti je vrsta testiranja integracije sistema, ki preverja zanesljivost programske opreme.
Zahteva preizkušanje funkcij in delovanja programske opreme v nadzorovanem okolju, da se oceni, ali so rezultati enkratnih preizkusov zanesljivi in ponovljivi.
7. Testiranje konfiguracije
Testiranje konfiguracije je vrsta testiranja sistema, ki ocenjuje, kako dobro sistem deluje ob uporabi različnih vrst programske in strojne opreme.
Namen testiranja konfiguracije je določiti najboljšo konfiguracijo programske in strojne opreme, da se čim bolj poveča zmogljivost sistema kot celote.
8. Varnostno testiranje
Varnostno testiranje je vrsta sistemskega testiranja, ki ocenjuje delovanje programske opreme z vidika varnosti in zaupnosti.
Namen varnostnega testiranja je ugotoviti morebitne ranljivosti in nevarnosti, ki bi lahko bile vir vdorov v podatke in kršitev, zaradi katerih bi lahko izgubili denar, zaupne podatke in druga pomembna sredstva.
9. Testiranje migracije
Preizkušanje migracije je vrsta testiranja sistema, ki se izvaja na sistemih programske opreme, da se ugotovi, kako bi lahko sodelovali s starejšimi ali novejšimi infrastrukturami.
Preizkuševalci lahko na primer ocenijo, ali se lahko starejši elementi programske opreme prenesejo na novo infrastrukturo brez napak in pomanjkljivosti.
Kaj potrebujete za začetek testiranja sistema
Pred začetkom testiranja sistema je pomembno, da imate jasen načrt za združevanje virov in orodij, potrebnih za uspešen in nemoten postopek testiranja sistema.
Gre za razmeroma zahteven postopek, ne glede na to, ali testirate ročno, samodejno ali uporabljate oba pristopa, zato je najboljši način za zmanjšanje tveganja zamud in motenj med testiranjem, da veste, kaj boste potrebovali, preden začnete.
1. Stabilna sestava, ki je skoraj pripravljena za zagon
Sistemsko testiranje je ena od zadnjih stopenj testiranja programske opreme pred izdajo: edina vrsta testiranja, ki se izvaja po sistemskem testiranju, je uporabniško sprejemno testiranje.
Pomembno je, da ste pred začetkom testiranja sistema že izvedli druge vrste testiranja programske opreme, vključno s funkcionalnim, regresijskim in integracijskim testiranjem, ter da je vaša programska oprema izpolnila izhodna merila za vsako od teh vrst testiranja programske opreme.
2. Načrti testiranja sistema
Pred začetkom testiranja pripravite uradno dokumentacijo, ki opisuje namen in cilje testov, ki jih boste izvedli, ter opredeljuje vstopna in izstopna merila testiranja sistema.
Ta načrt lahko uporabite za opis posameznih testnih scenarijev, ki jih boste preizkusili, ali za opredelitev pričakovanj glede delovanja sistema.
Načrt testiranja sistema mora testerjem olajšati načrtovanje in izvajanje testiranja sistema z upoštevanjem načrta.
3. Testni primeri
Pomembno je, da pred začetkom testiranja sistema začrtate testne primere, ki jih boste testirali med testiranjem sistema.
Testni primeri ne smejo biti izčrpni, vendar morajo biti dovolj popolni, da lahko preizkusijo najpomembnejše funkcionalne in nefunkcionalne lastnosti sistema in da omogočajo natančen pregled delovanja sistema kot celote.
4. Spretnosti in čas
Pred začetkom testiranja sistema se prepričajte, da ste za testiranje sistema namenili dovolj sredstev.
Testiranje sistema lahko traja razmeroma dolgo, zlasti v primerjavi z drugimi vrstami testiranja, kot je na primer “smoke testing”.
Določiti morate, katere osebe v vaši ekipi bodo izvajale testiranje in koliko časa bodo morale rezervirati za začetek testiranja.
5. Orodja za testiranje sistema
Sistemsko testiranje lahko izvajate ročno ali avtomatizirano, vendar je ne glede na to, kateri pristop k testiranju izberete, mogoče racionalizirati in optimizirati delovne postopke sistemskega testiranja z uporabo orodij in tehnologije, ki pomagajo pri različnih vidikih testiranja.
Za avtomatizacijo nekaterih sistemskih testov lahko na primer uporabite orodja umetne inteligence, za spremljanje napredka in rezultatov testiranja pa programsko opremo za upravljanje dokumentov.
Postopek testiranja sistema
Preden začnete, je pomembno, da razumete postopek testiranja sistema in način izvajanja posameznih korakov.
Ta načrt po korakih sledi življenjskemu ciklu testiranja sistema, ki je opisan prej, vendar podrobneje opisuje posamezne korake, ki so vključeni v testiranje sistema.
Korak 1: Ustvarite načrt testiranja sistema
Pred začetkom testiranja sistema ustvarite načrt testiranja sistema. Vsak načrt testiranja sistema bo drugačen, vendar mora načrt vključevati vsaj opis namena testiranja ter ustrezna vstopna in izstopna merila, ki določajo, kdaj se testiranje začne in kdaj se konča.
Korak 2: Ustvarite testne scenarije in testne primere
Naslednja faza je oblikovanje testnih scenarijev in testnih primerov, ki natančno opisujejo, kaj boste testirali in kako boste to testirali.
Vključite resnične testne scenarije, ki preverjajo, kako programska oprema deluje pri tipični uporabi, in za vsak testni primer, ki ga napišete, vključite podrobnosti o merilih za uspešno in neuspešno izvedbo testa ter o pričakovanih rezultatih.
Korak 3: Ustvarite zahtevane testne podatke
Ustvarite zahtevane testne podatke za vsak testni scenarij, ki ga nameravate izvesti.
Testni podatki, ki jih potrebujete za vsak testni scenarij, ki ga nameravate izvesti, so vsi testni podatki, ki vplivajo ali na katere vpliva vsak posamezen test.
Testne podatke lahko ustvarite ročno, če želite prihraniti čas in imate za to dovolj sredstev, pa lahko to fazo avtomatizirate.
Korak 4: Nastavitev testnega okolja
Naslednji korak je priprava okolja za testiranje, ki je pripravljeno za izvajanje testov sistema. Testiranje sistema bo imelo boljše rezultate, če boste vzpostavili testno okolje, podobno produkcijskemu.
Prepričajte se, da testno okolje vključuje vso programsko in strojno opremo, ki jo želite preizkusiti med konfiguracijskim in integracijskim testiranjem.
Korak 5: Izvedba testnih primerov
Ko nastavite okolje za testiranje, lahko izvedete testne primere, ki ste jih ustvarili v drugem koraku.
Te testne primere lahko izvedete ročno ali pa jih avtomatizirate s skripto.
Med izvajanjem vsakega testnega primera si zapišite rezultate testa.
Korak 6: Priprava poročil o napakah
Ko izvedete vse opisane testne primere, lahko rezultate vsakega testa uporabite za pisanje poročil o napakah, v katerih podrobno opišete vse napake in pomanjkljivosti, ki ste jih odkrili med testiranjem sistema.
To poročilo posredujte razvijalcem, da popravijo in odpravijo napake. Faza popravljanja napak lahko traja nekaj časa, odvisno od zahtevnosti in resnosti ugotovljenih napak.
Korak 7: Ponovno testiranje po popravilu napak
Ko razvijalci programske opreme po odpravi napak pošljejo programsko opremo nazaj v nadaljnje testiranje, je pomembno, da sestavljeno programsko opremo ponovno preizkusite.
Bistveno je, da se testiranje sistema ne sme šteti za zaključeno, dokler ta korak ni opravljen brez hroščev ali napak.
Ni dovolj, če domnevamo, da so bile odpravljene vse napake in da je sestava zdaj pripravljena za prehod na uporabniško testiranje.
Korak 8: Ponovite cikel
Zadnji korak je, da ta cikel ponovite tolikokrat, da opravite sedmi korak, ne da bi ugotovili napake ali pomanjkljivosti.
Ko je test sistema uspešno opravljen in so izpolnjena vsa izhodna merila, opisana v načrtu testiranja sistema, je čas, da preidete na uporabniško sprejemno testiranje in končno na izdajo izdelka.
Ročni in avtomatizirani testi sistema
Tako kot druge vrste testiranja programske opreme lahko tudi testiranje sistemov ročno izvajajo testerji ali pa je vsaj delno avtomatizirano s programsko opremo. Avtomatizacija testiranja programske opreme poenostavi postopek testiranja ter prihrani čas in denar, vendar je včasih pomembno izvajati tudi ročno testiranje sistema.
Ročno in avtomatizirano testiranje sistema imata prednosti in slabosti, ki jih je treba razumeti, preden se odločite, katero vrsto testiranja sistema želite izvesti.
Ročno testiranje sistema
Ročno testiranje sistema pomeni ročno izvajanje testiranja sistema brez avtomatizacije dela celotnega postopka testiranja.
Ročno testiranje sistema traja dlje kot avtomatizirano testiranje, vendar to pomeni tudi, da je postopek testiranja odvisen od človeškega vpogleda in presoje.
Ročno testiranje se pogosto kombinira z avtomatiziranim testiranjem, da bi povečali učinkovitost in natančnost testiranja sistema in drugih vrst testov programske opreme.
1. Prednosti ročnega testiranja sistema
Izvajanje ročnega testiranja sistema ima številne prednosti, ki pojasnjujejo, zakaj se številne ekipe za testiranje odločijo, da bodo tudi po avtomatizaciji testnih skript nadaljevale z ročnim in avtomatiziranim testiranjem.
Kompleksnost
Ročno testiranje je primerno za testiranje zapletenih testnih scenarijev, ki jih ni vedno enostavno avtomatizirati.
Če so zahteve za testiranje sistema zapletene ali podrobne, je morda lažje ročno testirati te scenarije, kot pa zanje pisati avtomatizirane testne skripte.
Raziskovalno testiranje
Ko avtomatizirate katero koli vrsto testiranja programske opreme, test sledi scenariju in preizkusi samo tiste funkcije, za katere ste ga programirali.
Pri ročnem testiranju pa se lahko odločite za raziskovanje različnih funkcij, kadar vas zanimajo, na primer če opazite nekaj, kar v vmesniku programske opreme ni videti tako, kot bi moralo biti.
Enostavnost
Ko enkrat napišete avtomatizirane testne skripte, je avtomatizirano testiranje enostavno. Vendar pa je za pisanje testnih skript običajno potrebno znanje in izkušnje razvijalcev, manjše ekipe za testiranje pa morda nimajo dovolj sredstev, da bi to izvedle.
Ročno testiranje ne zahteva tehničnega znanja ali poznavanja kodiranja.
2. Izzivi ročnega testiranja sistema
Ročno testiranje prinaša tudi svoje izzive. Ekipe za testiranje programske opreme, ki izvajajo le ročno testiranje sistema brez vključevanja elementov avtomatiziranega testiranja, se lahko znajdejo v slabšem položaju v primerjavi z ekipami, ki uporabljajo oba pristopa.
Časovno potraten
Kot lahko pričakujete, je ročno testiranje sistema bolj zamudno kot avtomatizirano testiranje sistema. To je slabost zlasti takrat, ko je potrebno agilno testiranje.
To pomeni, da je manj praktično izvajati redne ali zelo temeljite teste sistema, kar lahko vpliva na zanesljivost in obseg rezultatov.
Človeška napaka
Pri ročnem testiranju, ki ga izvajajo ljudje, je vedno možna človeška napaka. Ljudje delajo napake, se dolgočasijo ali so raztreseni, kar je še posebej verjetno pri izvajanju ponavljajočih se in dolgotrajnih testov, ki lahko bolj utrudijo preizkuševalce.
Pokritost testov
Ročni preizkusi ne zagotavljajo enake širine pokritosti kot avtomatizirani preizkusi.
Ker morajo preizkuševalci sami izvajati ročne teste, je pri ročnem testiranju v primerjavi z avtomatiziranim testiranjem nemogoče pokriti toliko prostora, kar lahko privede do manj celovitih rezultatov testiranja.
Kdaj uporabiti ročno testiranje programske opreme
Ročnega testiranja programske opreme ni nadomestilo avtomatizirano testiranje, zato je ročno testiranje še vedno pomembna faza postopka testiranja sistema.
Ročno testiranje je primerno za manjše ekipe programske opreme, ki morda nimajo dovolj sredstev za samostojno avtomatizacijo testiranja sistema, in tudi ekipe, ki so uvedle avtomatizirano testiranje, morajo uporabljati ročno testiranje za ocenjevanje bolj zapletenih testnih scenarijev ali testnih primerov, kjer raziskovalno testiranje ponuja vrednost.
Avtomatizacija testiranja sistema
Testiranje sistema je mogoče avtomatizirati tako, da sami napišete testne skripte ali pa uporabite hiperavtomatizacijska orodja in postopke za delno ali popolno avtomatizacijo postopka testiranja sistema.
Najpogosteje se avtomatizirano testiranje sistema kombinira z ročnim testiranjem sistema, da se zagotovi najboljše razmerje med pokritostjo, učinkovitostjo in natančnostjo.
1. Prednosti avtomatizacije testiranja sistema
Avtomatizirano testiranje sistemov je vse bolj priljubljeno, deloma zaradi široke razpoložljivosti orodij za avtomatizirano testiranje, ki omogočajo enostavno avtomatizacijo testiranja sistemov programske opreme.
Avtomatizirano testiranje sistema ima veliko prednosti, zlasti v kombinaciji z ročnim testiranjem.
Učinkovitost
Avtomatizirano testiranje je učinkovitejše od ročnega testiranja, saj je mogoče avtomatizirane teste izvajati v ozadju, medtem ko testerji in razvijalci opravljajo druge naloge.
Tako je bolj praktično redno izvajati avtomatizirano testiranje in zmanjšati potrebo po dodelitvi velikega števila virov za testiranje po tem, ko so bili avtomatizirani testi že vzpostavljeni.
Večja pokritost testov
Avtomatizirani testi lahko pogosto pokrijejo večje področje izdelave programske opreme kot ročni testi, predvsem zaradi njihove večje učinkovitosti.
Pri ročnem testiranju sistema morajo testerji izbrati najpomembnejše testne primere, ki jih bodo ocenili, medtem ko avtomatizirano testiranje ekipam za programsko opremo omogoča, da v krajšem času preizkusijo več scenarijev.
Odpravite človeško napako
Avtomatizirani testi niso izpostavljeni človeškim napakam tako kot ročni testi.
Pri izvajanju ponavljajočih se in dolgotrajnih testov, ki lahko utrudijo ročne preizkuševalce, samodejni testi še naprej preizkušajo programsko opremo z enako hitrostjo in natančnostjo.
Poleg tega se ljudje pogosteje osredotočajo na iskanje enostavnih napak kot težkih, zaradi česar lahko spregledamo nekatere pomembne, vendar manj očitne napake.
Standardizacija testiranja
Ko napišete skripto za avtomatizacijo testiranja sistema, ustvarite niz navodil, ki jih mora orodje za testiranje programske opreme upoštevati.
S tem učinkovito standardizirate teste programske opreme, ki jih izvajate, in zagotovite, da vsakič, ko izvajate test, izvajate isti test in testirate programsko opremo po enakih standardih.
2. Izzivi avtomatizacije testiranja sistemov
Avtomatizirano testiranje sistema ni popolno, zato se za najboljše rezultate pogosto izvaja skupaj z ročnim testiranjem. Je učinkovitejše od ročnega testiranja, vendar morda ne ponuja tako globokih ali kakovostnih podatkov.
Prilagodljivost
Ker avtomatizirano testiranje vedno sledi scenariju, ni možnosti za testiranje mehanizmov ali funkcij zunaj tistih, ki so zapisane v scenariju testiranja.
To sicer omogoča doslednost, vendar pa pomeni, da lahko spregledamo napake in pomanjkljivosti, če jih nismo upoštevali v fazi načrtovanja.
Viri
Avtomatizirani testi zahtevajo čas in sredstva za vzpostavitev.
Čeprav je mogoče sistemsko testiranje avtomatizirati z uporabo programske opreme in orodij, ki so na voljo že na voljo, jih je večinoma treba prilagoditi zahtevam vaše programske opreme.
Tradicionalno je avtomatizirano testiranje pomenilo namenjanje tehničnih virov za pravilno pisanje in izvajanje avtomatiziranih testov, čeprav vse več orodij, kot je ZAPTEST, zagotavlja napredno avtomatizacijo programske opreme računalniškega vida v vmesniku brez kode.
Kompleksni testni primeri
V večini primerov ni mogoče 100-odstotno avtomatizirati testiranja sistema, ne da bi se pri tem zanašali na ročno testiranje.
To še posebej velja, kadar morate testirati zapletene testne scenarije, ki jih večina orodij za avtomatizacijo ne more testirati.
3. Kdaj uvesti avtomatizirano testiranje sistema
Če ima vaša ekipa za testiranje na voljo sredstva za izvajanje avtomatiziranega testiranja, bodisi s pisanjem testnih skript po meri bodisi z uporabo orodij za avtomatizacijo, lahko avtomatizirano testiranje poveča učinkovitost in zanesljivost testiranja sistema.
Vendar je vedno pomembno, da nadaljujete z ročnim testiranjem, tudi če ste prepričani v kakovost in pokritost samodejnih testov, saj samodejno testiranje ne more ponoviti globine in vpogleda, ki ju lahko ponudi le ročno testiranje.
Zaključek: Avtomatizirano testiranje sistema proti ročnemu testiranju sistema
V fazi testiranja pri razvoju programske opreme sta pomembna tako avtomatizirano kot ročno testiranje sistema.
Medtem ko lahko manjša podjetja zaradi dodatnih naložb ali virov, ki jih zahteva avtomatizirano testiranje, začnejo samo z ročnim testiranjem sistema, večina testnih ekip sprejme kombiniran pristop, ki vključuje avtomatizirano testiranje takoj, ko je to praktično mogoče.
Z združevanjem avtomatiziranega in ročnega testiranja lahko testne ekipe povečajo učinkovitost, natančnost in prilagodljivost, ne da bi pri tem ogrozile katerega koli od rezultatov testiranja sistema.
Najboljše prakse za testiranje sistema
Če želite optimizirati delovne postopke testiranja sistema za največjo učinkovitost in natančnost, je najboljši način za to upoštevanje najboljših praks testiranja sistema.
Z najboljšimi praksami lahko zagotovite, da v fazi testiranja sistema ničesar ne spregledate, in poskrbite, da bodo vaši testi sistema vedno dosledno na visoki ravni.
1. Ustrezno načrtujte teste sistema
Vsi testi sistemov se morajo začeti z uradnim načrtom testiranja, ki jasno opisuje testne primere in pristope, ki bodo uporabljeni med testiranjem.
Če začnete z uradnim načrtom, se zmanjša tveganje zamud med testiranjem in preprečijo motnje, ki lahko nastanejo zaradi nejasnosti.
Zagotavlja, da vse zadevne strani vedo, kakšna je njihova vloga in za kaj so odgovorne.
2. Vedno napišite podrobna in natančna poročila.
Pomembno je, da je testiranje sistema vedno dobro dokumentirano, sicer testerji in razvijalci programske opreme morda ne bodo zlahka uporabili rezultatov vaših testov.
Za vsako opravljeno testiranje napišite jasna in temeljita poročila, v katerih podrobno opišete vse najdene napake, natančno pokažete, kako jih ponoviti, in navedete, kako naj bi se programska oprema obnašala, ko bo odpravljena.
Poskrbite, da bodo vaša poročila o napakah nedvoumna in enostavna za razumevanje.
3. Preizkus na pravih napravah
Ekipe za testiranje se pogosto odločijo, da v testnem okolju replicirajo različne naprave, ne da bi dejansko testirali programsko opremo na različnih napravah.
Če izdelujete programsko opremo za uporabo na različnih platformah, kot so mobilni telefoni, tj. Android, iOS itd., tablični računalniki, splet in namizni računalniki, tj. Windows, Linux itd., jih preizkusite na teh napravah, da ocenite, kako se obnesejo pri različnih obremenitvah in ali lahko težave z omrežno povezavo povzročijo težave na določenih platformah.
4. Avtomatizacija testiranja, kjer je to mogoče
Za najboljše rezultate je običajno najbolje kombinirati ročno testiranje sistema z avtomatiziranim testiranjem sistema.
Če še niste poskusili z avtomatiziranim testiranjem sistemske integracije, lahko s preizkušanjem orodij RPA + Software Testing, ki vam lahko pomagajo avtomatizirati vsaj nekaj sistemskih testov, povečate pokritost in učinkovitost, ne da bi pri tem ogrozili natančnost svojih rezultatov.
5. Preizkusite eno funkcijo na primer
Ko pišete testne primere, se osredotočite na testiranje le ene funkcije na primer, če je to mogoče.
Tako je te testne primere lažje ponovno uporabiti v prihodnjih testih, razvijalci pa lažje razumejo, kako nastajajo napake in katere funkcije jih sprožijo.
Vrste rezultatov sistemskih testov
Ko izvajate sistemske teste, je pomembno vedeti, kakšne rezultate lahko pričakujete od testov in kako te rezultate uporabiti za obveščanje o prihodnjem razvoju in testiranju.
Rezultati testiranja so dejansko sredstva in informacije, ki jih pridobite z izvajanjem testov sistema.
1. Rezultati preskusov
Rezultati testiranja vključujejo podatke o tem, kako se je programska oprema obnesla v vsakem testnem primeru, ki ste ga izvedli, in primerjavo, kako ste pričakovali, da se bo programska oprema obnesla.
Ti rezultati pomagajo ugotoviti, ali je vsak testni primer uspešno ali neuspešno opravljen, saj če je programska oprema delovala na način, ki ga niste pričakovali, to običajno pomeni, da je bila neuspešna.
2. Dnevnik napak
Dnevniki napak so dnevniki vseh napak in pomanjkljivosti, ki so bile odkrite med testiranjem sistema.
V dnevniku napak so navedene vse odkrite napake, skupaj z drugimi pomembnimi informacijami, kot so prednostna naloga vsake napake, resnost vsake napake ter simptomi in opis napake.
Zapišite tudi datum odkritja napake in druge informacije, ki bodo razvijalcem pomagale pri ponovnem odkrivanju napake.
3. Poročilo o preskusu
Poročilo o testiranju je običajno del izhodnih meril za zaključek testiranja sistema in običajno vključuje povzetek opravljenega testiranja, priporočila GO/No-Go, informacije o fazi in iteraciji ter datum testiranja.
V poročilo lahko vključite tudi druge pomembne informacije o rezultatih preskusa ali priložite kopijo seznama napak.
Primeri sistemskih testov
Sistemski testi so namenjeni testiranju sistema kot celote, kar pomeni, da testirajo vse različne programske enote, ki delujejo skupaj kot sistem.
Primeri sistemskih testov vam lahko pomagajo bolje razumeti, kaj je sistemski test in kaj preverja.
1. Preizkušanje funkcionalnosti
Ekipa inženirjev programske opreme pripravlja novo aplikacijo za nakupovanje, ki trgovinam z živili pomaga učinkoviteje pobirati in pakirati spletna naročila.
Aplikacija je sestavljena iz več različnih modulov, od katerih je bil vsak testiran samostojno v testiranju enot in skupaj z drugimi moduli v integracijskem testiranju.
Pri sistemskem testiranju se vsi moduli prvič testirajo skupaj, testerji pa oblikujejo testne primere, s katerimi ocenijo vsako posamezno funkcijo aplikacije in preverijo, ali deluje po pričakovanjih, ko vsi moduli delujejo skupaj.
2. Testiranje časa nalaganja
Ekipa preizkuševalcev programske opreme preizkuša, kako hitro se aplikacija naloži na različnih točkah pod različnimi stopnjami obremenitve.
Oblikujejo testne primere, v katerih je opisano, pod kakšno obremenitvijo je aplikacija (na primer, koliko uporabnikov jo uporablja hkrati) ter katere funkcije in lastnosti poskuša uporabnik naložiti.
Med testiranjem sistema se časi obremenitve zabeležijo v poročilo o testiranju in časi obremenitve, ki se zdijo prepočasni, sprožijo drugo fazo razvoja.
3. Konfiguracija za preskušanje
Pri izdelavi videoigre, ki jo je mogoče uporabljati z različnimi perifernimi napravami, kot so računalniška miška, slušalke za navidezno resničnost in igralna podloga, preizkuševalci programske opreme opravijo testiranje konfiguracije, da preverijo, kako dobro vsaka od teh perifernih naprav deluje z igro.
V vsakem testnem scenariju preizkusijo vsako periferno napravo posebej in skupaj ter zapišejo, kako se vsaka periferna naprava obnese na različnih točkah v igri in ali je zmogljivost še slabša od pričakovane.
Vrste napak in hroščev, odkritih s testiranjem sistema
Pri testiranju sistema boste s testi, ki jih izvajate, odkrili napake in hrošče v programski opremi, ki niso bili odkriti pri testiranju enot in integracijskem testiranju.
Med testiranjem sistema je mogoče odkriti različne vrste napak, včasih zato, ker so bile prej spregledane, običajno pa zato, ker se pojavijo šele, ko sistem deluje kot celota.
1. Napake pri delovanju
Sistemsko testiranje lahko pokaže napake v hitrosti, doslednosti in odzivnem času programske opreme.
Preizkuševalci lahko ocenijo, kako programska oprema deluje med izvajanjem različnih nalog, in zabeležijo morebitne napake ali zamude, ki se pojavijo med uporabo. Gre za napake v delovanju, ki se lahko štejejo za dovolj resne, da zahtevajo nadaljnji razvoj, ali pa tudi ne.
2. Varnostne napake
Med testiranjem sistema je mogoče odkriti varnostne napake, ki opozarjajo na ranljivosti v varnostni plasti sistema.
Varnostno testiranje poteka v fazi testiranja sistema in se lahko uporablja za odkrivanje napak pri šifriranju, logičnih napak in ranljivosti XSS v programski opremi.
3. Napake v uporabnosti
Napake uporabnosti so napake, ki otežujejo uporabo aplikacije na predvideni način. Uporabnikom lahko povzročijo nevšečnosti, zaradi katerih lahko uporabniki opustijo aplikacijo.
Nekateri primeri napak uporabnosti vključujejo zapleten navigacijski sistem ali postavitev, ki ni enostavna za navigacijo po vseh vidikih platforme.
Z orodji za uporabnost lahko napake odkrijete že prej v postopku testiranja, lahko pa se pokažejo tudi med testiranjem sistema.
4. Komunikacijske napake
Komunikacijske napake se pojavijo, ko del programske opreme poskuša komunicirati z drugim modulom in zaradi napake ta komunikacija ne uspe.
Če na primer programska oprema pozove uporabnika, naj prenese novo posodobitev, ko pa uporabnik klikne na gumb za prenos posodobitve, posodobitve ni mogoče najti, je to komunikacijska napaka.
5. Obravnava napak
Napake se včasih pojavijo, tudi če programska oprema deluje, kot bi morala. Morda zato, ker komponenta ni bila pravilno nameščena ali ker je uporabnik ne upravlja pravilno.
Vendar pa mora biti sistem sposoben te napake pravilno obravnavati na način, ki uporabnikom pomaga prepoznati in odpraviti težavo.
Če sporočila o napakah ne vsebujejo ustreznih informacij o napaki, je uporabniki ne bodo mogli odpraviti.
Pogoste metrike pri testiranju sistema
Ko izvajate testiranje sistema, lahko spremljate določene metrike testiranja, ki vaši ekipi za testiranje pomagajo spremljati, kako učinkovito je testiranje sistema, kako pogosto se odkrivajo napake in ali se testiranje sistema izvaja v pravi fazi cikla testiranja.
Če na primer spremljate število uspešno opravljenih in neuspešnih testov in ugotovite, da je velik delež sistemskih testov neuspešen, lahko sklepate, da je treba temeljitejše testiranje opraviti na začetku testnega cikla, da bi odkrili napake in pomanjkljivosti, preden se začne testiranje sistema.
1. Absolutne metrike
Absolutne številke so tiste metrike, ki namesto deleža ali razmerja podajajo absolutno številko.
Absolutne metrike so lahko koristne, vendar ker gre za absolutne številke, ni vedno enostavno razlagati, kaj pomenijo.
Nekateri primeri absolutnih metrik vključujejo trajanje testiranja sistema, čas, ki je potreben za izvedbo testa sistema, in skupno število napak, ugotovljenih med testiranjem sistema.
2. Metrike učinkovitosti testiranja
Metrike učinkovitosti testiranja pomagajo testnim skupinam razumeti, kako učinkoviti so njihovi trenutni postopki testiranja sistema, čeprav ne zagotavljajo nobenih informacij o kakovosti sistemskih testov.
Nekateri primeri metrik učinkovitosti testiranja vključujejo odstotek opravljenih testov in odstotek odpravljenih napak.
Opravljeni testi vam lahko povedo, ali opravljate preveč testov in zato spregledate napake, zlasti če je visoka metrika opravljenih testov hkrati z visokim deležem pobeglih napak.
3. Metrike učinkovitosti testiranja
Metrike učinkovitosti testiranja testerjem povedo nekaj o kakovosti sistemskih testov, ki jih izvajajo.
Merijo, kako učinkoviti so sistemski testi pri odkrivanju in ocenjevanju napak in pomanjkljivosti v sistemu.
Skupna učinkovitost obvladovanja napak je primer metrike učinkovitosti testiranja, ki prikazuje razmerje med napakami, odkritimi v fazi testiranja, in napakami, odkritimi po izdaji.
4. Metrike za pokritost testov
Metrike pokritosti testov pomagajo testerjem razumeti, kako popolno je pokritost celotnega sistema, ki ga poskušajo testirati.
Lahko na primer merite, kolikšen odstotek sistemskih testov je avtomatiziranih ali koliko zahtevanih testov je bilo do zdaj izvedenih.
Metrika pokritosti zahtev testerjem pomaga tudi pri ugotavljanju, kolikšen delež zahtevanih funkcij je bil pokrit s testiranjem.
5. Metrike napak
Metrike napak so metrike, ki na različne načine merijo prisotnost napak. Nekatere metrike napak se lahko osredotočajo na resnost napak, druge pa na vrsto ali temeljni vzrok napak.
Primer običajne metrike napak je gostota napak, ki meri skupno število napak v celotni izdaji.
Gostota napak je običajno predstavljena kot število napak na 1000 vrstic kode.
Testni primeri sistema
Testni primeri sistema so testni scenariji, ki se uporabljajo pri testiranju sistema za preverjanje delovanja programske opreme in izpolnjevanja pričakovanj razvijalcev, testerjev, uporabnikov in zainteresiranih strani.
1. Kaj so testni primeri pri testiranju sistema?
Testni primeri so pravzaprav navodila, ki določajo, kaj je treba testirati in katere korake mora tester izvesti za testiranje vsakega posameznega primera.
Ko pišete testne primere za sistemske teste, je pomembno, da vključite vse informacije, ki jih testerji potrebujejo za izvedbo posameznega testa. Za vsak testni primer vključite ID testnega primera in informacije o tem, kako izvesti test in kakšne rezultate pričakujete, po potrebi pa tudi merila za uspešno in neuspešno izvedbo vsakega testnega primera.
2. Kako napisati testne primere sistema
Če ste novinec pri pisanju testnih primerov, lahko za pisanje testnih primerov za testiranje sistema sledite spodnjim korakom. Pisanje testnih primerov za druge vrste testiranja programske opreme je zelo podoben postopek.
- Opredelite področje, ki naj ga testni primer pokriva.
- Prepričajte se, da je testni primer enostaven za testiranje.
- Uporabite ustrezne testne načrte za vsak testni primer.
- Vsakemu testnemu primeru dodelite edinstven ID testnega primera.
- Vključite jasen opis, kako izvesti vsak testni primer.
- Dodajte predpogoje in naknadne pogoje za vsak testni primer.
- Navedite rezultat, ki ga pričakujete od vsakega testnega primera.
- Opišite tehnike testiranja, ki jih je treba uporabiti.
- Pred nadaljevanjem testa prosite sodelavca, da pregleda vsak testni primer.
3. Primeri testnih primerov sistema
Uporaba primerov testnih primerov vam lahko pomaga pri pisanju lastnih testnih primerov. Spodaj sta dva primera sistemskih testnih primerov, ki jih lahko testerji uporabijo za testiranje delovanja aplikacije ali programske opreme.
Potrditev cen v aplikaciji za skeniranje živil
Test ID: 0788
Testni primer: Potrdi ceno artikla
Opis testnega primera: Skeniranje predmeta in preverjanje njegove cene.
Pričakovani rezultati: Preiskana cena se mora ujemati s trenutno ceno delnice.
Rezultat: USD, kar se ujema s trenutno ceno delnice.
Sprejeto/neprejeto: Izpolni.
Odzivni čas celotne transakcije programske opreme za upravljanje
Test ID: 0321
Testni primer: Čas nalaganja začetnega zaslona
Opis testnega primera: Zagotovite, da se zaslon za nalaganje aplikacije naloži v primernem času.
Pričakovani rezultati: Zaslon se mora naložiti v štirih sekundah ali manj.
Rezultat: Zaslon se je naložil v 6 sekundah.
Sprejeto/neprejeto: Neuspešno.
Najboljša orodja za testiranje sistema
Uporaba orodij za testiranje sistemov je eden najpreprostejših načinov za poenostavitev postopka testiranja in zmanjšanje časa, ki ga testne ekipe porabijo za zamudna ročna opravila.
Orodja za testiranje sistema lahko avtomatizirajo elemente postopka testiranja sistema namesto vas ali pa vam olajšajo pisanje testnih primerov in sledenje napredku testiranja.
Pet najboljših brezplačnih orodij za testiranje sistema
Če niste pripravljeni porabiti velikega dela proračuna za orodja za testiranje sistemov, vendar želite raziskati, kaj vse je na voljo, in morda hkrati izboljšati učinkovitost postopkov testiranja sistemov, je dobra novica ta, da je na spletu na voljo veliko brezplačnih orodij za testiranje.
Brezplačna orodja za testiranje ne ponujajo vseh enakih funkcij kot plačljiva orodja za testiranje, vendar lahko manjšim podjetjem zagotovijo stroškovno učinkovit način za raziskovanje avtomatizacije programske opreme in RPA.
1. ZAPTEST FREE Edition
ZAPTEST je nabor orodij za testiranje programske opreme, ki se lahko uporablja za sistemsko testiranje in druge vrste testiranja programske opreme.
ZAPTEST je na voljo v brezplačni in plačljivi različici za podjetja, vendar je brezplačna različica popoln uvod v avtomatizirano testiranje sistemov za manjša podjetja in podjetja, ki želijo narediti prve korake k avtomatizaciji testiranja.
ZAPTEST lahko avtomatizira sistemske teste za namizne in ročne naprave ter testerjem omogoča, da avtomatizirajo teste brez kodiranja.
2. Selen
Selenium je eno najbolj znanih odprtokodnih orodij za testiranje, ki so na voljo na trgu.
Brezplačna različica programa Selenium ponuja orodja za avtomatizirano testiranje, ki jih lahko uporabljate pri testiranju sistema, regresijskem testiranju in razmnoževanju napak, z njim pa lahko ustvarite lastne testne skripte za veliko različnih testnih scenarijev.
Vendar je to na račun preprostosti in enostavnosti uporabe, zato se ga lahko netehnični uporabniki precej težko naučijo.
3. Appium
Appium je brezplačno orodje za testiranje sistemov, ki je primerno za uporabo posebej z mobilnimi aplikacijami.
S programom Appium lahko avtomatizirate sistemsko testiranje aplikacij, ki so namenjene uporabi v pametnih telefonih in tabličnih računalnikih iOS ter Android.
To brezplačno orodje ni primerno za uporabo z namiznimi aplikacijami, kar je ena njegovih največjih pomanjkljivosti.
3. Testna povezava
Če si želite olajšati načrtovanje, pripravo in dokumentiranje testiranja sistema, je Testlink odlično brezplačno orodje, ki omogoča enostavno upravljanje testne dokumentacije.
S Testlinkom lahko poročila preprosto razvrstite v razdelke in tako najdete informacije, ki jih potrebujete, ko jih potrebujete.
Testlink je dragoceno orodje za testiranje, ne glede na to, ali izvajate sistemsko testiranje, testiranje na podlagi podatkov ali katero koli drugo vrsto testiranja programske opreme.
5. Loadium
Loadium je brezplačno orodje za testiranje, ki je posebej zasnovano za testiranje zmogljivosti in obremenitve.
Njegov poudarek na testiranju zmogljivosti in obremenitve pa predstavlja veliko slabost za uporabnike, ki želijo avtomatizirati celoten spekter testov od začetka do konca.
4 najboljša orodja za testiranje sistemov v podjetjih
Z rastjo podjetja boste morda ugotovili, da brezplačna orodja za testiranje ne ustrezajo več vašim zahtevam. Veliko brezplačnih orodij, kot je ZAPTEST, ponuja tako različice za podjetja kot tudi brezplačne različice.
1. ZAPTEST Enterprise edition
ZAPTEST ponuja poslovno različico svojega orodja za testiranje, ki se ponaša z enako enostavnimi funkcijami in intuitivnim vmesnikom kot brezplačno orodje, vendar se bolje prilagodi večjim ekipam, ki morda potrebujejo intenzivnejše testiranje ali želijo testirati bolj zapletene programske rešitve.
Različica ZAPTEST za podjetja ponuja neomejeno število testiranj zmogljivosti in neomejeno število iteracij ter dodeljenega certificiranega strokovnjaka ZAP, ki je na voljo za podporo in deluje kot del ekipe stranke (to samo po sebi predstavlja pomembno prednost v primerjavi z drugimi orodji za avtomatizacijo, ki so na voljo).
Model neomejenih licenc je prav tako vodilna ponudba na trgu, saj zagotavlja, da imajo podjetja vedno fiksne stroške, ne glede na to, kako hitro rastejo.
2. SoapUI
SoapUI je orodje za testiranje, ki omogoča upravljanje in izvajanje sistemskih testov na različnih platformah spletnih storitev in API-jev.
Ekipe za testiranje lahko z uporabo SoapUI zmanjšajo količino časa, ki ga porabijo za zamudna opravila, ter razvijejo temeljitejše in učinkovitejše strategije testiranja.
3. Testiranje
Testsigma je platforma za preizkušanje programske opreme, ki deluje brez uporabe. Ekipam za izdelke omogoča samodejno načrtovanje in izvajanje testov programske opreme na spletnih mestih, mobilnih aplikacijah in API-jih.
Platforma je zgrajena v Javi, vendar deluje s testnimi skriptami, napisanimi v preprostem angleškem jeziku.
4. TestingBot
TestingBot je razmeroma poceni podjetniška rešitev za podjetja, ki želijo eksperimentirati na tem področju, ne da bi že na začetku zapravila veliko denarja. TestingBot testerjem ponuja preprost način za testiranje spletnih mest in mobilnih aplikacij z uporabo mreže 3200 kombinacij brskalnikov in mobilnih naprav.
Nima funkcionalnosti večjih orodij za podjetja, vendar je dobra možnost za podjetja z nižjimi sredstvi.
Kdaj je treba uporabiti orodja za testiranje sistemov v podjetjih in kdaj brezplačna orodja za testiranje sistemov
Odločitev za uporabo poslovnih ali brezplačnih orodij za testiranje sistemov je odvisna od potreb vaše ekipe, proračuna, prednostnih nalog in delovnega urnika.
Samoumevno je, da orodja za podjetja ponujajo več funkcij in možnosti v primerjavi z brezplačnimi orodji, vendar so brezplačna orodja za manjša podjetja, ki nimajo veliko prostora v proračunu, odlična možnost.
Če vaše podjetje raste ali če ugotavljate, da vaša ekipa za testiranje porabi več časa, kot bi želeli, za testiranje sistemov in drugih vrst testiranja programske opreme, vam lahko nadgradnja orodij za testiranje v podjetjih in učenje, kako v celoti izkoristiti ta orodja, pomagata pri nadaljnjem širjenju podjetja in izpolnjevanju naraščajočega povpraševanja.
Poleg tega z uporabo orodij, kot je ZAPTEST Enterprise, ki ponujajo inovativne modele programske opreme in storitev ter modele neomejenih licenc, zagotovljeno odpravite vrzel v tehničnem znanju in ohranite fiksne stroške, ne glede na to, kako hitro rastete in koliko orodij uporabljate.
Kontrolni seznam, nasveti in triki za testiranje sistema
Pred začetkom testiranja sistema preberite spodnji kontrolni seznam za testiranje sistema in upoštevajte te nasvete, da optimizirate testiranje sistema za natančnost, učinkovitost in pokritost.
S kontrolnim seznamom za testiranje sistema lahko zagotovite, da ste pri testiranju sistema zajeli vse, kar potrebujete.
1. V fazo načrtovanja vključite preizkuševalce
Čeprav preizkuševalci običajno ne delajo na programski opremi, dokler ni končana faza razvoja in načrtovanja, lahko preizkuševalci z zgodnjim vključevanjem preizkuševalcev lažje razumejo, kako različne komponente delujejo skupaj, in to vključijo v svoje preizkušanje.
To pogosto privede do bolj poglobljenega raziskovalnega testiranja.
2. Napišite jasne testne primere
Ko pišete testne primere, poskrbite, da bodo jasni in nedvoumni.
Testerji morajo biti sposobni prebrati testne primere in takoj razumeti, kaj je treba testirati in kako to testirati.
Če je treba, pojasnite, kje najti funkcijo, ki jo je treba testirati, in katere korake je treba izvesti med postopkom testiranja sistema.
3. Povečanje pokritosti testov
Pri testiranju sistema običajno ni mogoče doseči 100-odstotne pokritosti testiranja, tudi če uporabljate orodja za avtomatizacijo.
Vendar je večja kot je pokritost s testi, večja je verjetnost, da boste odkrili in odpravili napake pred izdajo.
Poskusite doseči vsaj 90-odstotno pokritost s testi ali se ji čim bolj približati.
4. Temeljito analizirajte rezultate
Natančno analizirajte rezultate vsakega testiranja sistema ter v dokumentaciji jasno sporočite napake in pomanjkljivosti.
Čim več podrobnosti o napakah lahko zagotovite, tem lažje bodo razvijalci te napake pozneje ponovili.
Če imate zamisli o tem, zakaj se napake pojavljajo in kako bi jih lahko odpravili, jih vključite v rezultate testiranja.
5. Preseganje testiranja zahtev
Aplikacij ne preizkušajte le zato, da bi preverili, ali delajo to, kar naj bi delale.
Preizkusite, kako programska oprema deluje zunaj svojih zahtev, in preverite, kako se odziva na naloge in operacije zunaj predvidene uporabe. Tako lahko odkrijete napake in pomanjkljivosti, ki bi jih sicer spregledali.
7 napak in pasti, ki se jim je treba izogniti pri izvajanju sistemskih testov
Pri prvem izvajanju sistemskih testov se je treba zavedati pogostih napak in pasti, ki jih pogosto delajo ekipe za testiranje.
Če boste vedeli, katere so te napake, se jim boste lažje izognili, kar bo povečalo učinkovitost in natančnost vašega testiranja sistema.
1. Začetek brez načrta testiranja
Pomembno je, da pred začetkom testiranja sistema izdelate podroben načrt testiranja.
Če začnete integracijsko testiranje brez načrta, zlahka pozabite na nekatere testne primere, ki jih nameravate izvesti, ali na testne primere zunaj načrta testiranja.
Večina ljudi si ne more zapomniti vseh podrobnosti načrta testiranja, če ta ni jasno dokumentiran, poleg tega pa to preprečuje, da bi ga ekipe posredovale drugim testerjem.
2. Neopredelitev obsega testiranja sistema
Testiranje sistema je večdimenzionalna naloga, ki vključuje testiranje številnih različnih vidikov posamezne programske opreme.
Glede na vrsto programske opreme, ki jo razvijate, in glede na to, kaj ste do zdaj testirali, se lahko obseg testiranja sistema med testi zelo razlikuje.
Pomembno je, da pred začetkom testiranja določite obseg testiranja in zagotovite, da ga razumejo vsi člani testne ekipe.
3. Ignoriranje lažno pozitivnih in lažno negativnih rezultatov
Lažni pozitivni rezultati se pojavijo, kadar so testi sistema uspešni, čeprav testni scenariji dejansko ne delujejo, kot je bilo pričakovano.
Prav tako lahko pride do lažno negativnih rezultatov, ko test ne uspe, čeprav deluje v skladu s pričakovanji.
Včasih je težko prepoznati lažno pozitivne in lažno negativne rezultate, zlasti če preprosto pogledate rezultate testa in se ne poglobite v dejanske rezultate testa. Lažni pozitivni in negativni rezultati so še posebej verjetni in jih je pri samodejnem testiranju sistema enostavno spregledati.
4. Testiranje s podobnimi vrstami testnih podatkov
Če uporabljate več različnih vrst testnih podatkov, boste s čim večjim spreminjanjem atributov uporabljenih testnih podatkov povečali pokritost testiranja sistema.
To pomeni, da je manj verjetno, da boste spregledali napake in pomanjkljivosti, in dodaja vrednost testiranju, ki ga izvajate.
Z različnimi vrstami testnih podatkov boste pridobili podrobnejšo sliko o tem, kako se bo izdelek obnašal po izidu.
5. Ignoriranje raziskovalnega testiranja
Medtem ko je upoštevanje načrta testiranja pomembno, je pomembno tudi, da zagotovite prostor za raziskovalno testiranje in omogočite testerjem, da preizkusijo različne funkcije in lastnosti, ko jih med testiranjem najdejo.
Raziskovalno testiranje lahko pogosto odkrije nove napake, ki bi jih sicer spregledali, ali napake, ki so bile spregledane že v drugih fazah testiranja.
Raziskovalno testiranje lahko načrtujete tudi tako, da organizirate testne seje, na katerih vsi testerji v določenem časovnem obdobju izvajajo nenačrtovano testiranje sistema.
6. Neprevidno pregledovanje rezultatov avtomatizacije testiranja
Če ste novinec na področju testiranja sistemov programske opreme in zlasti avtomatiziranega testiranja, morda mislite, da lahko test preprosto zaženete in ga pustite delovati.
Pomembno pa je, da redno pregledujete rezultate avtomatizacije testiranja in po potrebi spremenite kodo avtomatizacije testiranja.
Če na primer spremenite programsko opremo, ki jo testirate, se morajo spremembe odražati v kodi samodejnih testov.
Pozorno preberite rezultate samodejnega testiranja, da boste razumeli vse rezultate testa in ne le rezultate uspešno/neuspešno.
7. Uporaba napačnega orodja za avtomatizacijo
Danes je na voljo veliko orodij za avtomatizacijo, od katerih so nekatera brezplačna, za druga pa je treba plačevati mesečno pristojbino.
Čeprav se začetniki običajno odločajo za odprtokodna orodja, se je treba prepričati, da orodje, ki ste ga izbrali, ustreza vašim zahtevam in ponuja funkcije, ki jih potrebujete.
Na primer, odprtokodna orodja so znana po omejenih funkcionalnostih, neintuitivnem uporabniškem vmesniku in zelo težki krivulji učenja.Nasprotno pa orodja za testiranje celotnega sklada, kot je ZAPTEST Free Edition, zagotavljajo vrhunske funkcije testiranja in RPA, kot so 1SCRIPT, Cross Browser, Cross Device, Cross Platform Technology, v enostavnem vmesniku brez kode, ki je primeren tako za netehnične kot tudi izkušene testerje.
Včasih je vredno investirati v nekoliko dražje orodje za avtomatizacijo na ravni podjetja, če je funkcionalnost, ki jo ponuja, veliko bolj primerna za vaš projekt.
Zaključek
Sistemsko testiranje je pomembna faza testiranja programske opreme, ki preverja sistem kot celoto in poskrbi, da vsaka posamezna komponenta deluje brezhibno in učinkovito.
To je faza testiranja programske opreme, ki sledi integracijskemu testiranju in pred uporabniškim sprejemnim testiranjem ter je ena od zadnjih formalnih faz testiranja programske opreme pred prvo izdajo.
S testiranjem sistema lahko preizkuševalci ugotovijo različne vrste napak, vključno s funkcionalnimi in nefunkcionalnimi napakami ter napakami v uporabnosti in konfiguraciji.
Sistemsko testiranje je mogoče izvajati ročno ali ga avtomatizirati, čeprav je v večini primerov priporočljivo uporabiti hibridni pristop, da bi povečali učinkovitost in hkrati zagotovili prostor za raziskovalno testiranje.
Z upoštevanjem najboljših praks in izogibanjem pogostim pastem sistemskega testiranja lahko testne ekipe izvedejo natančne in učinkovite sistemske teste, ki pokrivajo večino ključnih področij zgradbe.
Pogosta vprašanja in viri
Če ste novinec na področju testiranja sistemov, lahko na spletu najdete veliko virov, ki vam lahko pomagajo izvedeti več o testiranju sistemov in načinu izvajanja testiranja sistemov.
V nadaljevanju so predstavljeni nekateri uporabni spletni viri za testiranje sistemov in odgovori na nekatera najpogosteje zastavljena vprašanja o sistemskih testih.
1. Najboljši tečaji o testiranju sistemov
S spletnimi tečaji sistemskega testiranja ali testiranja programske opreme lahko strokovnjaki za zagotavljanje kakovosti razvijejo svoje razumevanje sistemskega testiranja in pridobijo kvalifikacije, ki dokazujejo to znanje.
Spletna mesta za usposabljanje, kot so Coursera, Udemy, edX in Pluralsight, ponujajo brezplačne in plačljive tečaje testiranja in avtomatizacije programske opreme za strokovnjake in začetnike.
Nekateri primeri spletnih tečajev za testiranje sistemov so:
- Celoten 2023 Software Testing Bootcamp, Udemy
- Specializacija za testiranje in avtomatizacijo programske opreme, Coursera
- Avtomatizirano testiranje programske opreme, edX
- Avtomatizirano testiranje programske opreme s Pythonom, Udemy
- Poslovni analitik: , Udemy: Procesi in tehnike testiranja programske opreme
Poiščite spletne tečaje, ki ustrezajo vaši ravni izkušenj in proračunu. Če delate na področju zagotavljanja kakovosti, lahko delodajalca prosite, da vas sponzorira pri akreditiranem tečaju testiranja programske opreme.
2. Katerih je 5 najpomembnejših vprašanj za razgovor o testiranju sistemov?
Če se pripravljate na razgovor za delovno mesto, ki lahko vključuje testiranje sistema ali druge vrste testiranja programske opreme, lahko vnaprej pripravite odgovore na pogosta vprašanja na razgovoru, kar bo pripomoglo k vaši uspešnosti na razgovoru.
Nekatera najpogostejša vprašanja na razgovorih o testiranju sistemov vključujejo:
- Kako se sistemsko testiranje razlikuje od integracijskega testiranja?
- Katere so prednosti in slabosti avtomatiziranega testiranja sistema?
- Koliko vrst sistemskega testiranja lahko naštejete?
- Kako bi med testiranjem sistema povečali pokritost testov?
- Kakšne napake in pomanjkljivosti pričakujete, da boste našli v sistemskih testih?
Ta vprašanja lahko uporabite za pripravo odgovorov po strukturi STAR pred razgovorom, pri čemer lahko uporabite primere iz svoje poklicne poti, da dokažete svoje znanje o testiranju sistemov in drugih vrstah testiranja programske opreme.
3. Najboljše vaje na YouTubu o testiranju sistemov
Če se učite vizualno, boste morda lažje razumeli, kaj je sistemsko testiranje in kako deluje skupaj z drugimi vrstami testiranja programske opreme, če si ogledate videoposnetke o sistemskem testiranju.
V YouTubu je na voljo veliko videoposnetkov z navodili, ki pojasnjujejo, kaj je sistemsko testiranje in kako ga začeti izvajati ročno ali z uporabo orodij za avtomatizacijo. Med najboljšimi učnimi gradivi za testiranje sistemov v YouTubu so:
- Kaj je testiranje sistema?
- Prevzemno testiranje in testiranje sistema
- Kaj je testiranje sistema in kako deluje?
- Testiranje sistemske integracije s primerom v realnem času
- Kaj je sistemsko testiranje pri testiranju programske opreme?
4. Kako vzdrževati sistemske teste
Vzdrževanje testov je postopek prilagajanja in vzdrževanja sistemskih testov in drugih vrst testov programske opreme, da bi jih posodabljali ob spremembah programske opreme ali spreminjanju kode.
Če na primer opravite testiranje sistema in odkrijete napake in pomanjkljivosti, boste programsko opremo poslali nazaj razvijalcem, da jo prilagodijo. Ekipe za preizkušanje bodo morda morale vzdrževati testne skripte, da bi zagotovile ustrezno preizkušanje nove programske opreme, ko bo čas za ponovno preizkušanje.
Vzdrževanje testov je pomemben vidik testiranja programske opreme, testerji pa lahko z upoštevanjem najboljših praks vzdrževanja poskrbijo za vzdrževanje programske opreme.
Ti vključujejo:
1. Sodelovanje:
Razvijalci in preizkuševalci morajo sodelovati in zagotoviti, da preizkuševalci vedo, kateri vidiki kode so bili spremenjeni in kako to lahko vpliva na testne skripte.
2. Oblikovanje:
Preden začnete avtomatizirati teste, oblikujte testne skripte. Tako boste zagotovili, da bodo testi, ki jih avtomatizirate, vedno ustrezali svojemu namenu.
3. Postopek:
Med postopkom načrtovanja upoštevajte vzdrževanje testiranja programske opreme. Ne pozabite, da boste morali vzdrževati teste, in to upoštevajte pri razporejanju, načrtih testiranja in načrtovanju testov.
4. Udobje:
Če je mogoče, posodabljajte vse teste, vključno s sistemskimi testi in testi pravilnosti, z ene same nadzorne plošče.
To pomeni, da je posodabljanje testov veliko hitrejše in bolj priročno ter zmanjšuje tveganje, da bi pozabili posodobiti določen test, ko so bile izvedene spremembe v sestavi programske opreme.
Ali je testiranje sistema testiranje bele ali črne škatle?
Testiranje sistema je oblika testiranja črne škatle.
Testiranje črne škatle se od testiranja bele škatle razlikuje po tem, da upošteva le zunanje funkcije in lastnosti programske opreme. S testiranjem bele škatle se preverja notranje delovanje programske opreme, na primer delovanje kode in njeno medsebojno sodelovanje.
Testiranje črne škatle ne zahteva poznavanja notranjega delovanja sistema ali kode, temveč testerji preprosto preizkusijo izhode in funkcije programske aplikacije ter jih ocenijo glede na določena merila.
Testiranje sistema vključuje funkcionalno in nefunkcionalno testiranje, vendar testerji uporabljajo tehniko črne škatle za testiranje tudi nefunkcionalnih vidikov zgradbe.
Zato se testiranje sistema na splošno šteje za obliko testiranja črne škatle.