U ovoj lekciji obrađivaćemo:
  • Tehnike upravljanja softverskim kvalitetom
  • Merenja i vrednovanja softverskog kvaliteta

Tehnike upravljanja softverskim kvalitetom

SQM tehnike mogu da se kategorizuju na više načina:
  • Statičke tehnike
  • People-intensive tehnike
  • Analitičke tehnike
  • Dinamičke tehnike

Statičke tehnike

Statičke tehnike uključuju ispitivanje projektne dokumentacije i softvera, i ostalih informacija o softverskim proizvodima, bez njihovog izvršavanja. Ove tehnike mogu da uključe intenzivnu aktivnost više ljudi ili analitičke aktivnosti sprovedene od strane pojedinaca, sa ili bez pomoći automatizovanih alata.


People-intensive tehnike

Postavke za ovu tehniku, uključujući recenzije i revizije, mogu varirati od formalnih sastanka do neformalnih okupljanja ili kratkih provera, ali je obično, dvoje ili više ljudi koji su uključeni u ovu tehniku. Zahteva unapred pripremu. Resursi, osim stavki koje se ispituju, mogu da uključe kontrolne liste i rezultate iz analitičkih tehnika i testiranja. Ove aktivnosti se obrađuju u IEEE1028-97 [7][6].


Analitičke tehnike

Softverski inženjer generalno primenjuje analitičke tehnike. Ponekad nekoliko softverskih inženjera koristi istu tehniku, ali svaki ih primenjuje na različite delove proizvoda. Neke tehnike su podržane alatima, neke se sprovode manuelno. Neke mogu da pronađu nedostatke direktno, ali se obično koriste i kao podrška drugim tehnikama. Neke takođe uključuje različite procene, kao dela sveukupne analize kvaliteta. Primeri takvih tehnika uključuju analizu složenosti, analizu kontrole toka i algoritamske analize.
Svaki tip analize ima specifičan cilj, i nije svaki tip primenjiv na svaki projekat. Primer tehnike za podršku je analiza složenosti, koja je korisna za određivanje, da li je dizajn ili implementacija previše složena da bi se razvila korektno, testirala, ili održavala. Rezultati analize složenosti takođe se mogu koristiti u razvoju testa slučajeva. Tehnike otkrivanja grešaka, kao što je analiza kontrole toka, takođe se može koristiti za podršku drugim aktivnostima. Za softver sa mnogo algoritama, algoritamska analiza je važna, pogotovo kad pogrešan algoritam može prouzrokovati katastrofalan rezultat.
Drugi, više formalni, tipovi analitičkih tehnika su poznati kao formalne metode. One se koriste za verifikaciju softverskih zahteva i dizajna. Dokaz o ispravnosti odnosi se na kritične delove softvera. Oni se uglavnom koriste u verifikaciji suštinskih delova kritičnih sistema, u vezi sa bezbedonosnim i sigurnosnim zahtevima. (1)


Dinamičke tehnike

Različite vrste dinamičkih tehnika izvode se tokom razvoja i održavanja softvera. Generalno, to su tehnike testiranja, ali i tehnike kao što su simulacija, provera modela i simboličko izvršavanje, mogu se smatrati dinamičkim. Čitanje koda se smatra statičkom tehnikom, ali iskusni softver inženjeri mogu da izvrše kod dok prolaze kroz njega. U tom smislu, čitanje koda se takođe kvalifikuje kao dinamička tehnika. Ova nedoslednost u kategorizaciji ukazuje na to da ljudi s različitim ulogama u organizaciji mogu razmotriti i primjenjivati ove tehnike različito.
Neka testiranja treba da se izvedu u razvojnom procesu, Software Quality Assurance (SQA) procesu ili V&V procesu, opet u zavisnosti od projektne organizacije. Softversko testiranje se šire obrađuje u istoimenom kursu.


Testiranje

Procesi osiguranja opisani u SQA i V&V procesima ispituju svaki izlaz u odnosu na softversku specifikaciju, kako bi se osigurala prativost izlaza, doslednost, potpunost, ispravnost i performanse. Ova potvrda takođe uključuje izlaze iz razvojnog i procesa održavanja, prikupljanje, analiziranje i merenja rezultata. SQA osigurava da su planirane, razvijene i implementirane odgovarajuće vrste testiranja, a V&V razvija test planove, strategije, slučajeve i procedure.

Dve vrste testiranja mogu se podvesti pod SQA i V&V procese, zbog njihove odgovornosti za kvalitet materijala korišćenih u projektu:
  1. Evaluacija i testiranje alata koji će se koristiti u projektu (IEEE1462-98)
  2. Test usklađenosti (Conformance test) komponenti i COTS proizvoda koji će se koristiti u proizvodu; Postoji standard za softversko pakovanje (IEEE1465-98)
Termin COTS (commercial off-the-shelf) proizvod, označava proizvod koji je spreman za upotrebu i dostupan za prodaju širokom tržištu. Dizajniran je da bi se lako implementirao u postojeći sistem bez potrebe za prilagođavanjem.

Ponekad može biti traženo od nezavisne V&V organizacije da prati test proces, a ponekad i da bude svedok stvarnog izvršavanja, kako bi se osiguralo da je sprovedeno u skladu s određenom procedurom. Opet, V&V može biti pozvan da proceni samo testiranje: primerenost planova i procedura, te adekvatnost i tačnost rezultata.

Drugi tip testiranja koji se može svrstati pod V&V organizacije, je testiranje sa treće strane. Treća strana nije programer, niti je na bilo koji način povezana s razvojem proizvoda. Umesto toga, treća strana je nezavisna ustanova, najčešće akreditovana od strane nekog tela. Njihova svrha je testiranje proizvoda za proveru usklađenosti (Conformance test) sa određenim skupom zahteva.

Merenja softverskog kvaliteta (eng. Software Quality Measurement)
Modeli kvaliteta softverskog proizvoda često uključuju merenja kako bi se odredio stepen svake karakteristike kvaliteta dostignute proizvodom.

Ako su pravilno odabrana, merenja mogu podržati kvalitet softvera (među ostalim aspektima procesa životnog ciklusa softvera) na više načina. Ona mogu pomoći u procesu upravljanju pri donošenju odluka. Mogu pronaći problematična područja i uska grla u softverskom procesu, i mogu pomoći softver inženjerima u proceni kvaliteta njihovog rada za SQA svrhe i na duži rok, procesu poboljšanja kvaliteta.

Sa povećanom sofisticiranošću softvera, pitanja kvaliteta prevazilaze uobičajena, da li softver radi ili ne, već kako ostvaruje merljive ciljeve kvaliteta.

Trošak procesa merenja softverskog kvaliteta je pitanje koje se gotovo uvek postavlja u odlučivanju kako bi projekat trebao da se organizuje.

Često se koriste generički modeli troškova, koji se temelje na tome, kada je defekt pronađen i koliko je truda potrebno da se otkloni defekt, u odnosu na pronalaženju kvara ranije u procesu razvoja. Projektni podaci mogu dati bolju sliku o troškovima. Opširnije o ovoj temi može se naći u radu Rakitin-a [2].

Konačno, sami izveštaji merenja pružaju korisne informacije ne samo o ovim procesima, već i tome kako se može unaprediti proces životnog ciklusa softvera. Ova tema je šire obrađivana u radovima McConnell-a [3] i standardu IEEE Std.1012-1998 [4].

Iako merenja karakteristika kvaliteta i osobina proizvoda može biti korisno samo za sebe (na primer, broj neispravnih zahteva ili procenat neispravnih zahteva), matematičke i grafičke tehnike mogu se primeniti kao pomoć u interpretaciji merenja. Oni se razvrstavaju u sledeće kategorije :
  • Statistički zasnovani (npr. Pareto analiza, šema obrade, normalna distribucija)
  • Statistički testovi (npr. binomni test, HI kvadrat test)
  • Analiza trendova
  • Predviđanje (npr. modeli pouzdanosti)

Statistički zasnovane tehnike i testovi često daju sliku više problematičnih područja softverskog proizvoda pod ispitivanjem. Rezultatujuće karte i grafikoni su vizuelna pomagala, koja pomažu donosiocu odluka da fokusira resurse tamo gde su najpotrebnija.

Rezultati analize trenda mogu da pokažu da raspored nije poštovan, npr. na testiranju ili da će određene klase grešaka postati još intenzivnije, osim ako se ne preduzmu neke korektivne radnje u razvoju. Tehnike predviđanja pomažu u planiranju vremena testiranja i u predviđanju otkaza.

Analiza defekata se sastoji od merenja pojave defekata, a zatim primene statističkih metoda za razumevanje tipova grešaka koji se javljaju najčešće, odnosno odgovara na pitanja, kako bi se procenila njihova gustina.

Oni takođe pomažu u razumevanju trendova i koliko dobro rade tehnike otkrivanja, i koliko dobro napreduju procesi razvoja i održavanja. Merenja pokrivenosti testa pomažu u proceni koliko još test angažovanja ostaje da se uradi, i da se predvide mogući preostali defekti. Iz ovih mernih metoda, može se razviti profil defekata za određeni domen primene. Zatim, za sledeći softver unutar organizacije, profil se može koristiti kao vodič za procese merenja, tj. da se uštedi napor gde će se problemi najverovatnije pojaviti. Slično tome, referentne tačke, ili broj defekata tipičan za dati domen, može poslužiti kao pomoć u određivanju kada je proizvod spreman za isporuku.


Reference:

  1. NASA, “Formal Methods Specification and Analysis Guidebook for the Verification of Software and Computer Systems, Volume II: A Practitioner’s Companion,” 1997, dostupno preko http://eis.jpl.nasa.gov/quality/Formal_Methods/, posećeno 20.jula 2009.
  2. S.R. Rakitin, Software Verification and Validation: A Practitioner’s Guide, pp. 39-50, Artech House, 1997.
  3. S. McConnell, Code Complete: A Practical Handbook of Software Construction, Microsoft Press, second ed., 2004.
  4. IEEE Std 1012-1998, Software Verification and Validation, IEEE, 1998.
  5. IEEE Computer Society, Software Engineering Coordinating Committee, Guide to the Software Engineering Body of Knowledge, 2004.
  6. D.P. Freedman and G.M. Weinberg, Handbook of  Walkthroughs, Inspections, and Technical Reviews, Little, Brown and Company, 1998.
  7. IEEE Std 1028-1997 (R2002), IEEE Standard for Software Reviews, IEEE, 1997.

Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Tehnike upravljanja i merenja softverskog kvaliteta 1
  • Tehnike upravljanja i merenja softverskog kvaliteta 2
  • Tehnike upravljanja i merenja softverskog kvaliteta 3