Metode testiranja softvera i njihova usporedba. Ispitivanje metodom `crne kutije` i ispitivanje metodom `white box`

Testiranje softvera (softver) otkriva nedostatke, nedostatke i pogreške u kodu koji treba ukloniti. Također se može definirati kao postupak vrednovanja funkcionalnosti i ispravnosti softvera pomoću analize. Glavne metode integracije i testiranja softverskih proizvoda osiguravaju kvalitetu aplikacija i sastoje se od provjere specifikacije, dizajna i koda, procjene pouzdanosti, provjere valjanosti i provjere.

metode

Glavna svrha testiranja softvera - potvrda kvalitete softverskog sustava kroz sustavni ispravljanje pogrešaka aplikacija pod strogo kontroliranim uvjetima kako bi se utvrdila njihova potpunost i točnost, kao i otkrivanje skrivenih pogrešaka.

metode testiranje (testiranje) programa mogu se podijeliti na statičku i dinamičku.

Bivši su neformalni, praćenje i tehnički pregled, inspekcija, korak po korak analize, revizije, kao i statička analiza protoka podataka i upravljanje.

Dinamičke tehnike su kako slijedi:

  1. Ispitivanje bijele kutije. Ovo je detaljna studija unutarnje logike i strukture programa. To zahtijeva poznavanje izvornog koda.
  2. Ispitivanje crne kutije. Ova tehnika ne zahtijeva poznavanje internih operacija aplikacije. Smatramo samo glavnim aspektima sustava koji nisu povezani ili su malo povezani s unutarnjom logičkom strukturom.
  3. Metoda sive kutije. Kombinira prethodna dva pristupa. Otklanjanje pogrešaka s ograničenim poznavanjem internih funkcija aplikacije kombinira se s poznavanjem osnovnih aspekata sustava.

metode ispitivanja

Transparentno ispitivanje

U metodi bijele kutije koriste se testni scenariji kontrolne strukture procesnog projekta. Ova tehnika vam omogućuje prepoznavanje pogrešaka u implementaciji, poput lošeg upravljanja kodovima, analizom internih operacija dijela softvera. Te metode ispitivanja primjenjive su na razini integracije, modularnih i sustava. Tester mora imati pristup izvornom kodu i, koristeći ga, otkriti koji se blok ponaša na neprikladan način.

Testiranje programa korištenjem metode bijele kutije ima sljedeće prednosti:

  • omogućuje otkrivanje pogreške u skrivenom kodu pri brisanju nepotrebnih redaka;
  • mogućnost korištenja nuspojava;
  • Maksimalna pokrivenost postiže se pisanjem scenarija ispitivanja.

nedostaci:

  • Proces visokih troškova koji zahtijeva kvalificirani program za ispravljanje pogrešaka;
  • mnogi putevi će ostati neistraženi, jer je temeljita provjera svih mogućih skrivenih pogrešaka vrlo složena;
  • neki od kôda koji nedostaje proći će neprimjetan.

Bijela box testiranje se ponekad naziva ispitivanjem transparentan ili otvorenu kutiju, strukturni, logično testiranje, koji se temelji na izvorni kod i logiku arhitekture.

Glavne vrste su:

1) testiranje protoka je strukturna strategija koja koristi program kontrole protoka kao model i daje prednost jednostavnijim putevima prije manjeg broja složenijih;

2) ispravljanje pogrešaka razgraničenje ima za cilj ispitati svaku opciju (istinito ili neistinito) svakog kontrolnog operatera, koja također uključuje kombinirano rješenje;

3) ispitivanje glavne staze, koja omogućuje tester uspostaviti logično složenost mjeru proceduralni projekt za izoliranje osnovni skup izvršenja stazama;

4) provjera protoka podataka - strategija istraživanja protoka kontroliranjem bilježenjem grafikona s informacijama o deklaraciji i korištenju programskih varijabli;

5) testiranje ciklusa - potpuno je usredotočeno na ispravno izvršavanje cikličkih postupaka.

ispitivanje bijelo-kutije

Bihevično uklanjanje pogrešaka

Metoda ispitivanja crna kutija softver smatra "crnim kutijom" - informacije o internom radu programa ne uzimaju se u obzir i provjeravaju se samo glavni aspekti sustava. U tom slučaju, tester treba znati arhitekturu sustava bez pristupa izvornom kodu.

Prednosti ovog pristupa:

  • učinkovitost za veliki segment kodova;
  • jednostavnost percepcije od strane ispitivača;
  • perspektiva korisnika je jasno odvojena od perspektive razvojnog programera (programer i tester međusobno neovisni);
  • brže testiranje.

Testiranje programa pomoću metoda crne kutije ima sljedeće nedostatke:

  • u stvari, izvodi se odabrani broj test scenarija, što rezultira ograničenom pokrivenošću;
  • nedostatak jasne specifikacije otežava razvoj testnih scenarija;
  • niska učinkovitost.

Druga imena ove tehnike su ponašanja, neprozirna, funkcionalno testiranje i ispravljanje pogrešaka koristeći metodu zatvorene kutije.

Sljedeće metode testiranja softvera mogu se dodijeliti ovoj kategoriji:

1) ekvivalentno particioniranje, što može smanjiti skup ispitnih podataka, jer su ulazni podaci programskog modula podijeljeni u zasebne dijelove;

2) rubna analiza usredotočuje se na provjeru granica ili ekstremnih graničnih vrijednosti - minima, maxima, pogrešne i tipične vrijednosti;

3) Fuzzing - koristi se za pronalaženje pogrešaka implementacije unošenjem iskrivljenih ili polu-razvrstanih podataka u automatskom ili poluautomatskom načinu rada;

4) broji uzročnosti - tehnika koja se zasniva na stvaranju grafikona i određivanje odnosa između djelovanja i njegovih razloga: identitet, negaciju, logično OR i logično I - četiri glavne likove, izražava odnos između uzroka i posljedice;

5) provjera ortogonalnih polja primijenjenih na probleme s relativno malim područjem unosa koji nadilazi mogućnosti iscrpnih istraživanja;

6) ispitivanje svih parova - tehnika čiji skup testnih vrijednosti uključuje sve moguće diskretne kombinacije svakog para ulaznih parametara;

7) ispravljanje pogrešaka prijelazima iz države je tehnika korisna za provjeru državnog stroja, kao i za navigaciju grafičko sučelje korisnika.

metode testiranja softvera

Testiranje crne kutije: primjeri

Tehnologija crne kutije temelji se na specifikacijama, dokumentaciji, kao i opisu softverskog sučelja ili sustava. Osim toga, moguće je koristiti modele (formalno ili neformalno) koji predstavljaju očekivano ponašanje softvera.

Obično se ova metoda uklanjanja pogrešaka primjenjuje na korisnička sučelja i zahtijeva interakciju s aplikacijom unošenjem podataka i prikupljanjem rezultata - sa zaslona, ​​iz izvješća ili ispisa.

Tester tako komunicira s softverom unosom, djelujući na sklopke, gumbe ili druga sučelja. Izbor ulaznih podataka, redoslijed njihovog uvođenja ili slijed djelovanja može dovesti do ogromnog ukupnog broja kombinacija, kao što se vidi u sljedećem primjeru.

Koliko testova treba provesti za provjeru svih mogućih vrijednosti za 4 potvrdna okvira i jedno polje s dvije položaje koji određuje vrijeme u sekundama? Na prvi obračun vida je jednostavan: 4 polja s dva moguća stanja - 24 = 16, koja mora biti pomnožen s brojem mogućih pozicija od 00 do 99, tj 1600 mogućim testovima.

Međutim, ovaj izračun je pogrešno: možemo utvrditi da su dvije točke polje može sadržavati prostor, tj sastoji se od dva alfanumeričkih pozicije i može sadržavati samo alfanumeričke znakove, posebne znakove, razmake itd Dakle, ako .... sustav je 16-bitna računala, okrenite 216 = 65.536 jedan za svaku poziciju u nastalim 4294967296 test slučajeva koji su se množi s 16 kombinacija zastavica koja daje ukupno 68,719,476 736. Ako se obavljanje po stopi od 1 test u sekundi, a zatim ukupno Trajanje testa bit će 2 177,5 godina. Za 32 ili 64-bitne sustave trajanje je još veće.

Stoga je potrebno smanjiti ovo vrijeme na prihvatljivu vrijednost. Stoga se treba koristiti tehnike za smanjenje broja testnih slučajeva bez smanjenja pokrivenosti ispitivanja.

ispitivanje crne kutije

Ekvivalentna razgradnja

Ekvivalent particija je jednostavna metoda koja je primjenjiva za sve varijable koje su prisutne u softveru, da li ulaznim ili izlaznim vrijednostima, simboličke, prikaz brojeva i drugih. Ona se temelji na načelu da svi podaci iz ekvivalentom particije će biti tretirane na isti način i po iste upute.

Tijekom testiranja odabire se jedan predstavnik iz svake definirane ekvivalentne particije. To vam omogućuje sustavno smanjivanje broja mogućih testnih slučajeva bez gubitka opsega naredbi i funkcija.

Druga posljedica ovog particioniranje je smanjiti kombinacijske eksploziju između različitih varijabli i pripadajućeg smanjenja test slučajeva.

Na primjer, u (1 / x)1/2 koristi tri sekvence podataka, tri ekvivalentne particije:

1. Svi pozitivni brojevi obrađuju se na isti način i trebaju dati točne rezultate.

2. Svi negativni brojevi će biti tretirani na isti način, s istim rezultatom. To nije točno jer je korijen negativnog broja imaginaran.

3. Zero će se odvojeno obrađivati ​​i dati će pogrešku "podjela prema nuli". Ovo je odjeljak s jednim vrijednošću.

Tako vidimo tri različite sekcije, od kojih je jedna svedena na jednu vrijednost. Postoji jedan "ispravan" odjeljak, koji daje pouzdane rezultate i dva "pogrešna", s netočnim rezultatima.

Analiza granice

Obrada podataka na granicama ekvivalentne particije može se izvesti drugačije nego što se očekivalo. Proučavanje graničnih vrijednosti je poznati način analize ponašanja softvera u takvim područjima. Ova tehnika nam omogućuje identificiranje takvih pogrešaka:

  • zlouporaba relacijskih operatora (<,>, = zanemarivanja, ge-, le)
  • jednokratne pogreške;
  • Problemi u ciklusima i iteracijama,
  • Pogrešne vrste ili veličina varijabli koje se koriste za pohranu podataka;
  • umjetna ograničenja povezana s podacima i vrstama varijabli.

automatske metode za testiranje softverskih proizvoda

Polu-transparentno ispitivanje

Siva boja način povećava pokrivenost čekanja, omogućujući vam da se usredotočite na sve razine složenog sustava kombiniranjem metoda bijele i crne.

Koristeći ovu tehniku, tester za razvoj testnih vrijednosti mora imati znanje o unutarnjim strukturama podataka i algoritama. Primjeri metoda ispitivanja za sive kutije su:

  • arhitektonski model;
  • Jedinstveni modelni jezik (UML);
  • državni model (konačni stroj).

U složenoj kutiji način za razvijanje testnih slučajeva proučava se šifre bijelih modula, a stvarni se test provodi na sučeljima crnog tehnološkog programa.



Takve metode ispitivanja imaju sljedeće prednosti:

  • kombinacija prednosti tehnika bijelih i crnih kutije;
  • Tester se oslanja na sučelje i funkcionalnu specifikaciju, a ne na izvorni kod;
  • debugger može stvoriti izvrsne test skripte;
  • provjera se vrši s gledišta korisnika, a ne dizajera programa;
  • stvaranje prilagođenog test razvoja;
  • objektivnost.

nedostaci:

  • Test pokrivenost je ograničena jer nema pristup izvornom kodu;
  • složenost otkrivanja nedostataka u distribuiranim aplikacijama;
  • mnogi načini ostaju neistraženi;
  • Ako programer softvera već pokrene testiranje, daljnja istraživanja mogu biti suvišna.

Drugi naziv za tehniku ​​sive kutije je poluprozirno uklanjanje pogrešaka.

Ova kategorija uključuje takve metode testiranja:

1) ortogonalni niz - uporaba podskupa svih mogućih kombinacija;

2) matrično ispravljanje pogrešaka pomoću podataka o stanju programa;

3) regresijski test koji se provodi prilikom novih promjena na softveru;

4) test predloška koji analizira dizajn i arhitekturu čvrste aplikacije.

metode za ispitivanje softverskih proizvoda

Usporedba metoda testiranja softvera

Korištenje svih dinamičkih metoda dovodi do kombinatorne eksplozije broja testova koji se moraju razvijati, provoditi i provoditi. Svaka se tehnika treba koristiti pragmatično, uzimajući u obzir njezina ograničenja.

Jedina prava metoda ne postoji, postoje samo oni koji su prikladniji za određeni kontekst. Strukturne tehnike omogućuju nam da pronađemo beskorisne ili zlonamjerne kodove, ali su složene i neprimjenjive za velike programe. Metode temeljene na specifikaciji jedine su koje mogu identificirati kôd koji nedostaje, ali ne mogu identificirati autsajdera. Neke su tehnike prikladnije za određenu razinu testiranja, kao što su pogreške ili kontekst, od drugih.

Ispod su glavne razlike između tri tehnike dinamičkog testiranja - s obzirom na tablicu za usporedbu između tri oblika softvera za ispravljanje pogrešaka.

aspekt

Metoda crne kutije

Siva kutija metoda

Metoda bijele kutije

Dostupnost informacija o sastavu programa

Analiziraju se samo osnovni aspekti

Djelomično poznavanje unutarnjeg dizajna programa

Puni pristup izvornom kodu

Stupanj fragmentacije programa

nizak

središnji

visok

Tko radi uklanjanje pogrešaka?

Krajnji korisnici, testeri i programeri

Krajnji korisnici, debuggers i programeri

Razvojni programeri i testeri

baza

Testiranje se temelji na vanjskim slobodnim situacijama.

DB dijagrami, dijagram toka podataka, unutarnja stanja, poznavanje algoritma i arhitekture

Interni raspored je u potpunosti poznat

Stupanj pokrića

Najmanja iscrpljujuća i zahtijeva minimalno vrijeme

središnji

Potencijalno najopsežniji. Potrebno je dugo vremena

Podaci i unutarnje granice

Jednostavno uklanjanje pogrešaka putem suđenja i pogreške

Datoteke podataka i interne granice mogu se provjeriti ako su poznate

Bolje ispitivanje domena podataka i internih granica

Prikladnost za testiranje algoritma

ne

ne

da

automatizacija

Automatske metode ispitivanja softverskih proizvoda uvelike pojednostavljuju proces verifikacije bez obzira na tehničko okruženje ili kontekst softvera. Koriste se u dva slučaja:

1) automatizirati izvođenje dosadnih, ponavljajućih ili savjesnih zadataka, poput usporedbe datoteka u više tisuća linija kako bi se oslobodilo vrijeme testera da se usredotoči na važnije točke;

2) obavljati ili pratiti zadatke koje ljudi ne mogu lako provesti, kao što su provjere performansi ili analiza vremena odziva koja se može mjeriti u stotinama sekunde.

metode testiranja testiranja softvera

Alati za ispitivanje mogu se klasificirati na različite načine. Sljedeća podjela temelji se na zadacima koje podupiru:

  • Upravljanje testom, što uključuje podršku za upravljanje projektima, verzije, konfiguracije, analizu rizika, praćenje testova, pogreške, nedostatke i alate za izvješćivanje;
  • upravljanje zahtjevima, što uključuje pohranu zahtjeva i specifikacija, njihovu provjeru potpunosti i dvosmislenosti, njihov prioritet i sljedivost svakog testa;
  • kritički osvrt i statička analiza, uključujući praćenje tijeka i zadataka, snimanje i pohranu komentari, otkrivanje kvarova i planiranih ispravaka za upravljanje linkovima na provjeru i pravila, praćenje komunikacija izvornih dokumenata i kod statičke analize za otkrivanje grešaka, osigurati sukladnost sa standardima od pisanja koda, analiza struktura i njihovih ovisnosti, izračun metričkih parametara koda i arhitekture. Osim toga, koristite prevodiocima, analizatori, generatori i odnosa unakrsnih referenci;
  • Modeliranje, koja uključuje alate za modeliranje poslovnog ponašanja i testiranje stvorenih modela;
  • Razvoj testova omogućava stvaranje očekivanih podataka na temelju korisničkih uvjeta i sučelja, modela i koda, upravljanje njima za stvaranje ili modificiranje datoteka i baza podataka, poruka, validacija podataka na temelju pravila upravljanja, analiza statističkih podataka i rizika;
  • Kritičko gledanje unosom podataka putem grafičkog korisničkog sučelja, API-ja, komandnih linija pomoću usporednika, pomažući u određivanju uspješnih i neuspjelih testova;
  • podrška za okruženja za uklanjanje pogrešaka koje vam omogućuju zamjenu nedostajućeg hardvera ili softvera, uključujući hardverske simulatore koji se temelje na podskupu determinističkog izlaza, emulatora terminala, mobilnih telefona ili mrežne opreme, okruženja za provjeru jezika, OS i hardver zamjenom komponenata koje nedostaju s upravljačkim programima, dummy modulima itd., kao i alate za presretanje i modificiranje zahtjeva za OS, simulirajući CPU ograničenja, RAM, ROM ili mrežu;
  • usporedba podataka, baza podataka, provjera očekivanih rezultata tijekom i nakon ispitivanja, uključujući dinamičku i serijsku usporedbu, automatske "oruke";
  • premazivanje mjerenje za lokalizaciju memory leaks i netočne njihova kontrola ponašanja sustava procjenu pod simuliranim aplikacija koja stvara opterećenje opterećenje, baze podataka, mreže ili poslužitelja u realnom scenariju rasta za mjerenje, analizu i verifikaciju izvješća resurse sustava;
  • osiguranje sigurnosti;
  • testiranje performansi, opterećenja i dinamičke analize;
  • Ostali alati, uključujući za provjeru pravopisa i sintakse, sigurnost mreže, dostupnost svih stranica web stranice itd.

perspektiva

S promjenom trendova u softverskoj industriji, proces ispravljanje pogrešaka je i podložne su promjeni. Tu su nove metode testiranja softvera, kao što su usluge-orientirovannae arhitekture (SOA), bežične tehnologije, mobilne usluge, i tako dalje. E., otvorile su se nove načine za testiranje softvera. Neke od promjena koje se očekuju u industriji tijekom sljedećih nekoliko godina su navedene u nastavku:

  • Testeri će osigurati lagane modele koji će razvojnim programerima omogućiti testiranje koda;
  • razvoj metoda testiranja, uključujući gledanje i modeliranje programa u ranoj fazi, eliminirat će mnoge proturječnosti;
  • Prisutnost višestrukih probnih presretanja skratit će vrijeme otkrivanja pogrešaka;
  • Statički analizator i alati za detekciju će se šire primjenjivati;
  • korištenje korisnih matrica, kao što su pokrivenost specifikacijom, pokrivenost modela i pokrivenost kodovima, odredit će razvoj projekata;
  • kombinatorni alati omogućit će ispitivačima određivanje prioritetnih uputa za ispravljanje pogrešaka;
  • Testeri će pružiti više vidljive i vrijedne usluge tijekom procesa razvoja softvera;
  • debuggers će moći stvoriti alate i metode za testiranje softvera pisanog i interakcije s različitim programskim jezicima;
  • Stručnjaci za ispravljanje pogrešaka postat će stručno osposobljeni.

Promijenit će se nove poslovne metode za testiranje programa, načine interakcije sa sustavima i informacijama koje će im pružiti promijenit će se istovremeno smanjujući rizike i povećavajući prednosti promjena poslovanja.

Dijelite na društvenim mrežama:

Povezan
Regresijsko ispitivanje softvera. Što je testiranje regresije?Regresijsko ispitivanje softvera. Što je testiranje regresije?
Testiranje opterećenja: vrste, opis procesaTestiranje opterećenja: vrste, opis procesa
Testiranje programa je proces otkrivanja pogrešaka u softverskom proizvoduTestiranje programa je proces otkrivanja pogrešaka u softverskom proizvodu
Benchmark za računalo: što je to?Benchmark za računalo: što je to?
Pregled korisnog softvera: program za potpuno uklanjanje programaPregled korisnog softvera: program za potpuno uklanjanje programa
PDM sustavi: pregled, primjeri, usporedba. Uvođenje PDM sustavaPDM sustavi: pregled, primjeri, usporedba. Uvođenje PDM sustava
Program za testiranje video kartice na ruskom jezikuProgram za testiranje video kartice na ruskom jeziku
Provjera i validacija: što je to jednostavnim riječima? Koja je razlika između provjere valjanosti…Provjera i validacija: što je to jednostavnim riječima? Koja je razlika između provjere valjanosti…
Uzorak revizijeUzorak revizije
Metode provođenja revizijeMetode provođenja revizije
» » Metode testiranja softvera i njihova usporedba. Ispitivanje metodom `crne kutije` i ispitivanje metodom `white box`
LiveInternet