23
Katedra za Automatizaciju Perenda Samir Ispitivanje proizvoda index: 5843/09 Ispitivanje softvera Zašto je bitno ispitivanje softvera? Zanimljivost softvera je da se kod njega često nalaze greške i nikada sa 100 postotnom sigurnošću ne možemo tvrditi kako imamo siguran proizvod bez mane. U softverskom poslu greške su neizbježne, no zato ih treba što više identificirati kako bi bili sigurni da se isporučio proizvod sa što manje „bugova“. Softver se zato testira i postoje posebne skupine ljudi koji ga testiraju i daju svoje konačno izvješće. Tim ljudi koji testira softver ima dvije osnovne odgovornosti - identificirati nedostatke i osigurati da softver radi bez greške.Treba zadovoljiti zahtjeve korisnika, priznati pogreške ako je došlo 1

 · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

  • Upload
    buihanh

  • View
    220

  • Download
    5

Embed Size (px)

Citation preview

Page 1:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Katedra za Automatizaciju Perenda Samir

Ispitivanje proizvoda index: 5843/09

Ispitivanje softvera

Zašto je bitno ispitivanje softvera?

Zanimljivost softvera je da se kod njega često nalaze greške i nikada sa 100 postotnom sigurnošću ne možemo tvrditi kako imamo siguran proizvod bez mane. U softverskom poslu greške su neizbježne, no zato ih treba što više identificirati kako bi bili sigurni da se isporučio proizvod sa što manje „bugova“. Softver se zato testira i postoje posebne skupine ljudi koji ga testiraju i daju svoje konačno izvješće. Tim ljudi koji testira softver ima dvije osnovne odgovornosti - identificirati nedostatke i osigurati da softver radi bez greške.Treba zadovoljiti zahtjeve korisnika, priznati pogreške ako je došlo do njih i odmah ih ukloniti. Treba naglasiti kako ispitivanje softvera nije jednokratna aktivnost. Softver se ispituje tijekom cijelog svog životnog ciklusa i treba ga ponovno ispitati ako nismo 100 posto sigurni u njegovu funkcionalnost.

Softverske tvrtke trebaju softverske aplikacije stalno ažurirati kako bi zadržali korak s izazovnim i konkurentnim poslovnim svijetom. Tvrtke moraju paziti na promjene u tehnološkim trendovima i reagirati u skladu s time.

1

Page 2:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

ISPITIVANJE SOFTVERA

Ispitivanje softvera se može definisati kao proces ovjeravanja i provjere rada istog, tj. da li softver ispunjava sve potrebne poslovne i tehničke zahtjeve koje se od njega traže.

Definicija ispitivanja Softvera u nekoliko dijelova:

1) Proces: Ispitivanje je više proces nego li pojedinačna aktivnost.

2) Ispitivanje je proces koji spada u razvoj Softvera ( Software Development Life Cycle )

- Proces kreiranja testa u ranoj fazi programiranja softvera može pomoći da se otkrije pojava nedostataka ( bugova ), koji se mogu javiti u programskom kodu.

3) Statička ispitivanja: Mogu se ispitati i otkriti nedostatci bez izvršnog koda. Statička ispitivanja se vrše u toku provjeravanja procesa. Ovo ispitivanje uključuju pregled dokumenata ( uključujući izvorni kod ) i statičku analizu. Ovo je koristan i jeftin način ispitivanja.

4) Dinamičko ispitivanje: Kod dinamičkog ispitivanja programski kod je primoran da prikaže rezultate pokrenutog testa. Npr: testiranje jedinica, integracije, testiranje sistema itd.

5) Planiranje: Potrebno je da planiramo ono što želimo da uradimo. Kontroliramo segmente ispitivanja, izvještavamo o napredku ispitivanja i stanju softvera koji se ispituje.

6) Priprema: Moramo izabrati koje ispitivanje ćemo vršiti, izabiranjem uslova testa.

7) Procjena: U toku procjene moramo provjeriti rezultate softvera pri ispitivanju i formirati mišljenje, koje nam pomaže da odlučimo kada se ispitivanje završava i kada je softver prošao ispitivanja.

2

Page 3:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Zbog čega je ispitivanje potrebno ?

Ispitivanje softvera je neophodno zbog toga što svi mi pravimo greške. Neke od ovih grešaka su zanemarive ali su neke skupe ili opasne. Moramo provjeriti sve što proizvedemo.Kada primjetimo da bi nas posao mogao imati greške, potrebno je da to provjerimo. Kako god, neke greške se javljaju zbog pogrešnih pretpostavki, tako da možemo napraviti iste greške u toku ispitivanja kao i one koje smo napravili u toku rada. Tako se može desiti da ne primjetimo greške koje smo napravili. U tom slučaju je najbolje da provjeru vrši neka druga osoba koja će lakšu primjetiti nedostatke.

Postoji nekoliko razloga koji nam jasno kazuju zbog čega je ispitivanj softvera bitno i koje su glavne stvari na koje moramo obratiti pažnju prilikom ispitivanja bilo kojeg proizvoda ili aplikacije.

Ispitivanje softvera je bitno zbog sljedećih razloga:

1) Ispitivanje softvera je važno jer ukazuje na probleme i nedostatke koje smo napravili u razvojnom procesu.

2) Neophodno je da budemo sigurni da će korisnik imati pouzdanu i zadovoljavajuću aplikaciju.

3) Važno je da se osigura kvalitet proizvoda. Kvalitetan proizvod osigurava povjerenje kupaca.

4) Testiranje je potrebno kako bi se obezbijedio objekat kupcima za isporuku kvalitetnih proizvoda ili softverskih aplikacija koji zahtijeva manje troškove održavanja i time dovodi do preciznijih, boljih i pouzdanijih rezultata.

5) Ispitivanje je potrebno da se postignu bolje performanse softverskih aplikacija ili proizvoda.

6) Vrlo je važno da se osigura da aplikacija ne žakaže jer to može biti vrlo skupo.7) I na kraju je bitno da se ostane u poslu.

3

Page 4:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Ciljevi i svrha ispitivanja proizvoda

Ispitivanje softvera ima različite ciljeve i objekte. Glavni ciljevi ispitivanja softvera su:

- pronalaženje nedostataka koji mogu biti kreirani u toku programiranja,

- osiguranje povjerenja i informacije o nivou kvaliteta softvera,

- da budemo sigurni da konačni rezultati zadovoljavaju poslovne i korisničke zahtjeve,

- zadovoljiti BRS ( Business Requirement Sprecification ) i SRS ( System Requirement Sprecification ),

- zadobiti povjerenje kupaca osiguravajući im kvalitetan prizvod

Ispitivanje softvera pomaže završavanju softverske aplikacije ili prizvoda u skladu sa poslovnim i korisnićkim zahtjevima. Vrlo je važno imati pouzdan test s ciljem kompletiranja softverske aplikacije i osigurati da radi kvalitetno u skladu sa specifikacijama.

Defekt ( mana ) : defekt je greška ili bug ( „buba“ )

Defekt je nedostatak u kreiranoj aplikaciji koji programer slučajno napravi u toku dizajniranja ili programiranja softvera. Kada stvarni rezultat odstupa od očekivanog, u toku testiranja softvera, znamo da se pojavio kvar, bug ili problem. Ovi nedostaci se mogu pojaviti zbog grešaka u logici ili u kodu softvera.

4

Page 5:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Izvještaj o neispravnosti ili pojavi kvara sastoji se od sljedećeg:

- ID greške - Svaki bug ili nedostatak ima jedinstveni matični broj,

- Opis kvara,

- Verzija proizvoda,

- Detaljni koraci i pitanja sa screenshot u prilogu, tako da programeri mogu da vrše prepravke

- Datum kad se pojavila greška,

- Podaci o osobi koja je otkrila kvar uključujući njegov ID,

- Status - Ovo polje sadrži Status defekta kao što su New, Assigned, Open, retest, Verifikacija, Zatvor, Neuspelo, Odložena, itd,

- Fiksni po - Ovo polje sadrži podatke o programeru koji je popravio grešku ( ime i ID),

- Datum zatvaranja - To uključuje datum kada je bug zatvoren,

- Ozbiljnost: Na osnovu težine (kritično, veće ili manje) nam govori o uticaju oštećenja ili bug-a na aplikacijski softver,

Troškovi nedostataka se mjere uticajem kvarova i vremenom kada se kvar otkrije ( ranije otkrivanje greške rezultira manje trškove). Na primjer, ako se greška nalazi u specifikacijama zahtjeva onda je nešto jeftinije da se ista ukloni. Greške u specifikaciji zahtjeva kao i greške u dizajnu se mogu ispraviti i program se može ponovo izdati. Ali ako se

greška otkrije nakon što korisnik bude zadovoljan specifikacijama i dizajnom, onda naknadno ispravlanje grešaka može biti previše skupo.

5

Page 6:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Principi ispitivanja

Postoji nekoliko principa testiranja:

1) Ispitivanje prikazuje prisutstvo nedostataka: ispitivanje može prikazati da su nedostaci prisutni, ali ne može prikazati da ne postoje nedostaci. Čak i nakon testiranja aplikacije ili proizvoda ne možemo reći da je proizvod 100 % ispravan. Testiranje uvijek smanjuje broj nedostataka preostalih u softveru , ali čak i kada nedostaci nisu otkriveni to nije dokaz ispravnosti.

2) Iscrpno ispitivanje je nemoguće: ispitivanje svega, uključujući sve kombinacije inputa i preduvjeta nije moguće. Zbog toga smo primorani da prihvatimo određene rizike. Dakle, pristup i upravljanje rizicima je jedna od najvažnijih aktivnosti i razlog za testiranje u bilo kojem projektu.

3) Rano ispitivanje: u razvojnom procesu softvera ispitivanja je potrebno pokrenuti što je ranije moguće

4) Registracija operativnih propusta5) Paradoks pesticida: ako se ista vrsta testiranja iznova i iznova ponavlja neće biti

moguće pronaći nove nedostatke. Da bi se izbjegao „paradoks pesticida“ vrlo je važno da se analiziraju ranije rađeni testovi i da se prave novi sa različitim zahtjevima kako bi se pronašli novi nedostaci.

6) Otsustvo greške,zabluda: ako kreirani softver ne zadovoljava potrebe korisnika onda nema smisla da se vrše ispitivanja i otkrivanja potencijalnih grešaka.

Temeljni proces u ispitivanju softvera

Osnovne aktivnosti u toku ispitivanja softvera možemo podijeliti na:

1) Planiranje i kontrola2) Analiza i dizajn3) Implementacija i izvršenje4) Procjena izlaznih kriterija i izvršavanje5) Test zatvaranja aktivnosti

6

Page 7:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

1) Planiranje i kontrola

Glavni ciljevi planiranja ispitivanja:

- da se odredi opseg i rizici

- da se utvrdi pristup ispitivanju

- da se utvrdi strategija ( strategija je nacrt koji opisuje testiranje i dio je ciklusa razvoja softvera. Uključuje ciljeve ispitivanja, način ispitivanja, ukupno vrijeme i resurse potrebne za projekt i okruženja testiranja.).

- određivanje potrebnih resursa za ispitivanje: ljudi, okruženje za ispitivanje, potrebni PC itd.

- da se odredi analiza testa i zadataka dizajna, implementacija testa, izvršenje i evaluacija.

- da bi se odrede izlazni kriteriji kao npr. kriterij pokrivenosti ( postotak izmjena u softveru koje se moraju izvršiti u toku ispitivanja)

Kontrola ispitivanja ima sljedeće glavne zadatke :

- mjerenja i analiza rezultata i mišljenja,

- praćenje i dokumentacija napredka, test pokrivenosti i izlazni kriterij,

- da pruži informacije o testiranju,

- da bi se pokrenule korektivne radnje.

- da se donesu odluke.

2) Analiza i dizajn

Analiza ispitivanja i test dizajna ima sljedeće glavne zadatke:

- da se sagledaju osnove ispitivanja ( osnove ispitivanja su informacije koje su nam potrebne da bi započeli analizu i kreirali vlastita ispitivanja)

- da se odrede uslovi ispitivanja

-da se osmisle ispitivanja

- da se procijeni mogućnost ispitivanja u zavisnosti od zahtjeva i sistema

- dizajn okruženja za ispitivanja i identifikacija potrebne infrastrukture i alata

7

Page 8:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

3) Implementacija i izvršenje:

Implementacija ispitivanja ima sljedeće glavne zadatke:

Da se razviju i majoriziraju mogućnosti ispitivanja za test podataka (Da bi se testirale aplikacije potrebno je da unesemo neke podatke za testiranje većine funkcija. Svaki takav posebno identifikovani podatak koji se koristi u testovima je poznat kao test podataka.)Također se pišu određene upute koje se nazivaju procedure ispitivanja.

- da se omogući efikasno izvršavanje ispitivanja

- provjera okruženja u kojem se vrši ispitivanje

Izvršenje ispitivanja ima sljedeće zadatke:

- izvršavanje faza testa u skladu sa procedurama

- ponovno izvršavanje neuspjelih ispitivanja da bi se potvrdila ispravnost,poznato kao ponovno ili potvrdno ispitivanje

- da se potvrdi izvršenje ispitivanja i snimi identitet i verzija softvera

- upoređivanje stvarnih rezultata sa očekivanim

- ako postoje razlike između stvarnih i očekivanih rezultata, to prijaviti kao incident ili grešku

4) Procjena izlaznih kriterija i izvještavanje:

Na temelju procjene rizika projekta određujemo kriterije za svaki nivo ispitivanja na osnovu kojeg ćemo mjeriti "dovoljno testiranja". Ovi kriteriji se razlikuju od projekta do projekta, a poznati su kao izlazni kriteriji.

Izlazni kriteriji:

- Ispitivanja se izvršavaju sa određenim dodavanje postotak.

- Bug stopa padne ispod određenog nivoa.

- Kada su ostvareni zadati ciljevi

8

Page 9:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

5) Test zatvaranja aktivnosti:

Test zatvaranja aktivnosti radi se prije isporuke softvera. Testiranje može biti zatvorene i zbog sljedećih razloga:

- kada se prikupe sve informacije bitne za ispitivanje

- kada je projekat otkazan

- kada se postigne neki cilj

Kvalitet softvera

Kvalitetan softver je oslobođen od bugova i nedostataka, isporučen na vrijeme u okviru budžeta, ispunjava zahtjeve i očekivanja, i održiv je.

Standard ISO 8402-1986 definiše kvalitet kao „ukupnost karakteristika i proizvoda ili usluga koji zadovoljavaju navedene ili implicirane potrebe."

Ključni aspekti kvaliteta za kupca uključuju:

Dobar dizajn - izgled i stil Dobro funkcionalnost - dobro radi posao Pouzdano - prihvatljiv nivo kvarova ili kvara Dosljednost Izdržljivost - traje dok god treba Dobra usluga nakon prodaje Isplativ

Verifikacija softvera

Osigurava da je proizvod dizajniran da omogući i isporući potpunu funkcionalnost za kupca. Provjera se vrši u početnoj fazi razvojng procesa. To uključuje recenzije i sastanake, opise,inspekcije,procijenite,dokumenata,planova,kodovazahtjeva i specifikacija. Pretpostavimo da pravimo stol.

Vrši se verifikacija oko provjere svih dijelova stola, da li su sve četiri noge su prave veličine ili ne. Ako nije prava veličina jedne noge od stola ravnoteža je narušena i može dovesti do pada stola. Slično je u slučaju softverskog proizvoda ili aplikacije. Ako bilo karakteristika proizvoda ili softvera nije kvalitetna, ili ako se utvrdi bilo kakav kvar onda će sistem rezultirati neuspjehom krajnjeg proizvoda. Stoga, verifikacija je vrlo važna.

9

Page 10:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Verifikacija odgovara na pitanja kao: Da li pravim kvalitetan proizvod? Jesam li u pravu pristupa podacima (na pravom mjestu, na pravi način).

Prednosti verifikacije softvera:

Verifikacija pomaže smanjenju pojave nedostataka u kasnijim fazama razvoja. Provjera proizvoda u početnoj fazi pomaže u razumijevanju softvera na bolji način i smanjuje šanse za propuste u softverskoj aplikaciji. Ona pomaže u izgradnji proizvoda po specifikacijama i potrebama kupaca.

Validacija ( ovjeravanje) softvera

Vrši se ako je sistem u skladu sa zahtjevima i obavlja funkcije za koje je namijenjen i ispunjava ciljeve i potrebe korisnika/organizacije. Vrši se na kraju razvojnog procesa i odvija se nakon što su sve provjere završene. Određivanje ispravnosti finalnog softverskog proizvoda od strane razvojnog projekta u odnosu na potrebe i zahtjeve korisnika.

10

Page 11:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Nivoi ispitivanja/testiranja

1) Testiranje jedinica: Ovaj proces vrše programeri kako bi bili sigurni da njihov kod radi ispravno i zadovoljava zahtjeve korisnika. Oni testiraju svoje komande koda koje su pisane kao što su klasa, funkcije, sučelja i procedure.

2) Testiranje komponente: Također se zove testiranje modula. Osnovna razlika između testiranja jedinica i testiranja komponente je što kod testiranja jedinica programeri testiraju svoje komande koda, a u testiranju komponente cijela komponenta je testirana.

3) Testiranje integracije: vrši se kada su dva modula integrisani . Big Bang testiranja integracije top Down Bottom up Funkcionalnoinkrementalni4) Testiranje komponenata integracije: Ovo testiranje se vrši u osnovi kako bi se

osiguralo da se kod ne bi prekinuo nakon integriranje dva modula.5) Testiranje integracije sistema: System integration testing (SIT) 6) Ispitivanje sistema: testira se kompatibilanost aplikacije sa sistemom7) Test prihvatljivosti: vrši se kako bi se osiguralo ispunjenje zahtjeva8) Alfa testiranje: vrši programer na licu mjesta, na kraju razvojnog procesa9) Beta testiranje: vrši se na mjestu kupca neposredno prije „lansiranja“ proizvoda

Elementi ocjene kvaliteta

Kvalitet, performanse sigurnost

Prihvatljivi nivo kvaliteta podrazumijeva zadovoljavajuću ocenu deklarisanog kvaliteta definisanih kroz karakteristike funkcionisanja, performanse i sigurnost softvera. Postupak verifikacije i donošenje ocene zavisi od obima softvera, raznovrsnosti funkcija, širine domena ulaznih podataka i sl. U nekim slučajevima moguće je ispitati sva stanja softvera i u tom slucaju može se govoriti o potpunoj oceni završenosti softvera, uglavnom u sistemima u realnom vremenu, gde je broj funkcija i ulaznih podataka ograničen. U mnogim slučajevima se vrši i takozvano ''beta'' testiranje probnim eksploatacijama distribuiranjem softvera reprezentativnom skupu tes specijalista i potencijalnih korisnika. Pored donošenja kvalitativnih i kvantitativnih ocena u procesu verifikacije zbog kompleksnosti softvera očekuje se otkrivanje preostalih grešaka, skrivenih mana i programskih zloupotreba. Cilj verifikacije softvera je, dakle, konačna ocena o završenosti softvera, odnosno potvrđivanje sigurnosti sa određenim (procenjenim) rizikom.

11

Page 12:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Završenost softvera

Razvoj i projektovanje softvera treba da osiguraju zahtevani kvalitet tako da se nakon verifikacije može sa velikom verovatnoćom i minimalnim rizikom tvrditi da je softver završen odnosno odnosno da zadovoljava sve postavljene zahteve čime se potvrđuje da je raspoloživ u odredjenim uslovima i vremenu. Na taj način može se govoriti o stepenu sigurnosti softvera.

Greške i zloupotrebe u softveru

U zavisnosti od vrste, obima i načina fukcionisanja softvera ugrađuju se, manifestuju i otkrivaju nekoliko tipova softverskih grešaka.

Prema načinu ugradnje greške mogu biti :

• Aritmetičke

• Logičke

• Sintaksne i semantičke

• Greške u prenosu podataka

Osnovni predmet analize otkrivenih grešaka je njihov uzrok i moguće posledice. Da li su nenamerne ili namerne? Ukoliko su nenamerne, obično su to grube greške i u većini se otkrivaju u procesu debagovanja. Namerne greške su vešto skrivene. Često imaju izgled nenamerne greške da u slučaju otkrivanja krivci ne budu optuženi.Međutim, postoje i nenamerne greške koje opstaju i ne budu otkrivene do kritičnog trenutka, čak u odmaklim fazama eksploatacije. To je obično slučaj sa aritmetičkim greškama koje se manifestuju kada se složi nepovoljna kombinacija argumenata i tada dolazi do matematički neizvodljive operacije zbog čega, bez odgovarajućih mehanizama zaštite (rukovanje izuzecima, ''watchdog timer''), IT sistem otkazuje. Poznat je slučaj evropske svemirske rakete Ariana koja je eksplodirala 5 sekundi nakon lansiranja zbog aritmetičke greške prekoračenja vrednosti (''overflow'') i zaokruživanja na celobrojnu vrednost. Slučaj sa aritmetičkom greškom na Pentium procesoru, 1996. godine, prouzrokovao je velike finansijske štete +proizvođaču procesora. U još jednom poznatom slučaju kompjuterske greške, analize su pokazale da su uzroci aritmetičke prirode, kada je eksploziji američke ''Patriot'' rakete u Saudijskoj Arabijiske rakete poginulo 26 vojnika. Prema namjeni i uslovima korišćenja, namerne greške se ispoljavaju u jednom od oblika klasifikovanih kao modus operandi (nadmudrivanje, ''seckana salama'', trojanski konj, vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih zloupotreba zahteva posebna pažnja i tehnika analize.

12

Page 13:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Ocjena rizika

Verifikacija uključuje proces detaljnog testiranja koji se sprovodi dokazivanjem korektnosti, izvođenjem odabranog uzorka test primjera, a u cilju otkrivanja svih kategorija grešaka u softveru, u poslednjoj fazi razvoja i projektovanja, prije puštanja u eksploataciju. Posljedice manifestovanja grešaka u eksploataciji mnogo su skuplje od opsežnih ispitivanja u toku razvoja i projektovanja. ''Otkrivanje'' grešaka u eksploataciji može prouzrokovati štetu, gubitke u određenim primenama čak i tragične posljedice. Složenost i ''apstraktnost'' softvera čine verifikaciju zamašnim poslom. Postoji, potreba provjere na nivou svake linije programa, na nivou instrukcije, da bi se izbjegla pojava greške u bilo kojoj situaciji i stanju softvera. Detaljno ispitivanje omogućuje procjenu vjerovatnoće pojave greške (f). Taj podatak sa podatkom o veličini moguće štete(g), kao proizvod, mjera je procijenjenog rizika (r =f*g).

Metode poboljšanja softvera

Praksa pokazuje, da bi se u dovoljnoj mjeri osigurao kvalitet i sigurnost softvera, odnosno rizik smanjio na prihvatljiv nivo, potrebno je preduzeti organizovane mjere za sprečavanje ugradnje grešaka i zloupotreba i njihovo otkrivanje vršiti u svim fazama razvoja i projektovanja. Ove mjere su propisane standardima za osiguranje kvaliteta softvera. U zavisnosti od namjene softvera primjenjuju se odgovarajući standardi ali ih karakteriše jedinstvena tehnologija projektovanja.

Proces osiguranja kvaliteta softvera

Proces osiguranja kvaliteta softvera podrazumijeva jasnu i prihvaćenu metodologiju razvoja i projektovanja, a u skladu sa specifikacijom, opštim zahtevima kvaliteta i ugovorima. Ovaj proces sprovodi se planiranim aktivnostima prema principima i pravilima usvojenog modela projektovanja. Verifikacija i tehnički prijem je posljednja faza projektovanja, prije uvođenja u eksploataciju. Metodološki pravilno razvoj i projektovanje stvara uslove za ostvarenje definisanih zahtjeva kvaliteta koje se realizuju po sljedećim fazama:

• Specifikacija zahtjeva kvaliteta projektovanja, isporuke i održavanja

• Ugovoranje

• Projektovanje

• Prijemno ispitivanje

• Eksploatacija i održavanje

13

Page 14:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Specifikacija zahteva kvaliteta, isporuke i održavanja

Pri specifikaciji zahtjeva koji se ugovaraju za softver primarna su tri aspekta koji su definisani sljedećim standardima:

• kvalitet (standard ISO/IEC 9126 - 1996),

• performanse ISO/IEC 14756 - 1999 • sigurnost - serija standarda ISO/IEC

Standardima za kvalitet softvera definisani su atributi softvera kao što su funkcionalnost, međuoperativnost, prenosivost, sigurnost itd. Razmatranje sigurnosti kao jednog od atributa kvaliteta softvera u pojedinim namjenama ima poseban značaj.

Ugovaranje

Izbor modela projektovanja

Ugovorom pored zahtjeva kvaliteta, performansi i sigurnosti, treba definisati model projektovanja. To zavisi od vrste softvera koji se razvija. Ukoliko složenost softvera zahtjeva opsežna prijemna ispitivanja ili je namjena osetljive prirode (finansijski, obaveštajni, odbrambeni) stvaranje uslova za učešće korisnika u svim fazama projektovanja bitan je uslov za izbor modela.

Standardi osiguranja kvaliteta

Izbor modela upravljanja projektima određen je standardima za osiguranja kvaliteta. Jedan od prvih standarda koji su propisali osiguranje kvaliteta softvera u razvoju i projektovanju su MIL-S-52779 A i DOD-STD-2167. Pored ovih standarda koji su vezani za odbrambene tehnologije, za civilnu upotrebu dugo nije bilo adekvatnih standarda koji bi propisali uslove kvaliteta, opšte i posebne zahtjeve za softver, raznih namjena.

Od 1995. godine usvojeni su ISO/IEC standardi koji detaljnije regulišu upravljanje projektima za obezbeđenje kvaliteta softvera. Primarni značaj u projektovanju softvera ima standard ISO/IEC/IEA/IEEE 12207-1995. Sigurnosti informacionih sistema i softvera je regulisana posebnim standardima. U ovoj oblasti danas su uglavnom u upotrebi ISO/IEC standardi iz serije TR 13335 , ISO/IEC 15408 i ISO/IEC 9000-3.

14

Page 15:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Tehnička dokumentacija

Značajan aspekt osiguranja kvaliteta softvera je dobro definisan ugovor kupca i isporučioca softvera u pogledu tehničke dokumentacija. Osim prethodno pravilno definisanih zahtjeva i uslova isto tako važan aspekt je kompletnost i razumljivost tehničke dokumentacije softvera koja treba da obezbjedi uslove za verifikaciju i održavanje softvera. Standardi koji regulišu kvalitet dokumentacije softvera ISO/IEC 9127, ASTM E919-96 itd. polaze od principa otvorenosti koda, kompletnosti i razumljivosti dokumentacije u svim nivoima programskog sistema. To podrazumijeva opis svih programskih zadataka, poslova i procesa. Time se programeri obavezuju na otvorenost, štite od svoje zaboravnosti i sprečavaju da u programska rješenja uvode neautorizovane ''inovacije''. Tehnološki uslovi, kao što su principi projektovanja (''top-down'', modularno), principi programiranja (objektno-orijentisano,struktuirano), izbor programskog jezika i sl., takođe su značajni za obezbeđenje kvaliteta softvera.

Projektovanje

Projektovanje se sprovodi prema principima softverskog inženjeringa u sljedećim fazama:

– analiza zahtjeva za sistem

– definisanje sistemskih zahjteva

– preliminarno projektovanje

– detaljno projektovanje

– kodiranje i testiranje modula

– integracija komponenata i testiranje

– integracija i testiranje podsistema

– integracija sistema i testiranje

Bez obzira na primjenu automatizovane opreme za programiranje i testiranje u svim fazama projektovanja postoji velika vjerovatnoća ''potkradanja'' greške u softveru. Zbog toga postoji potreba za vrlo opsežnim i detaljnim testiranjem i stalnim preispitivanjem nalaza.

15

Page 16:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

16

Page 17:  · Web view... vremenska bomba itd.). Greške se po pravilu otkrivaju detaljnim ispitivanjem takozvanim dokazivanjem korektnosti programa ali se za otkrivanje namernih grešaka programerskih

Literatura:

1. Andersen, R. B.:Proving Programs Corerect, John Wiley & Sons , New York, 1979.

2. Gogates, G.G. Sofware Validation Accreditaion Laboratories- A Practical Guide,

Fasor In,- www.fasor.com.

3. Jovanović M.: Metoda automatskog merenja tačnosti mikroračunara

laboratorijskom računarom , JUREMA-1989, Zagreb-Plitvička jezera

4. Myers, G.I.: The Art og Software testing , John Wiley & Sons , New York, 1981.

5. Petrović R.S.: Kompjuterski kriminal, MUP Republike Srbije, 2000.

6. Shrivastava S.K.: Reliable Computer Systems , Springer-Verlag, Berlin,

Heidelberg, 1985.

7. Youll, D.P.: Achieving ultra high quality software, Quality Assurance[115-120]

Vol.14, No.3, 1988.

8. ISTQB EXAM CERTIFICATION

http://istqbexamcertification.com/what-is-a-software-testing/

9. * sve slike prizvoljno preuzete sa Interneta

17