OqPoWah.com

Metode testiranja programske opreme in njihova primerjava. Preskušanje z metodo "črna škatla" in testiranje z uporabo metode "bela škatla"

Preizkušanje programske opreme (programska oprema) razkriva pomanjkljivosti, pomanjkljivosti in napake v kodi, ki jih je treba odpraviti. Lahko ga opredelimo tudi kot proces ocenjevanja funkcionalnosti in pravilnosti programske opreme z uporabo analize. Glavne metode integracije in testiranja programske opreme zagotavljajo kakovost aplikacij in obsegajo preverjanje specifikacije, oblike in kode, ocene zanesljivosti, validacije in preverjanja.

Metode

Glavni cilj testiranja programske opreme je potrditi kakovost programskega paketa s sistematično odpravljanjem napak v skrbno nadzorovanih pogojih, ugotavljanje njihove popolnosti in pravilnosti ter odkrivanje skritih napak.

Metode preskušanje (preizkušanje) programov lahko razdelimo na statično in dinamično.

Prvi vključujejo neformalne, nadzorne in tehnične preglede, inšpekcijske preglede, analizo po korakih, revizijo ter statično analizo toka in upravljanja podatkov.

Dinamične tehnike so naslednje:

  1. Testiranje bele škatle. To je podrobna študija notranje logike in strukture programa. To zahteva poznavanje izvorne kode.
  2. Testiranje črne škatle. Ta tehnika ne zahteva poznavanja notranjega delovanja aplikacije. Upoštevamo samo glavne vidike sistema, ki niso povezani ali so le malo povezani z njeno notranjo logično strukturo.
  3. Metoda sive škatle. Združuje prejšnja dva pristopa. Razhroščevanje z omejenim poznavanjem notranjega delovanja aplikacije je združeno z znanjem o osnovnih vidikih sistema.

preskusne metode

Transparentno testiranje

V metodi bele škatle se uporabljajo testni scenariji kontrolne strukture procesnega projekta. Ta tehnika vam omogoča, da prepoznate napake v izvajanju, na primer slabo vodenje kode, z analizo notranjega delovanja kos programske opreme. Te preskusne metode se uporabljajo pri integraciji, modularni in sistemski ravni. Preizkuševalec mora imeti dostop do izvorne kode in z njo ugotoviti, kateri blok se obnaša na neprimeren način.

Programi testiranja z uporabo metode bele škatle imajo naslednje prednosti:

  • vam omogoča, da pri brisanju nepotrebnih vrstic odkrijete napako v skriti kodi;
  • možnost uporabe neželenih učinkov;
  • Največja pokritost je dosežena s pisanjem preskusnega scenarija.

Slabosti:

  • Postopek z visokimi stroški, ki zahteva kvalificiran razhroščevalnik;
  • številne poti bodo ostale neraziskane, saj je temeljito preverjanje vseh možnih skritih napak zelo zapleteno;
  • nekatere manjkajoče kode bodo ostale neopažene.

Testiranje v beli kovini se včasih imenuje tudi pregledno ali odprto testiranje, strukturno, logično testiranje, testiranje na osnovi virov, arhitektura in logika.

Glavne sorte so:

1) testiranje krmiljenja pretoka je strukturna strategija, ki kot kontrolni tok uporablja programski tok programa in daje prednost bolj preprostim potekom pred manjšim številom zahtevnejših;

2) razhroščevanje podružnice je namenjeno preučitvi vsake možnosti (resnične ali napačne) vsakega izvajalca nadzora, ki vključuje tudi kombinirano rešitev;

3) preizkušanje glavne poti, ki preskuševalcu omogoča, da določi merilo za logično kompleksnost postopkovnega projekta za dodelitev osnovnega nabora izvedbenih poti;

4) preverjanje pretoka podatkov - strateška strategija za nadzorni tok z označevanjem grafa z informacijami o deklaraciji in uporabi spremenljivk programa;

5) testiranje ciklov - v celoti se osredotoča na pravilno izvajanje cikličnih postopkov.

testiranje v beli škatli

Vedenjsko razhroščevanje

Preskusna metoda črna škatla programsko opremo šteje za "črno škatlo" - informacije o notranjem delu programa se ne upoštevajo in preverjajo samo glavne vidike sistema. V tem primeru mora preizkuševalnik poznati sistemsko arhitekturo brez dostopa do izvorne kode.

Prednosti tega pristopa:

  • učinkovitost za velik segment kode;
  • preprostost zaznavanja s strani preizkuševalca;
  • perspektiva uporabnika je jasno ločena od perspektive razvijalca (programer in preizkuševalec sta medsebojno neodvisni);
  • hitrejše testiranje.

Programi testiranja, ki uporabljajo metode črne škatle, imajo naslednje pomanjkljivosti:

  • dejansko se izvede izbrano število preskusnih scenarijev, kar ima za posledico omejeno pokritje;
  • pomanjkanje jasnih specifikacij otežuje pripravo testnih scenarijev;
  • nizka učinkovitost.

Druga imena te tehnike so vedenjske, neprozorne, funkcionalno testiranje in razhroščevanje z uporabo metode zaprtega polja.

V to kategorijo lahko dodelite naslednje metode preskušanja programske opreme:

1) enakovredne particije, ki lahko zmanjšajo nabor testnih podatkov, ker so vhodni podatki programskega modula razdeljeni na ločene dele;

2) analiza roba se osredotoča na preverjanje meja ali ekstremnih mejnih vrednosti - minima, maksima, napačnih in tipičnih vrednosti;

3) Fuzing - uporabili so pri odkrivanju izkrivljenih ali delno razčlenjenih podatkov v avtomatskem ali polavtomatskem načinu;

4) grofje vzročnosti - tehniko, ki temelji na ustvarjanju grafov in določitev razmerja med dejavnostjo in njenih razlogov: identiteto, negacijo, logični ALI in logično - štiri glavne like, ki izraža razmerje med vzroki in posledicami;

5) preverjanje ortogonalnih nizov, ki se uporabljajo za težave s sorazmerno majhno površino vnosa, ki presega možnosti izčrpnih raziskav;

6) testiranje vseh parov - tehniko, katere niz preskusnih vrednosti vključuje vse možne diskretne kombinacije vsakega para vhodnih parametrov;

7) odpravljanje napak v državi je tehnika, ki je uporabna za preverjanje državnega stroja in tudi za navigacijo grafični vmesnik uporabnik.

metode testiranja programske opreme

Črno-testiranje: primeri

Tehnologija črne škatle temelji na specifikacijah, dokumentaciji in opisu programskega vmesnika ali sistema. Poleg tega je mogoče uporabiti modele (formalne ali neformalne), ki predstavljajo pričakovano obnašanje programske opreme.

Običajno se ta metoda razhroščevanja uporablja za uporabniške vmesnike in zahteva interakcijo z aplikacijo tako, da vnaša podatke in zbira rezultate - od zaslona, ​​od poročil ali izpisov.

Preizkuševalec tako sodeluje s programsko opremo s pomočjo vhodov, ki delujejo na stikala, gumbe ali druge vmesnike. Izbira vhodnih podatkov, vrstni red njihovega vnosa ali zaporedje dejanj lahko povzroči ogromno skupno število kombinacij, kot je razvidno iz naslednjega primera.

Koliko testov je treba opraviti, da preverite vse možne vrednosti za 4 potrditvena polja in eno dvosmerno polje, ki določa čas v sekundah? Na prvi pogled je izračun preprost: 4 polja z dvema možnima stanjima - 24 = 16, ki jih je treba pomnožiti s številom možnih položajev od 00 do 99, to je 1600 možnih testov.

Vendar pa je ta izračun je narobe: lahko ugotovimo, da lahko polje za dve točki vsebuje tudi prostor, kar pomeni, da je sestavljen iz dveh alfanumeričnih položajih in lahko vsebujejo črke, številke, posebne znake, presledke, itd Torej, če .... sistem je 16-bitni računalnik, zavijemo 216 = 65536 eno za vsak položaj v nastalo 4294967296 testnih primerov, ki jih je treba pomnožiti s 16 kombinacijami zastav, ki daje skupaj 68,719,476 736. Če jih opravljajo s hitrostjo 1 preskus na sekundo, nato skupno Trajanje testa bo 2 177,5 let. Za 32 ali 64-bitne sisteme je trajanje še večje.

Zato je treba ta čas zmanjšati na sprejemljivo vrednost. Zato je treba zmanjšati število testnih primerov, ne da bi zmanjšali pokritost testiranja.

testiranje črne škatle

Enakovredno razgradnjo

Enakovredna particija je preprosta metoda, ki se uporablja za vse spremenljivke, ki so prisotni v programski opremi, ali vhodnih in izhodnih vrednot, simbolično, številčna, in drugi. Temelji na načelu, da se bodo vsi podatki iz enega ekvivalenta particijo obravnavati na enak način in z ista navodila.

Med preskušanjem se iz vsakega določenega enakovrednega razdelka izbere en predstavnik. To vam omogoča, da sistematično zmanjšate število možnih testnih primerov, ne da bi pri tem izgubili obseg ukazov in funkcij.

Druga posledica tega razdeljevanja je zmanjšanje kombinatorične eksplozije med različnimi spremenljivkami in s tem povezano zmanjšanje testnih primerov.

Na primer, v (1 / x)1/2 uporablja tri podatkovne sekvence, tri enakovredne particije:

1. Vse pozitivne številke bodo obdelane na enak način in bi morale prinesti pravilne rezultate.

2. Vsi negativni številki se obravnavajo na enak način, z enakim rezultatom. To ni res, saj je koren negativnega števila namišljen.

3. Nič bo obdelan ločeno in bo dala napako "delitev z ničlo". To je področje z eno vrednostjo.

Tako vidimo tri različne odseke, od katerih je ena zmanjšana na eno vrednost. Obstaja en "pravilen" del, ki daje zanesljive rezultate in dve "napačni", z nepravilnimi rezultati.

Mejna analiza

Obdelava podatkov na mejah enakovredne particije se lahko izvede drugače, kot je bilo pričakovano. Študija mejnih vrednosti je dobro znana analiza vedenja programske opreme na teh področjih. Ta tehnika nam omogoča, da ugotovimo takšne napake:

  • zloraba relacijskih operaterjev (<,>, =, ne-, ge-, le-);
  • posamezne napake;
  • Težave v ciklu in iteracije,
  • Napačne vrste ali velikost spremenljivk, uporabljene za shranjevanje podatkov;
  • umetne omejitve, povezane s podatki in vrstami spremenljivk.

samodejne metode za preizkušanje programske opreme

Polpregledno testiranje

Metoda sive škatle povečuje pokritost čekov, tako da se lahko združite na vse ravni kompleksnega sistema z uporabo kombinacij belih in črnih metod.

Z uporabo te tehnike mora imeti preizkuševalec za razvoj testnih vrednosti poznavanje internih podatkovnih struktur in algoritmov. Primeri preskusnih metod za sivo polje so:

  • arhitekturni model;
  • Unified Modeling Language (UML);
  • državni model (končni državni stroj).

V metodi sive škatle za razvijanje testnih primerov se proučujejo bele modulne kode in dejanski test se izvaja na vmesnikih črnega tehnološkega programa.

Takšne preskusne metode imajo naslednje prednosti:

  • kombinacija prednosti tehnik bele in črne škatle;
  • Preizkuševalec se opira na vmesnik in funkcionalno specifikacijo, ne pa na izvorno kodo;
  • razhroščevalnik lahko ustvari odlične preskusne skripte;
  • preverjanje je izvedeno z vidika uporabnika, ne oblikovalec programa;
  • ustvarjanje prilagojenega testiranja;
  • objektivnost.



Slabosti:

  • Testiranje je omejeno, saj ni dostopa do izvorne kode;
  • zapletenost odkrivanja napak v porazdeljenih aplikacijah;
  • mnogi načini ostajajo neraziskani;
  • Če je razvijalec programske opreme že opravil test, potem so lahko nadaljnje raziskave odvečne.

Drugo ime za tehniko siva škatlica je polprazenčno razhroščevanje.

Ta kategorija vključuje takšne preskusne metode:

1) pravokotna matrika - uporaba podmnožice vseh možnih kombinacij;

2) matrično razhroščevanje z uporabo podatkov o stanju programa;

3) regresijski test, izveden pri novih spremembah v programski opremi;

4) preskus s predlogami, ki analizira zasnovo in arhitekturo trdne aplikacije.

metode preskušanja programske opreme

Primerjava metod testiranja programske opreme

Uporaba vseh dinamičnih metod vodi k kombinatorni eksploziji števila testov, ki jih je treba razviti, izvajati in izvajati. Vsako tehniko je treba pragmatično uporabiti ob upoštevanju omejitev.

Edina prava metoda ne obstaja, obstajajo le tiste, ki so primernejše za določen kontekst. Strukturne tehnike nam omogočajo iskanje neuporabne ali zlonamerne kode, vendar so zapletene in neuporabne za velike programe. Metode, ki temeljijo na specifikaciji, so edine, ki lahko prepoznajo manjkajočo kodo, vendar ne morejo identificirati zunanjega izvajalca. Nekatere tehnike so primernejše za določeno stopnjo testiranja, kot so napake ali kontekst, kot drugi.

Spodaj so glavne razlike med tremi tehnikami dinamičnega testiranja - glede na primerjalno tabelo med tremi oblikami programske opreme za odpravljanje napak.

Aspekt

Metoda črne škatle

Metoda siva škatla

Metoda bele škatle

Razpoložljivost informacij o sestavi programa

Analizirani so le osnovni vidiki

Delno poznavanje notranjega oblikovanja programa

Popoln dostop do izvorne kode

Stopnja razdrobljenosti programa

Nizka

Povprečno

Visoka

Kdo naredi odpravljanje napak?

Končni uporabniki, preizkuševalci in razvijalci

Končni uporabniki, odpravljanje težav in razvijalci

Razvijalci in preizkuševalci

Base

Preskušanje temelji na zunanjih neodvisnih situacijah.

Diagrami DB, diagrami toka podatkov, notranja stanja, poznavanje algoritma in arhitekture

Notranja ureditev je popolnoma znana

Stopnja kritja

Najmanj izčrpen in zahteva najmanj časa

Povprečno

Potencialno najobsežnejši. Traja dolgo

Podatki in notranje meje

Preprosto odpravljanje napak s preskusom in napakami

Podatkovne domene in notranje meje je mogoče preveriti, če so znani

Boljše testiranje podatkovnih domen in notranjih meja

Primernost za testiranje algoritma

Ne

Ne

Ja.

Avtomatizacija

Samodejni načini preizkušanja programske opreme močno poenostavijo postopek preverjanja ne glede na tehnično okolje ali programski kontekst. Uporabljajo se v dveh primerih:

1) za avtomatizacijo dolgočasno, ponavljajoče se ali natančna opravila, kot so datoteke primerjavi z več tisoč vrstic, da se sprosti čas za koncentracijo tester bolj pomembnih točk;

2) za izvajanje sledenja oziroma naloge, ki jih ni mogoče ljudje lahko izvajajo, kot so preverjanje učinkovitosti ali analize odzivni čas, ki se lahko meri v stotinkah sekunde.

metode preskušanja preskušanja programske opreme

Testna orodja se lahko razvrstijo na različne načine. Naslednja razdelitev temelji na nalogah, ki jih podpirajo:

  • Upravljanje testov, ki vključuje podporo za vodenje projektov, različice, konfiguracije, analizo tveganja, sledenje preizkusov, napake, pomanjkljivosti in orodja za poročanje;
  • upravljanje zahtev, ki vključuje shranjevanje zahtev in specifikacij, njihovo preverjanje za popolnost in dvoumnost, njihovo prednost in sledljivost vsakega preskusa;
  • kritičen pregled in statična analiza, vključno s spremljanjem pretoka, in naloge, snemanje in shranjevanje pripomb, odkrivanje napak in načrtovane povezave upravljanje popravki na kontrolnih seznamov in pravil, sledenje komunikacija izvornih dokumentov in kodo statične analize za odkrivanje napak, ki zagotavljajo skladnost s standardi pisanje kode, analiza struktur in njihovih odvisnosti, izračun metričnih parametrov kode in arhitekture. Poleg tega se uporabljajo prevajalniki, analizatorji povezav in generatorji navzkrižne reference;
  • Modeliranje, ki vključuje orodja za modeliranje poslovnega obnašanja in testiranje ustvarjenih modelov;
  • Test razvoj zagotavlja pridobivanje podatkov pričakovanih na podlagi pogojev in uporabniškega vmesnika modelov in kode, je uspelo ustvariti ali spremeniti datotek in baz podatkov, sporočil, preverjanje podatkov na podlagi pravil upravljanja, statistično analizo razmer in tveganj;
  • Kritično gledanje z vnosom podatkov prek grafičnega uporabniškega vmesnika, API-ja, ukaznih vrstic s pomočjo primerjalnikov, ki pomagajo določiti uspešne in neuspešne teste;
  • Podpora za odpravljanje napak okolje, ki vam omogoča, da zamenjate manjkajoče strojne ali programske opreme, v Vol. h. Oprema simulatorjev, ki temelji na določenem izhodni podskupini, terminalov emulatorjev, mobilnih telefonov ali omrežne opreme, testno okolje za jezikov, operacijskih sistemov in strojna oprema z zamenjavo manjkajočih komponent voznik, lutke modulov, itd, kot tudi orodja za zajem in spreminjanje OS zahteva omejitve CPU simulacija, RAM, ROM, ali omrežja .;
  • primerjava podatkovnih datotek, podatkovnih baz, preverjanje pričakovanih rezultatov med in po testiranju, vključno z dinamičnimi in primerjalnimi primeri, avtomatske "orakle";
  • premaz meritev za lokalizacijo spomin razpoka in nepravilne nadzor nad vedenjem sistema ocenjujete na podlagi simuliranih aplikacije za generiranje obremenitev obremenitev, baz podatkov, omrežij in strežnikov v realističnem scenariju rasti za merjenje, analizo in preverjanje poročila sistemskih virov;
  • zagotavljanje varnosti;
  • testiranje zmogljivosti, obremenitve in dinamične analize;
  • Druga orodja, tudi za preverjanje črkovanja in sintakse, varnost omrežja, razpoložljivost vseh strani spletnega mesta itd.

Perspektiva

S spremembo trendov v industriji programske opreme se lahko proces razhroščevanja spreminja. Obstajajo nove metode testiranja programske opreme, kot so storitve, orientirovannae arhitekture (SOA), brezžične tehnologije, mobilnih storitev, in tako naprej. E., so se odprle nove možnosti za testiranje programske opreme. Nekatere spremembe, ki se pričakujejo v tej panogi v naslednjih nekaj letih, so navedene spodaj:

  • Preizkuševalci bodo zagotovili lahke modele, ki razvijalcem omogočajo testiranje njihove kode;
  • razvoj preskusnih metod, vključno s pregledovanjem in modeliranjem programov v zgodnji fazi, bo odpravil številne protislovja;
  • Prisotnost več prestreznih testov bo skrajšala čas odkrivanja napak;
  • Statićni analizator in orodja za odkrivanje se bodo uporabljali śiroko;
  • uporaba uporabnih matrik, kot so pokritost specifikacij, pokritost modelov in pokritje kode, bo določila razvoj projektov;
  • kombinatorna orodja bodo testerjem omogočala, da določijo prednostne smernice razhroščevanja;
  • Preizkuševalci bodo v celotnem procesu razvoja programske opreme zagotavljali vidnejše in dragocene storitve;
  • debugerji bodo lahko ustvarjali orodja in metode za testiranje programske opreme, napisane v interakciji z različnimi programskimi jeziki;
  • Strokovnjaki za odpravljanje težav bodo postali bolj strokovno usposobljeni.

Bo treba nadomestiti z novo poslovno usmerjenih testiranja programske opreme metode, da spremenite način interakcije s sistemom, in informacije, ki jih zagotavljajo, medtem ko zmanjšanje tveganj in povečanje koristi poslovnih sprememb.

Zdieľať na sociálnych sieťach:

Príbuzný