Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 7, XP
  • Brzi test na trudnoću – Kriteriji odabira i mehanizam djelovanja. Kriteriji kvalitete testa

Brzi test na trudnoću – Kriteriji odabira i mehanizam djelovanja. Kriteriji kvalitete testa

Zahtjevi za idealni kriterij u radu su istaknuti:
  • Kriterij mora biti dovoljan, tj. pokazati kada je neki konačan skup testova dovoljan za testiranje danog programa.
  • Kriterij mora biti potpun, tj. u slučaju greške mora postojati test skupa testova koji zadovoljava kriterij koji otkriva grešku.
  • Kriterij mora biti pouzdan, tj. bilo koja dva skupa testova koji ga zadovoljavaju moraju istovremeno otkriti ili ne otkriti programske pogreške
  • Kriterij mora biti lako provjerljiv, na primjer, izračunato na testovima
  • Za netrivijalne klase programa u opći slučaj nema potpunog i pouzdanog kriterija, ovisno o programima ili specifikacijama, stoga težimo idealnim općim kriterijima kroz stvarne posebne.

    Kriterijske klase

  • Strukturni kriteriji koristiti informacije o strukturi programa (tzv. kriteriji “bijele kutije”)
  • Funkcionalni kriteriji formulirani su u opisu zahtjeva za softverski proizvod ( takozvani kriteriji "crne kutije".)
  • Kriteriji stohastičko testiranje formulirani su u smislu provjere prisutnosti navedenih svojstava u aplikaciji koja se testira, testiranjem određene statističke hipoteze.
  • Kriteriji mutacije usmjereni su na provjeru svojstava softverskog proizvoda na temelju Monte Carlo pristupa.
  • Strukturni kriteriji (klasa I).

    Strukturni kriteriji koristiti programski model “bijele kutije”, koji pretpostavlja poznavanje izvornog koda programa ili specifikacije programa u obliku grafa kontrole toka. Strukturne informacije stoga je razumljiv i dostupan programerima podsustava i aplikacijskih modula ovaj sat kriteriji se često koriste u fazama jediničnog i integracijskog testiranja (Unit testing, Integration testing). Strukturni kriteriji temelje se na osnovnim elementima UGP-a, operatorima, granama i stazama.
  • Kriterijski uvjet naredbe za testiranje(kriterij C0) - skup testova mora osigurati da svaka naredba prođe barem jednom. Ovo je slab kriterij; obično se koristi u velikim programski sustavi, gdje se drugi kriteriji ne mogu primijeniti.
  • Kriterijski uvjet testiranje grana(kriterij C1) - skup testova zajedno mora osigurati da je svaka grana položena barem jednom. Ovo je prilično jak i istovremeno ekonomičan kriterij, budući da je broj grana u aplikaciji koja se testira konačan i ne tako velik. Ovaj se kriterij često koristi u sustavima automatizacije testiranja.
  • Kriterijski uvjet testiranje staze(kriterij C2) - skup testova mora osigurati da se svaki put položi najmanje 1 put. Ako program sadrži petlju (osobito onu s implicitnim brojem ponavljanja), tada je broj ponavljanja ograničen na konstantu (često 2, ili broj klasa izlazne staze).
  • Ispod je primjer jednostavnog programa. Razmotrimo uvjete za njegovo testiranje u skladu s strukturni kriteriji.

    1 public void Metoda (ref int x) ( 2 ako (x>17) 3 x = 17-x; 4 ako (x==-13) 5 x = 0; 6 ) Primjer 3.1. Primjer jednostavnog programa za ispitivanje prema strukturnim kriterijima

    1 void Metoda (int *x) ( 2 if (*x>17) 3 *x = 17-*x; 4 if (*x==-13) 5 *x = 0; 6 ) Primjer 3.1.1. Primjer jednostavnog programa za ispitivanje prema strukturnim kriterijima

    Skup testova jednog testa zadovoljava kriterij naredbe (C0): (X,Y)=((x ulaz =30, x izlaz =0)) pokriva sve operatore praćenja 1-2-3-4-5-6 Testni skup od dva testa, zadovoljava kriterij grananja (C1): (X,Y)=((30,0), (17,17)) dodaje 1 test mnogim testovima za C0 i rutu 1-2-4-6. Trag 1-2-3-4-5-6 prolazi kroz sve grane dostupne u naredbama if pod uvjetom true , a trag 1-2-4-6 kroz sve grane dostupne u naredbama if pod uvjetom false Testni skup od četiri testiranja, zadovoljava kriterij puta (C2): (X,Y)=((30,0), (17,17), (-13,0), (21,-4)) Dan je skup uvjeta za dvije if izjave s oznakama 2 i 4

    Tablica 3.1. Uvjeti if naredbi
    (30,0) (17,17) (-13,0) (21,-4)
    2 ako (x>17)> >
    4 if (x==-13)= =

    Kriterij grane C2 testira program temeljitije od kriterija C1, ali čak i ako je zadovoljen, nema osnove za tvrdnju da je program implementiran u skladu sa specifikacijom, na primjer, ako specifikacija navodi uvjet da je |x|100 , čija se nezadovoljivost može provjeriti testom (-177,-177) . Uistinu, operatori 3 i 4 na testu (-177,-177) neće promijeniti vrijednost x=-177 i rezultat neće zadovoljiti specifikaciju. Strukturni kriteriji ne provjeravajte usklađenost sa specifikacijom osim ako se to ne odražava u strukturi programa. Stoga, kada uspješno testiramo program prema kriteriju C2, možda nećemo primijetiti pogrešku povezanu s neispunjavanjem određenih uvjeta specifikacije zahtjeva.

    Funkcionalni kriteriji (klasa II)

    Funkcionalni kriterij- najvažniji kriterij testiranja za softversku industriju. Pruža, prije svega, kontrolu nad stupnjem do kojeg su zahtjevi korisnika zadovoljeni u softverskom proizvodu. Budući da su zahtjevi formulirani za proizvod kao cjelinu, oni odražavaju interakciju aplikacije koja se testira s okolinom. Funkcionalno testiranje pretežno koristi model crne kutije. Problem s funkcionalnim testiranjem je, prije svega, intenzitet rada; Činjenica je da su dokumenti koji utvrđuju zahtjeve za softverski proizvod (specifikacija softverskih zahtjeva, funkcionalna specifikacija itd.) obično prilično opsežni, međutim, odgovarajuća provjera mora biti sveobuhvatna funkcionalni kriteriji.

    Stavke specifikacije testiranja- skup testova mora osigurati da se svaka testirana stavka provjeri barem jednom.

    Specifikacija zahtjeva može sadržavati stotine i tisuće zahtjeva za softverski proizvod, a svaki od tih zahtjeva tijekom testiranja mora biti verificiran u skladu s kriterijem barem jednim testom

    Testiranje ulaznih klasa- skup testova zajedno mora osigurati da se predstavnik svake klase ulaznih podataka testira barem jednom.

    Prilikom izrade testova, klase ulaznih podataka uspoređuju se s načinima korištenja komponente ili aplikacijskog podsustava koji se testira, što značajno smanjuje brute force opcije koje se uzimaju u obzir pri razvoju testnih slučajeva. Treba napomenuti da prilikom razvrstavanja vrijednosti ulaznih varijabli prema kriteriju (npr. razne datoteke- izvori ulaznih podataka), prisiljeni smo koristiti moćne testove. Dapače, uz ograničenja vrijednosti ulaznih podataka, postoje ograničenja vrijednosti ulaznih podataka u svim mogućim kombinacijama, uključujući provjeru reakcija sustava na pojavu grešaka u vrijednostima ili strukturama ulaznih podataka. . Uzimanje u obzir ove raznolikosti je radno intenzivan proces, što stvara poteškoće za primjenu kriterija

    Testiranje pravila- skup testova ukupno treba osigurati provjeru svakog pravila, ako su ulazne i izlazne vrijednosti opisane skupom pravila, nekom gramatikom.

    Treba napomenuti da gramatika treba biti dovoljno jednostavna kako bi intenzitet rada razvoja odgovarajućeg skupa testova bio realan (uklapa se u vremenski okvir i osoblje stručnjaka dodijeljeno za provedbu faze testiranja)

    Testiranje izlaznih klasa- skup ukupnih testova trebao bi osigurati provjeru predstavnika svake izlazne klase, pod uvjetom da su izlazni rezultati unaprijed klasificirani, i odvojeni razredi rezultati uzimaju u obzir, između ostalog, ograničenja resursa ili vremena ( pauza).

    Prilikom izrade testova, klase izlaznih podataka uspoređuju se s načinima korištenja komponente ili podsustava koji se testira, što značajno smanjuje opcije grube sile koje se uzimaju u obzir pri razvoju testnih slučajeva.

    Ispitivanje funkcija- skup testova zajedno mora osigurati da se svaka radnja koju provodi testirani modul provjeri barem jednom.

    Vrlo popularan kriterij u praksi, koji, međutim, ne pokriva dio funkcionalnosti komponente koja se ispituje povezan sa strukturnim i bihevioralnim svojstvima, čiji opis nije koncentriran na pojedinačne funkcije (tj. opis je raspršen kroz cijeli komponenta).

    Kriterij ispitivanja funkcije djelomično kombinira značajke strukturnih i funkcionalni kriteriji. Temelji se na modelu "prozirne kutije", gdje su eksplicitno naznačeni ne samo ulazi i izlazi komponente koja se testira, već i sastav i struktura metoda (funkcija, procedura) i klasa koje se koriste.

    Kombinirani kriteriji za programe i specifikacije- skup testova zajedno mora osigurati da se sve kombinacije dosljednih programskih uvjeta i specifikacija provjere najmanje jednom.

    U ovom slučaju, sve kombinacije konzistentnih uvjeta moraju biti potvrđene, a uvjeti kontradikcija moraju biti otkriveni i eliminirani.

    Primjer korištenja kriterija funkcionalnog testiranja za razvoj skupa testova na temelju kriterija klasa ulaznih podataka

    Pretpostavimo da je za rješavanje problema testiranja sustava "Upravljački sustav za automatizirani skladišni kompleks ležajeva" (vidi Dodatak 1, FS) razvijen sljedeći fragment specifikacije zahtjeva:
  • Upitajte stanje skladišta (pozovite funkciju GetStoreStat). Dodajte unos "SUSTAV: Zatražen status SKLADIŠTA" u dnevnik poruka. Ovisno o primljenoj vrijednosti, izvršite sljedeće radnje:
  • Anketiranje osovinskog terminala (poziv funkcije za primanje poruke s terminala - GetAxlePar). Poruku "SUSTAV: traženi parametri osi" treba dodati u dnevnik poruka. Ovisno o vrijednosti koju vraća funkcija GetAxlePar, treba izvršiti sljedeće radnje ():
  • Definirajmo klase ulaznih podataka za parametar - stanje skladišta:
  • Status skladišta = 0 (ispravno).
  • Stanje skladišta = 4 (točno).
  • Stanje skladišta = 16 (točno).
  • Stanje skladišta = 32 (točno).
  • Status skladišta = bilo koja druga vrijednost (nevažeća).
  • Sada pogledajmo testne slučajeve:

    Test slučaj 1 (pokriva klasu 4):

    Stanje skladišta - 32.

    Sustav traži status skladišta (pozovite funkciju GetStoreStat) i prima 32

    Testni slučaj 2 (pokriva klasu 5):

    Stanje okruženja (unos - X):

    Stanje skladišta je 12dfga.

    Očekivani slijed događaja (izlaz - Y):

    Sustav zahtijeva status skladišta (pozovite funkciju GetStoreStat) i, prema specifikacijskoj klauzuli, ako je vrijednost statusa skladišta netočna, u dnevnik se dodaje poruka “SKLADIŠTE: POGREŠKA: Nedefinirano stanje”.

    Stohastički kriteriji (klasa III)

    Stohastičko testiranje koristi se pri testiranju kompleksa programski sustavi- kada skup determinističkih testova (X,Y) ima ogromnu snagu. U slučajevima kada se takav skup ne može razviti i izvršiti tijekom faze testiranja, može se primijeniti sljedeća metodologija.
  • Razviti programe koji simuliraju slučajne sekvence ulaznih signala (x).
  • Izračunati na samostalan način vrijednosti (y) za odgovarajuće ulazne signale (x) i dobiti ispitni set(X,Y) .
  • Testirajte aplikaciju na ispitnom skupu (X,Y), koristeći dva načina za kontrolu rezultata:
  • Kriteriji stohastičko testiranje
  • Statističke metode kraj testiranja - stohastičke metode za donošenje odluka o koincidenciji distribucijskih hipoteza slučajne varijable. Tu spadaju dobro poznati: Studentova metoda (St), Hi-kvadrat metoda (χ 2) itd.
  • metoda procjene stope otkrivanja grešaka- temeljeno na modelu stope otkrivanja grešaka, koji kaže da testiranje prestaje ako je procijenjeni vremenski interval između trenutnog buga i sljedećeg predug za fazu testiranja aplikacije.

  • Riža. 3.1.

    Prilikom formalizacije modela stope otkrivanja pogrešaka () korištene su sljedeće oznake: N - početni broj pogrešaka u programskom paketu prije testiranja, C - konstanta za smanjenje stope otkrivanja pogrešaka zbog pronalaska sljedeće pogreške, t 1, t 2,...t n - niz rastućih intervala detekcije sekvenci od n pogrešaka, T je vrijeme za identificiranje n pogrešaka Ako pretpostavimo da je n pogrešaka identificirano tijekom vremena T, tada je relacija (1) važeća, navodeći da je umnožak brzine identificiranja pogreške i i vremena identificiranja pogreške 1 po definiciji:

    (1) (N-i+1)*C*t i = 1

    Pod ovom pretpostavkom, relacija (2) vrijedi za n pogrešaka:

    (2) N*C*t 1 +(N-1)*C*t 2 +…+(N-n+1)*C*t n =n N*C*(t 1 +t 2 +…+t n ) - C*Σ(i-1)t i = n NCT - C*Σ(i-1)t i = n

    Ako odredimo t i iz (1) i zbrojimo od 1 do n, tada dolazimo do relacije (3) za vrijeme T za otkrivanje n grešaka

    (3) Σ1/(N-i+1) = TC

    Izrazimo li C iz (2), dolazimo do relacije (4):

    (4) C = n/(NT - Σ(i-1)t i)

    Konačno, zamjenom C u (3), dobivamo konačnu relaciju (5), pogodnu za procjene:

    (5) Σ1/(N-i+1) = n/(N - 1/T*Σ(i-1)t i)

    Ako približno procijenimo vrijednost N koristeći poznate metode za procjenu broja grešaka u programu ili podatke o gustoće grešaka za projekte dotične klase iz povijesne baze podataka o projektima, a dodatno koristiti trenutne podatke o intervali između grešaka t 1 ,t 2 …t n dobivenih tijekom faze testiranja, zatim zamjenom ovih podataka u (5), možete dobiti procjenu t n+1 vremenskog intervala potrebnog za pronalaženje i ispravljanje sljedeće pogreške (buduće pogreške If). t n+1 >Td je dopušteno vrijeme za testiranje projekta, zatim završavamo testiranje, inače nastavljamo tražiti greške promatrajući slijed intervala grešaka t 1 ,t 2 ...t n , te vrijeme utrošeno na identifikaciju. n pogrešaka T=Σt i , možemo predvidjeti vremenski interval do sljedećih pogrešaka i precizirati vrijednost C u skladu s (4). Moranda kriterij je vrlo praktičan jer se oslanja na informacije koje se tradicionalno prikupljaju tijekom procesa testiranja.

    Kriterij mutacije (razred IV).

    Pretpostavlja se da profesionalni programeri pišu gotovo odmah ispravne programe, razlikuju se od ispravnih zbog manjih grešaka ili tipfelera poput - storniranja maksimalne vrijednosti indeksi u opisima polja, greške u predznacima aritmetičke operacije, podcjenjivanje ili precjenjivanje granice ciklusa za 1, itd. Predlaže se pristup koji omogućuje procjenu na temelju malih pogrešaka ukupni broj pogreške preostale u programu pristup se temelji na sljedećim konceptima: Mutacije - manje pogreške u programu. Mutanti su programi koji se međusobno razlikuju po mutacijama. Metoda ispitivanja mutacija- u razvijeni program P unose se mutacije, tj. umjetno stvoriti mutante programe P1, P2 ... Zatim se program P i njegovi mutanti testiraju na istom skupu testova (X,Y) Ako se na skupu (X,Y) potvrđuje ispravnost programa P i dodatno , sve pogreške unesene u mutirane programe, dakle skup testova (X,Y) odgovara kriterij mutacije, i deklarira se program koji se testira ispraviti.Ako neki mutanti nisu identificirali sve mutacije, tada je potrebno proširiti set testova (X,Y) i nastaviti s testiranjem.

    Primjer primjene kriterija mutacije

    Testirani program P prikazan je na . Za njega su stvorena dva mutirana programa P1 i P2 početna vrijednost varijabla z od 1 do 2 (). U P2, početna vrijednost varijable i mijenja se od 1 do 0, a granična vrijednost indeksa petlje se mijenja od n do n-1 (). (X,Y) = ((x=2,n=3,y=8),(x=999,n=1,y=999), (x=0,n=100,y=0) Otkrivaju se sve greške u mutiranim programima i greška u glavnom programu, gdje je u uvjetu petlje n-1 umjesto n:

    // Metoda izračunava nenegativnu // potenciju n broja x static public double PowerNonNeg(double x, int n) ( double z=1; if (n>0) ( for (int i=1; n-1> Primjer 3.2. Glavni program P

    double PowerNonNeg(double x, int n) ( double z=1; int i; if (n>0) ( for (i=1;n-1> Primjer 3.2.1. Glavni program P

    Promijenjena početna vrijednost varijable z u mutantu P1 označena je svijetlim tonom:

    // Metoda izračunava nenegativnu // potenciju n broja x static public double PowerMutant1(double x, int n) ( double z=2; if (n>0) ( for (int i=1; n>=i;i++) ( z = z*x; ) else Console.WriteLine("Greška! Snaga n mora biti veća od 0."); Primjer 3.3. Mutant program P1.

    double PowerMutant1(double x, int n) ( double z=2; int i; if (n>0) ( for (i=1;n>=i;i++) ( z = z*x; ) ) else printf( "Pogreška! Snaga n mora biti veća od 0."); return z ) Primjer 3.3.1. Mutant program P1.

    Promijenjena početna vrijednost varijable i i granica petlje kod P2 mutanta označena je svijetlim tonom:

    // Metoda izračunava nenegativnu // potenciju n broja x static public double PowerMutant2(double x, int n) ( double z=1; if (n>0) ( for (int i=0; n-1>=i;i++ ) ( z = z*x; ) else Console.WriteLine("Greška! Snaga n mora biti veća od 0"); return z; Primjer 3.4. Mutant program P2.

    double PowerMutant2(double x, int n) ( double z=1; int i; if (n>0) ( for (i=0;n-1>=i;i++) ( z = z*x; ) ) else printf("Greška! Snaga n mora biti veća od 0."); return z ) Primjer 3.4.1. Mutant program P2.

    1. Kriterij mora biti dovoljan, tj. pokazati kada je neki konačan skup testova dovoljan za testiranje danog programa.
    2. Kriterij mora biti potpun, tj. u slučaju greške mora postojati test skupa testova koji zadovoljava kriterij koji otkriva grešku.
    3. Kriterij mora biti pouzdan, tj. bilo koja dva skupa testova koji ga zadovoljavaju moraju istovremeno otkriti ili ne otkriti programske pogreške
    4. Kriterij mora biti lako provjerljiv, na primjer, izračunato na testovima

    Za netrivijalne klase programa u općem slučaju nema potpunog i pouzdanog kriterija ovisno o programima ili specifikacijama.

    Stoga težimo idealnom općem kriteriju kroz stvarne partikularne.

    Kriterijske klase

    1. Strukturni kriteriji koristiti informacije o strukturi programa (tzv. kriteriji “bijele kutije”)
    2. Funkcionalni kriteriji formulirani su u opisu zahtjeva za softverski proizvod ( takozvani kriteriji "crne kutije".)
    3. Kriteriji stohastičko testiranje formulirani su u smislu provjere prisutnosti navedenih svojstava u aplikaciji koja se testira, testiranjem određene statističke hipoteze.
    4. Kriteriji mutacije usmjereni su na provjeru svojstava softverskog proizvoda na temelju Monte Carlo pristupa.

    Strukturni kriteriji (klasa I).

    Strukturni kriteriji koristiti model programa u obliku „bijele kutije“, što pretpostavlja poznavanje izvornog koda programa odn specifikacije programa u obliku grafa kontrole protoka. Strukturne informacije su razumljive i dostupne programerima aplikacijskih podsustava i modula, stoga se ova klasa kriterija često koristi u fazama modularnih i integracijsko testiranje(Jedinično testiranje, Integracijsko testiranje).

    Strukturni kriteriji temelje se na osnovnim elementima UGP-a, operatorima, granama i stazama.

    • Kriterijski uvjet naredbe za testiranje(kriterij C0) - skup testova mora osigurati da svaka naredba prođe barem jednom. Ovo je slab kriterij i obično se koristi u velikim softverskim sustavima gdje se drugi kriteriji ne mogu primijeniti.
    • Kriterijski uvjet testiranje grana(kriterij C1) - skup testova zajedno mora osigurati da je svaka grana položena barem jednom. Ovo je prilično jak i istovremeno ekonomičan kriterij, budući da je broj grana u aplikaciji koja se testira konačan i ne tako velik. Ovaj se kriterij često koristi u sustavima automatizacija testiranja.
    • Kriterijski uvjet testiranje staze(kriterij C2) - skup testova mora osigurati da se svaki put položi najmanje 1 put. Ako program sadrži petlju (osobito onu s implicitnim brojem ponavljanja), tada je broj ponavljanja ograničen na konstantu (često 2, ili broj klasa izlazne staze).
    Tablica 3.1. Uvjeti if naredbi
    (30,0) (17,17) (-13,0) (21,-4)
    2 ako (x>17) > >
    4 if (x==-13) =

    Kriterij staze C2 provjerava program temeljitije od kriterija C1, ali čak i ako je zadovoljen, nema razloga tvrditi da


    Zahtjevi za idealni kriterij ispitivanja
    Kriterij mora biti dovoljan.
    Kriterij mora biti potpun.
    Kriterij mora biti pouzdan.
    Kriterij mora biti lako provjerljiv
    Za netrivijalne klase programa općenito ne postoji potpun i pouzdan kriterij ovisno o programima ili specifikacijama.
    Stoga težimo idealnom općem kriteriju kroz stvarne partikularne.

    Kriterijske klase
    Strukturalni
    Funkcionalan
    Kriteriji za stohastičko testiranje formulirani su u smislu provjere prisutnosti navedenih svojstava u aplikaciji koja se testira, testiranjem određene statističke hipoteze.
    Kriteriji mutacije usmjereni su na provjeru svojstava softverskog proizvoda na temelju Monte Carlo pristupa.

    Strukturni kriteriji
    - koristiti programski model u obliku “bijele kutije”, koji pretpostavlja poznavanje izvornog teksta programa ili specifikacije programa u obliku grafa kontrole toka. Ova klasa kriterija često se koristi u fazama jediničnog i integracijskog testiranja (testiranje jedinice, integracijsko testiranje)

    Strukturni kriteriji temelje se na glavnim elementima UGP-a, operaterima, granama i putovima.
    Uvjet kriterija testiranja naredbe (kriterij C0) - skup testova ukupno mora osigurati da je svaka naredba prošla barem jednom. Ovo je slab kriterij i obično se koristi u velikim softverskim sustavima gdje se drugi kriteriji ne mogu primijeniti.
    Uvjet kriterija testiranja grane (kriterij C1) je da skup testova zajedno mora osigurati da je svaka grana položena barem jednom. Ovo je prilično jak i istovremeno ekonomičan kriterij, budući da je broj grana u aplikaciji koja se testira konačan i ne tako velik. Ovaj se kriterij često koristi u sustavima automatizacije testiranja.
    Uvjet kriterija za testiranje staza (kriterij C2) - skup testova ukupno mora osigurati da se svaka staza položi barem 1 put. Ako program sadrži petlju (osobito onu s implicitnim brojem ponavljanja), tada je broj ponavljanja ograničen na konstantu (često 2, ili broj klasa izlazne staze).

    Funkcionalni kriteriji
    - najvažniji kriterij testiranja za softversku industriju. Pruža, prije svega, kontrolu nad stupnjem do kojeg su zahtjevi korisnika zadovoljeni u softverskom proizvodu. Odražavaju interakciju aplikacije koja se testira s okolinom. Koristi se model "crne kutije". Problem: radno intenzivan; Činjenica je da su dokumenti koji određuju zahtjeve za softverski proizvod (specifikacija softverskih zahtjeva, funkcionalna specifikacija itd.) prilično opsežni.

    Testiranje specifikacijskih stavki - skup testova zajedno mora osigurati da je svaka testirana stavka provjerena barem jednom.
    Testiranje klasa ulaznih podataka - skup testova zajedno mora osigurati da predstavnik svake klase ulaznih podataka bude testiran barem jednom. Prilikom izrade testova, klase ulaznih podataka uspoređuju se s načinima korištenja komponente ili aplikacijskog podsustava koji se testira, što značajno smanjuje brute force opcije koje se uzimaju u obzir pri razvoju testnih slučajeva. Treba napomenuti da smo prisiljeni koristiti moćne pakete testova. Dapače, uz ograničenja vrijednosti ulaznih podataka, postoje ograničenja vrijednosti ulaznih podataka u svim mogućim kombinacijama, uključujući provjeru reakcija sustava na pojavu grešaka u vrijednostima ili strukturama ulaznih podataka. . Uzimanje u obzir ove raznolikosti je radno intenzivan proces, što stvara poteškoće u primjeni kriterija
    Pravila testiranja - skup testova zajedno treba osigurati da je svako pravilo provjereno ako su ulazne i izlazne vrijednosti opisane skupom pravila neke gramatike.
    Testiranje izlaznih klasa - skup testova zajedno treba osigurati provjeru predstavnika svake izlazne klase, pod uvjetom da su izlazni rezultati klasificirani unaprijed, a pojedinačne klase rezultata uzimaju u obzir, između ostalog, ograničenja resursa ili vremenskog ograničenja. Prilikom izrade testova, klase izlaznih podataka uspoređuju se s načinima korištenja komponente ili podsustava koji se testira, što značajno smanjuje opcije grube sile koje se uzimaju u obzir pri razvoju testnih slučajeva.
    Testiranje funkcija - skup testova zajedno mora osigurati da se svaka radnja koju provodi testirani modul provjeri barem jednom. Ne pruža pokrivenost dijela funkcionalnosti komponente koja se testira povezana sa strukturnim svojstvima i svojstvima ponašanja, čiji opis nije koncentriran u pojedinačnim funkcijama (tj. opis je raspršen kroz komponentu). Kriterij funkcionalnog ispitivanja djelomično kombinira značajke strukturnog i funkcionalnog kriterija. Temelji se na modelu "prozirne kutije", gdje su eksplicitno naznačeni ne samo ulazi i izlazi komponente koja se testira, već i sastav i struktura metoda (funkcija, procedura) i klasa koje se koriste.
    Kombinirani kriteriji za programe i specifikacije - skup testova zajedno mora osigurati da se sve kombinacije konzistentnih programskih uvjeta i specifikacija testiraju barem jednom.

    Stohastički kriteriji
    - koristi se kod testiranja složenih softverskih sustava - kada skup determinističkih testova ima ogromnu moć. U slučajevima kada se takav skup ne može razviti i izvršiti tijekom faze testiranja

    Potrebno je razviti programe koji simuliraju slučajne sekvence ulaznih signala (x). Nezavisno izračunajte vrijednosti (y) za odgovarajuće ulazne signale (x) i dobijete ispitni skup (X,Y). Testirajte aplikaciju na ispitnom skupu (X,Y), koristeći dva načina za kontrolu rezultata:
    Deterministička kontrola - provjera podudarnosti izračunate vrijednosti y s vrijednošću y dobivenom kao rezultat izvođenja testa na skupu (x) - slučajnom nizu ulaznih signala koje generira simulator.
    Stohastička kontrola - provjera usklađenosti skupa vrijednosti (y), dobivenih kao rezultat izvođenja testova na skupu ulaznih vrijednosti (x), s prethodno poznatom distribucijom rezultata F (Y).

    U ovom slučaju skup Y je nepoznat (njegov izračun je nemoguć), ali je poznat zakon raspodjele tog skupa.

    Stohastički kriteriji ispitivanja
    Statističke metode za dovršetak testiranja - stohastičke metode za donošenje odluka o podudarnosti hipoteza o raspodjeli slučajnih varijabli. Tu spadaju dobro poznate: Studentova metoda, Hi-kvadrat metoda.
    Metoda procjene stope otkrivanja pogrešaka - temelji se na modelu stope otkrivanja grešaka, prema kojem se testiranje zaustavlja ako je procijenjeni vremenski interval između trenutne i sljedeće pogreške predug za fazu testiranja aplikacije.

    Kriterij mutacije (razred IV).
    - Pretpostavlja se da profesionalni programeri odmah pišu gotovo ispravne programe koji se od ispravnih razlikuju manjim pogreškama ili pogreškama pri upisu - okretanje maksimalnih vrijednosti indeksa u opisu nizova, pogreške u predznacima aritmetičkih operacija, podcjenjivanje ili precjenjivanje granica petlje za 1, itd. Predlaže se pristup koji omogućuje, na temelju malih pogrešaka, procjenu ukupnog broja preostalih pogrešaka u programu.

    Mutacije su manje greške u programu.
    Mutanti su programi koji se međusobno razlikuju po mutacijama.

    Metoda ispitivanja mutacija - u razvijeni program P uvode se mutacije, t.j. umjetno stvoriti mutante programe P1, P2... Zatim se program P i njegovi mutanti testiraju na istom skupu testova (X,Y).
    Ako je ispravnost programa P potvrđena na skupu (X,Y) i, osim toga, identificirane su sve pogreške unesene u mutant programe, tada ispitni skup (X,Y) odgovara kriteriju mutacije, a testirani program je proglašen ispravnim.

    Testiranje informacijskih sustava

    1.2. Kriteriji ispitivanja.

    Zahtjevi za idealan kriterij ispitivanja mogu se identificirati:

    · Kriterij mora biti dovoljan, tj. pokazati kada je neki konačan skup testova dovoljan za testiranje danog programa.

    · Kriterij mora biti potpun, tj. u slučaju greške mora postojati test skupa testova koji zadovoljava kriterij koji otkriva grešku.

    · Kriterij mora biti pouzdan, tj. bilo koja dva skupa testova koji ga zadovoljavaju moraju istovremeno otkriti ili ne otkriti programske pogreške.

    · Kriterij mora biti lako provjerljiv, na primjer, izračunat u testovima.

    Za netrivijalne klase programa općenito ne postoji potpun i pouzdan kriterij ovisno o programima ili specifikacijama. Stoga se u pravilu teži idealnom općem kriteriju preko stvarnih partikularnih.

    Klase kriterija:

    · Strukturni kriteriji koriste informacije o strukturi programa (tzv. kriteriji “bijele kutije”).

    · Funkcionalni kriteriji formulirani su u opisu zahtjeva za programski proizvod (tzv. kriteriji “crne kutije”).

    · Kriteriji stohastičkog testiranja formulirani su u smislu provjere prisutnosti određenih svojstava u aplikaciji koja se testira, pomoću testiranja neke statističke teorije.

    · Kriteriji mutacije usmjereni su na provjeru svojstava softverskog proizvoda na temelju Monte Carlo pristupa.

    Strukturni kriteriji (klasa I).

    Strukturni kriteriji koriste programski model bijele kutije, koji pretpostavlja poznavanje izvornog koda programa ili specifikacije programa u obliku grafa kontrole toka. Strukturne informacije su razumljive i dostupne programerima aplikacijskih podsustava i modula, stoga se ova klasa kriterija često koristi u fazama jediničnog i integracijskog testiranja.

    Strukturni kriteriji temelje se na glavnim elementima UGP-a, operaterima, granama i putovima.

    · Uvjet kriterija testiranja naredbi (kriterij C0) - skup testova ukupno mora osigurati da se svaka naredba prođe barem jednom. Ovo je slab kriterij, koristi se u velikim softverskim sustavima gdje se drugi kriteriji ne mogu primijeniti.

    · Uvjet kriterija za testiranje grana (kriterij C1) - skup testova ukupno mora osigurati da svaka grana bude položena barem jednom. Ovo je prilično jak, au isto vrijeme i ekonomičan kriterij. Ovaj se kriterij često koristi u sustavima automatizacije testiranja.

    · Uvjet kriterija za testiranje staza (kriterij C2) - skup testova ukupno mora osigurati da se svaka staza prođe barem jednom. Ako program sadrži petlju (osobito onu s implicitnim brojem ponavljanja), tada je broj ponavljanja ograničen na konstantu (često 2, ili broj klasa izlazne staze).

    Strukturni kriteriji ne provjeravaju sukladnost sa specifikacijom ako

    ne odražava se na strukturu programa.

    Funkcionalni kriteriji (klasa II).

    Funkcionalni kriterij najvažniji je kriterij testiranja za softversku industriju. Pruža, prije svega, kontrolu nad stupnjem do kojeg su zahtjevi korisnika zadovoljeni u softverskom proizvodu. Budući da su zahtjevi formulirani za proizvod kao cjelinu, oni odražavaju interakciju aplikacije koja se testira s okolinom. Funkcionalno testiranje pretežno koristi model crne kutije. Problem s funkcionalnim testiranjem je, prije svega, intenzitet rada; Činjenica je da su dokumenti koji utvrđuju zahtjeve za softverski proizvod (specifikacija softverskih zahtjeva, funkcionalna specifikacija itd.) obično prilično opsežni, međutim, odgovarajuća provjera mora biti sveobuhvatna.

    Ispod su određene vrste funkcionalnih kriterija.

    · Testiranje stavki specifikacije - skup testova treba osigurati da je svaka testirana stavka provjerena barem jednom. Specifikacija zahtjeva može sadržavati stotine i tisuće zahtjeva za programski proizvod, a svaki od tih zahtjeva tijekom testiranja mora biti provjeren u skladu s kriterijem barem jednim testom.

    · Testiranje klasa ulaznih podataka - skup testova zajedno mora osigurati da predstavnik svake klase ulaznih podataka bude testiran barem jednom. Prilikom izrade testova, klase ulaznih podataka uspoređuju se s načinima korištenja komponente ili podsustava aplikacije koji se testira, što značajno smanjuje brute-force opcije koje se uzimaju u obzir pri razvoju testnih slučajeva. Treba napomenuti da smo, razvrstavanjem vrijednosti ulaznih varijabli prema kriteriju (primjerice, razne datoteke - izvori ulaznih podataka), prisiljeni koristiti moćne testne skupove. Dapače, uz ograničenja vrijednosti ulaznih podataka, postoje ograničenja vrijednosti ulaznih podataka u svim mogućim kombinacijama, uključujući provjeru reakcija sustava na pojavu grešaka u vrijednostima ili strukturama ulaznih podataka. . Uzimanje u obzir ove raznolikosti je naporan proces, što stvara poteškoće u primjeni kriterija.

    · Testiranje pravila - skup testova zajedno treba osigurati provjeru svakog pravila ako su ulazne i izlazne vrijednosti opisane skupom pravila neke gramatike. Treba napomenuti da gramatika treba biti dovoljno jednostavna kako bi intenzitet rada razvoja odgovarajućeg skupa testova bio realan (uklapa se u vremenski okvir i osoblje stručnjaka dodijeljeno za provedbu faze testiranja).

    · Testiranje klasa izlaza - skup testova zajedno trebao bi osigurati provjeru predstavnika svake klase izlaza, pod uvjetom da su rezultati izlaza klasificirani unaprijed, s pojedinačnim razredima rezultata koji pokazuju, uključujući ograničenja resursa ili vremenskog ograničenja.
    Prilikom izrade testova, klase izlaznih podataka uspoređuju se s načinima korištenja komponente ili podsustava koji se testira, što značajno smanjuje opcije grube sile koje se uzimaju u obzir pri razvoju testnih slučajeva.

    · Testiranje funkcija - skup testova zajedno mora osigurati da se svaka radnja koju provodi testirani modul provjeri najmanje jednom. Vrlo popularan kriterij u praksi, koji, međutim, ne pokriva dio funkcionalnosti komponente koja se ispituje povezan sa strukturnim i bihevioralnim svojstvima, čiji opis nije koncentriran na pojedinačne funkcije (tj. opis je raspršen kroz cijeli komponenta).

    Kriterij funkcionalnog ispitivanja djelomično kombinira značajke strukturnog i funkcionalnog kriterija. Temelji se na modelu "prozirne kutije", gdje su eksplicitno naznačeni ne samo ulazi i izlazi komponente koja se testira, već i sastav i struktura metoda (funkcija, procedura) i klasa koje se koriste.

    · Kombinirani kriteriji za programe i specifikacije - skup testova zajedno mora osigurati da se sve kombinacije dosljednih programskih uvjeta i specifikacija provjere barem jednom. U ovom slučaju, sve kombinacije konzistentnih uvjeta moraju biti potvrđene, a uvjeti kontradikcija moraju biti otkriveni i eliminirani.

    Stohastički kriteriji (klasa III).

    Stohastičko testiranje se koristi kod testiranja složenih softverskih sustava – kada skup determinističkih testova (X, Y) ima ogromnu moć. U slučajevima kada se takav skup ne može razviti i izvršiti tijekom faze testiranja, može se primijeniti sljedeća metodologija.

    · Razviti programe koji simuliraju nasumične sekvencijalne ulazne signale (x).

    · Neovisno izračunajte vrijednosti (y) za odgovarajuće ulazne signale (y) i dobijete ispitni skup (X,Y).

    · Testirajte aplikaciju na ispitnom setu (X,Y), koristeći dva načina za kontrolu rezultata:

    1. Deterministička kontrola - provjera usklađenosti izračunate vrijednosti s vrijednošću y dobivenom kao rezultat izvođenja testa na skupu (x) - slučajnom nizu ulaznih signala koje generira simulator.

    2. Stohastička kontrola - provjera usklađenosti skupa (), dobivenog kao rezultat izvođenja testova na skupu vrijednosti (x), s prethodno poznatom distribucijom rezultata F (Y). U ovom slučaju skup y je nepoznat (njegov izračun je nemoguć), ali je poznat zakon raspodjele tog skupa.

    Kriteriji stohastičkog testiranja:

    · Statističke metode za dovršetak testiranja - stohastičke metode za donošenje odluka o podudarnosti hipoteza o distribuciji slučajnih varijabli. Tu spadaju dobro poznati: Studentova metoda (St), Hi-kvadrat metoda (x 2) itd.

    · Metoda procjene stope otkrivanja pogrešaka - temelji se na modelu stope otkrivanja pogrešaka, prema kojem se testiranje zaustavlja ako je procijenjeni vremenski interval između trenutne i sljedeće pogreške predug za fazu testiranja aplikacije.

    Kriterij mutacije (razred IV).

    Pretpostavlja se da profesionalni programeri odmah pišu gotovo ispravne programe koji se od ispravnih razlikuju manjim pogreškama ili tipografskim pogreškama - obrnutim maksimalnim vrijednostima indeksa u opisima polja, pogreškama u predznacima aritmetičkih operacija, podcjenjivanjem ili precjenjivanjem petlje granica za 1, itd. Predlaže se pristup koji omogućuje, na temelju malih pogrešaka, procjenu ukupnog broja preostalih pogrešaka u programu.

    Pristup se temelji na sljedećim konceptima:

    Mutacije su manje greške u programu.

    Mutanti su programi koji se međusobno razlikuju po mutacijama.

    Metoda ispitivanja mutacija - u razvijeni program P uvode se mutacije, t.j. umjetno stvoriti mutante programe P1, P2... Zatim se program P i njegovi mutanti testiraju na istom skupu testova (X,Y).

    Ako je ispravnost programa P potvrđena na skupu (X,Y) i, osim toga, identificirane su sve pogreške unesene u mutant programe, tada ispitni skup (X,Y) odgovara kriteriju mutacije, a testirani program je proglašen ispravnim.

    Ako neki mutanti nisu otkrili sve mutacije, tada se skup testova (X,Y) mora proširiti i testiranje nastaviti.

    Automatizirani WEB-sustav za testiranje studenata

    Postupak testiranja za ovo softverski proizvod je podijeljen u 2 faze: · testiranje korisničke stranice prikazano je u tablici br.11. Tablica broj 11...

    Automatizirani sustav testiranja učenika na različitim platformama

    Proces testiranja ovog softverskog proizvoda podijeljen je u 2 faze: · testiranje korisničkog proizvoda prikazano je u tablici br.11. Tablica broj 11...

    Proučavanje algoritama upravljanja resursima za jednoprocesorske poslužitelje tijekom online obrade zadataka (SPT i RR algoritmi)

    Sljedeći kriteriji koriste se za usporedbu algoritama kratkoročnog raspoređivača: 1. Iskorištenost procesora (korištenje) Iskorištenost procesora. Iskorištenje CPU-a može teoretski varirati od 0 do 100%...

    Klasifikacija automatizirani sustavi upravljanje

    Klasifikacija sustava automatiziranog upravljanja bitno ovisi o kriterijima klasifikacije...

    Koncept izgradnje distribucijskog kompleta

    Kao što znate, do danas je čovječanstvo došlo do samo dva načina za upravljanje softverom - sastavljanjem izravno iz paketa izvorni tekstovi i instalacija iz rekompiliranih binarnih paketa. U skladu...

    Opravdanje za odabir najprestižnijeg sveučilišta u Permu

    Definirajmo kriterije po kojima ću ocjenjivati ​​predložene alternative. Identificirao sam 7 glavnih kriterija: 1. Javno mišljenje. Ovo je najviše važan kriterij, na kojem se temelji imidž sveučilišta. 2. Prepoznavanje. Važan je i ugled sveučilišta...

    Lokalni projekt računalna mreža drugi kat škole br.19

    Glavni kriterij za prihvaćanje je usklađenost gotovog projekta sa zahtjevima kupca, kao i kvaliteta obavljenog posla...

    Izrada web stranice za "Trgovina dječjih igračaka"

    5. Podsustav za ekranski izlaz sustav pomoći za korisnika; 6. Podsustav za prikaz informacija o programu na ekranu. 2...

    Razvoj multimedije elektronički udžbenik

    Objavljeno na http://www.allbest...

    Izrada multimedijskog elektroničkog udžbenika iz discipline "Računalne mreže"

    Jedan od kriterija za odabir hostinga je korišteni operacijski sustav, budući da o tome ovisi softver koji će podržavati funkcionalnost pojedinih servisa...

    Testiranje LAN baterija

    Za opis stanja mreže odabrana je metoda graničnih vrijednosti čija je suština usporedba svake izmjerene vrijednosti s tabličnom preporučenom vrijednošću...

    Često se susrećemo s pitanjem “Što prvo automatizirati?” Automatizacija se ne radi radi automatizacije: želite vidjeti rezultat procesa koji bi dao pozitivan ROI (možete pročitati više o izračunu ROI-a).

    Zašto je važno koristiti automatizaciju?

    Obično se vjeruje da automatizacija testiranja djeluje kao alat za podršku ručnom testiranju, ali zapravo je važno razumjeti da je automatizacija Najbolji način ne samo da štedi vrijeme, već i povećava učinkovitost, širinu pokrivenosti i točnost testiranja, jer ponavljajući zadaci u ručnom pristupu predstavljaju opasnost od ljudske pogreške. Automatizacija ne nadilazi niti zamjenjuje ručno testiranje, već ga nadopunjuje. Kao i upravljanje testiranjem, automatizacija također treba strategiju s pravilnim planiranjem, nadzorom i kontrolom. Automatizatori ne samo da uče nove načine automatizacije, već i donose mnogo pametnih odluka. Automatizacija na ispravna implementacija može biti prednost timu, projektu i organizaciji.
    Brojne su prednosti automatizacije, a mi ćemo spomenuti sljedeće:

    • ubrzava uobičajene zadatke kao što su dimni i regresijski testovi;
    • pomaže u pripremi testnih podataka;
    • optimizira izvođenje testnih slučajeva povezanih sa složenom poslovnom logikom;
    • olakšava testne slučajeve na više platformi (na primjer, pri testiranju različitih operativnih sustava, preglednika itd.);
    • Izvrsno za izvršavanje testnih slučajeva koje je teško ili čak nemoguće dovršiti ručno;
    • Dobro pomaže u slučajevima kada je broj ponavljanja tijekom izvođenja unaprijed nepoznat.

    U isto vrijeme, ne zaboravite da automatizira cijeli proces testiranja softver teško i isplativo, kako zbog visoke cijene alata za testiranje tako i zbog potencijalne nestabilnosti određenih dijelova aplikacije. Projektne situacije uvelike utječu na izbor područja za automatizaciju (bilo da se radi o automatizaciji testova za regresiju ili automatizaciji koja će pokazati uska mjesta u čestim skupštinama). Opisujući sve moguće opcije, riskiramo dobiti cijelu knjigu, pa ćemo razmotriti samo najčešću situaciju: potrebno je automatizirati regresijski skup.

    Dakle, koji su kriteriji za odabir testnih slučajeva za automatizaciju?

    Jedan od naj uobičajene pogreške Ono što testeri rade je odabir pogrešnih testova za automatizaciju. Potrebno je pažljivo analizirati i identificirati kandidate za automatizaciju, uzimajući u obzir najviše važan faktor, odnosno ROI; drugim riječima, morate smisliti načine za postizanje većeg i pozitivnijeg povrata ulaganja. Da biste to učinili, morat ćete poduzeti niz radnji:

    • odredite učestalost izvođenja testnog slučaja (pokrenite ga za svaki novogradnja ili jednom, ali s velikom količinom unosa?);
    • saznajte je li testni slučaj kritičan za poslovanje ili pokriva potpuni end-to-end scenarij;
    • pobrinite se da analiza rezultata autotestiranja neće premašiti vrijeme provedeno tijekom ručnog testiranja (inače će izgubiti svoju važnost za automatizaciju);
    • voditi računa o vjerojatnosti otkrivanja pogrešaka (uvesti testove koji najčešće pokazuju pogreške i slabosti);
    • shvatiti može li test postati blokirajući važna funkcija ili funkcionalnost koja je ključna za poslovanje.

    Koje vrste testova treba isključiti iz automatiziranog testiranja?

    Navodimo slučajeve u kojima testne slučajeve treba filtrirati iz automatizacije:

    • Testovi upotrebljivosti koji zahtijevaju ručnu intervenciju radi provjere pogrešaka ili odstupanja od očekivanog ponašanja;
    • testni slučajevi koji uključuju instalaciju ili ne trebaju ponovno izvršavanje funkcija (međutim, trebali biste automatizirati testove koji zahtijevaju velike ulazne podatke);
    • Izbjegavajte automatiziranje testova koji mogu dovesti do nepredvidivih rezultata (na primjer, nova funkcionalnost, vremenski testovi, provjera datuma isteka);
    • UX testovi koji uključuju provjeru rekalibracije objekata na različite veličine zaslon.

    Što je sljedeće?

    Na temelju gore navedenih faktora odabira dobit ćemo scenarije koji će sudjelovati u odabiru za automatizaciju.
    Sljedeći korak je podijeliti aplikaciju koja se testira na module. Za svaki modul analiziramo i identificiramo testne slučajeve s kojima ćemo se izvršavati drugačiji skup podataka, na različitim okruženjima (OS/Browser) i sa složenom poslovnom logikom, koriste veliku količinu podataka (uključujući i posebne) i koriste ih različiti korisnici.

    Pogledajmo proces na primjeru. U sustavu imamo modul za izradu aplikacija za koje odabiremo test slučajeve uključene u proces izrade aplikacije. Nakon što su svi testovi napisani, bilježimo je li zadovoljen barem jedan od gore definiranih uvjeta (slika 1).

    Klikom na sliku otvara se puna verzija.
    Y – uvjet je ispunjen
    N – Uvjet nije ispunjen
    Tako dobivamo 3 testa koja se mogu automatizirati i 2 testa koja ne zahtijevaju automatizaciju. Završili smo najvažniji zadatak i dobru polovicu posla: nered. nova tema preobraziti se u detaljan planšto treba učiniti.

    Zaključak


    Najčešće preferiramo automatizirati regresijski skup jer sadrži velika količina testni primjeri, a njegova je funkcionalnost već stabilna (odnosno, ne mijenja se od međugradnje do građevine). U ovom slučaju, možemo podijeliti regresijske pakete u module i odlučiti pokrenuti odgovarajući paket prema zahtjevima izdanja.
    Umjesto automatizacije cijelog skupa, odabiremo faznu automatizaciju. Drugim riječima, slijedimo model prototipa za razvoj paketa automatizacije.

    Dakle, stvorite strukturu ili okvir s manje implementiranih testnih slučajeva, a zatim ga poboljšajte dodavanjem sve više i više primjera.

    Volite testera u sebi, a ne sebe u testiranju!

    Najbolji članci na temu