Planiranje i osiguravanje kvalitete programskog proizvoda dr. sc. Tihana Galinac Grbac
Ciljevi Znati svrhu i namjenu procesa planiranja i osiguravanja kvalitete programskog proizvoda Razumjeti osnovne razlike između formalnih i neformalnih tehnika osiguravanja kvalitete Znati što je kvaliteta, pouzdanost i tehnike procjenjivanja kvalitete programskog proizvoda Razumjeti sadržaj plana za osiguranje kvalitete
Sadržaj Kvaliteta prog. proizvoda i model kvalitete Osiguravanje kvalitete prog. proizvoda Tehnike osiguravanja kvalitete pp Pouzdanost i tehnike procjene pouzdanosti Plan osiguravanja kvalitete
Sadržaj Kvaliteta prog. proizvoda i model kvalitete Osiguravanje kvalitete prog. proizvoda Tehnike osiguravanja kvalitete pp Pouzdanost i tehnike procjene pouzdanosti Plan osiguravanja kvalitete
Definicija kvalitete Postoji nekoliko definicija kvalitete, zavisno o perspektivi iz koje se kvaliteta promatra Međunarodna organizacija za standardizaciju (International Organization for Standardization, ISO) definira kvalitetu na sljedeći način: Kvaliteta je skup svojstava i značajki proizvoda, procesa ili usluga koje se odnose na mogućnost zadovoljenja utvrđene ili neizravno izražene potrebe. IEEE definicija kvalitete Stupanj kojim sustav, komponenta ili proces udovoljava korisničkim potrebama i očekivanjima
Model kvalitete Standard ISO 9126 definira model kvalitete kao niz karakteristika: funkcionalnost postojanje skupa funkcija koje su zadane ili podrazumijevane, pouzdanost sposobnost ostvarenja zadane razine performansi kroz zadano vrijeme, uporabljivost procjena individualnog truda potrebnog za uporabu, efikasnost odnos razine performansi i količine utrošenih resursa, lakoća održavanja procjena truda potrebnog za promjenu funkcionalnosti i održavanje, prenosivost sposobnost prenošenja iz jednog okruženja u drugo.
Sadržaj Kvaliteta prog. proizvoda i model kvalitete Osiguravanje kvalitete prog. proizvoda Tehnike osiguravanja kvalitete pp Pouzdanost i tehnike procjene pouzdanosti Plan osiguravanja kvalitete
Osiguravanje kvalitete programskog proizvoda (Software Quality Assurance) Osnovna svrha osiguravanja kvalitete programskog proizvoda je da osigura da se posao obavi na ispravan način. Ciljevi SQA su sljedeći: Poboljšati kvalitetu programskog proizvoda kroz sustavan nadzor programskog proizvoda u razvoju i nadzor samog tijeka procesa razvoja. Osigurati potpunu primjenu standardiziranih procesa razvoja i procedura. Osigurati da se za sve neusklađenosti produkta, procesa ili standarda privuče pozornost menadžmenta kako bi se neusklađenosti ispravile na vrijeme.
Pogreška i neispravnost Najčešće korišteni indikator kontrole i procjene kvalitete programskog proizvoda jest broj neispravnosti otkrivenih kod izvođenja programskog proizvoda. Pogreška (eng. error) je neispravno uneseni podatak, korak, proces ili instrukcija u izvornom kodu ili pripadajućem mu dokumentu, uzrokovan ljudskom nepažnjom Neispravnost programskog proizvoda (eng. failure) je manifestacija pogreške pri izvođenju programskog proizvoda
Sadržaj Kvaliteta prog. proizvoda i model kvalitete Osiguravanje kvalitete prog. proizvoda Tehnike osiguravanja kvalitete pp Pouzdanost i tehnike procjene pouzdanosti Plan osiguravanja kvalitete
Tehnike osiguravanja kvalitete Formalni pristup - Inspekcije (inspections) Neformalni pristup - Pregledi (reviews or walkthroughs) Osnovni cilj inspekcije je pronalazak pogrešaka Pokazalo se da su formalni pristupi bolji od neformalnih Metrika koja se koristi obično je Broj pogrešaka / KLOC Broj pogrešaka / uloženi broj sati
Formalna inspekcija Planirana formalna aktivnost gdje dizajner predstavlja dokument koji se inspicira i odabrana grupa inspektora procjenjuje tehničke aspekte dizajna. Načini izvedbe inspekcije mogu se razlikovati s time da su osnovne značajke formalnih inspekcija sljedeće: Inspektori su odabrani znalci iz područja Dizajner dokumenta je aktivan član inspekcije Potpun dokument se inspicira Osnovna svrha je da se otkriju pogreške Rutinska primjena inspekcije u razvoju Određivanje definiranih uloga u inspekciji Definiran proces inspekcije Barem 3 osobe su uključene u inspekciju
Formalna inspekcija Uloge: Moderator (moderator) odabire tim za inspekciju i izvještava o rezultatima inspekcije Voditelj inspekcije (reader) vodi tim tijekom inspekcije dokumenta Zapisničar (recorder) vodi zapisnik inspekcije i točan popis pronađenih pogreškama Autor (producer) odgovara na pitanja inspektora tijekom inspekcije, po završetku inspekcije ispravlja otkrivene pogreške i izvještava moderatora
Proces inspekcije osnovni koraci Pregled procesa - kad se zadovolje ulazni uvjeti (entrance criteria) za proces inspekcije, moderator saziva inspekciju. Autor daje uvodni pregled dokumenta i upoznaje inspekcijski tim s dokumentom. Priprema - inspektori proučavaju dokument u određenom vremenskom intervalu (broj utrošenih sati / KLOC). Može se koristiti i kontrolna lista (eng. checklist) Inspekcija moderator nadgleda sastanak, voditelj inspekcije (ili dizajner dokumenta) vodi sastanak. Zapisničar vodi zapisnik o tijeku i pronađenim pogreškama. Unos ispravaka Autor na osnovu zapisnika unosi ispravke. Follow up Moderator pregledava zapisnik i ispravke. Proces je završen kada su ostvareni uvjeti za izlaz (exit criteria). U obratnom, moderator može zatražiti doradu od autora ili ponovnu inspekciju. Entry Pregled Priprema Inspekcija Follow up Exit
Kontrolna lista (checklist) Lista stavki koje bi se trebalo provjeriti jesu li ispravno uvedene u dokumentu koji se inspicira. Obično je uobličena u obliku pitanja na koja se treba odgovoriti. Osnovna svrha je da se usmjeri pozornost inspektora, osobe koja pregledava dokument na potencijalne probleme u dokumentu. Stavke kontrolne liste uvode se na osnovu iskustva - što se kroz praksu pokazalo osjetljivo na pogreške Stavke unutar kontrolne liste koje se primjenom liste pokažu neučinkovitima trebaju se izbaciti iz liste jer preduga kontrolna lista smanjuje učinkovitost procesa inspekcije. Primjeri kontrolnih listi za C++: checklist1, checklist2
Sadržaj Kvaliteta prog. proizvoda i model kvalitete Osiguravanje kvalitete prog. proizvoda Tehnike osiguravanja kvalitete pp Pouzdanost i tehnike procjene pouzdanosti Plan osiguravanja kvalitete
Pouzdanost Vjerojatnost kontinuiranog rada sustava unutar određenog vremenskog trajanja. Mjera kojom se mjeri kvaliteta gotovog programskog proizvoda Uobičajena oznaka za pouzdanost (reliability) je R(n), pri čemu n označava vremensku jedinicu (npr. R(1) je vjerojatnost da se sustav neće srušiti unutar 1 dana) Vjerojatnost da će se sustav srušiti u određenom vremenskom trajanju (probability of failure) označava se s F(n) i jednaka je F(n) = 1 - R(n)
Pouzdanost - učestalost pogreške Pouzdanost programskog proizvoda može se izraziti preko učestalosti pogreške (Error rate, ER) Učestalost pogreške je broj pogrešaka u jedinici vremena (Npr. Ako se pogreška događa svaka 2 dana tada je ER=½= 0.5) Vjerojatnosti pogreške u jednoj jedinici vremena F(1) može se procijeniti koristeći ER kao: F(1) = ER Vjerojatnost da se sustav neće srušiti u jednoj jedinici vremena jednaka je R(1) = 1 - F(1) Vjerojatnost da se sustav neće srušiti u n jedinica vremena jednaka je R(n) = R(1) n Vjerojatnost da će se sustav srušiti (barem jednom) u n jedinica vremena jednaka je F(n) = 1 - R(n). PAZI: F(n) nije F(1) n, nego F(n) = 1 [1 - F(1)] n!!!
Primjer. Ako se pogreška događa svaka 2 dana, koja je vjerojatnost da će se sustav srušiti unutar 1, 2, 3, i 4 dana? S obzirom da se pogreška događa svaka 2 dana tada je ER=0.5, pa se procjenjuje F(1) = 0.5. Pouzdanost R(n) i vjerojatnost pogreške F(n) za: 1 dan: R(1) = 1-0.5 = 0.5; F(1) = 0.5 2 dana: R(2) = R(1) 2 = 0.25; F(2) = 1- R(2) = 0.75 3 dana: R(3) = R(1) 3 = 0.125; F(3) = 1- R(3) = 0.875 4 dana: R(4) = R(1) 4 = 0.0625; F(4) = 1- R(4) = 0.9375
Procjena pouzdanosti sustava Na osnovu praćenja trenda učestalosti pogreške (ER) možemo izračunati i procijeniti ER u bliskoj budućnosti (npr. pratimo li ER po danima tada možemo predvidjeti njeno očekivano ponašanje u narednih 1, 2, 3.. dana) Tehnike procjene: Crtanjem zavisnosti: x os: redni broj pogreške ili redni broj dana kada je pronađena y os: za svaku pronađenu pogrešku računa se recipročna vrijednost vremena međudolaska te i prethodne pogreške Teorija vjerojatnosti (stohastički procesi)
Sadržaj Kvaliteta prog. proizvoda i model kvalitete Osiguravanje kvalitete prog. proizvoda Tehnike osiguravanja kvalitete pp Pouzdanost i tehnike procjene pouzdanosti Plan osiguravanja kvalitete
IEEE Standard za SQA plan Da bi se u projektu ostvarili zahtjevi na kvalitetu potrebno provesti odgovarajuće planiranje i izvedbu plana Predložak za SQA plan IEEE Std. 730-1989: Neki primjeri studentskih SQA planova SQA Plan1, SQA Plan2, SQA Plan3 U nastavku je opisan sadržaj SQA plana Adobe obat Docum
SQA Plan sadržaj Uvod Svrha lista svih programskih proizvoda i dijelova životnog ciklusa za koje se planiraju aktivnosti osiguranja kvalitete Reference korištene u dokumentu Pojmovi i definicije pojmova korištenih u dokumentu
SQA Plan sadržaj (nastavak) Organizacija Opis strukture organizacije i odgovornosti Lista zadataka koja se treba obaviti, veze između zadataka i ključnih točaka u projektu, slijed zadataka Lista odgovornosti za svaku organizacijsku jedinicu
SQA Plan sadržaj (nastavak) Dokumentacija Svrha - lista svih zahtijevanih dokumenata i načina njihove procjene Minimalna lista dokumenata koja se obično sastoji od Specifikacije zahtjeva (Requirement Specification) Opis programskog rješenja (Software Design Description) Verifikacijski i validacijski plan (Software Verification and Validation Plan) Verifikacijsko i validacijsko izvješće (Software verification and validation report) Korisnička dokumentacija (User Guide, Manual) Plan upravljanja konfiguracijama sustava (Software Configuration Management Plan)
SQA Plan sadržaj (nastavak) Standardi, prakse, konvencije i metrika Opis standarda, praksi, konvencija i metrike koja će se koristiti i način na koji će se osigurati njihovo provođenje i nadzor Pregledi i auditi (Reviews and audits) Definicija koji tip pregleda i audita se planira koristiti, na koji način će se izvoditi i sve daljnje aktivnosti koje mogu biti definirane nakon provođenja ili ne provođenja tih aktivnosti Testiranja (Tests) opisi svih aktivnosti testa koje nisu pokrivene planom verifikacije i validacije
SQA Plan sadržaj (nastavak) Izvješćivanje problema (Problem reporting) Načini i procedure izvješćivanja, nadzora i rješavanja problema, te definicija organizacijskih odgovornosti Alati, tehnike i metodologije Popis svih alata, tehnika i metodologija te opis njihova korištenja. Nadzor koda Metode i načini održavanja procijenjenih i testiranih verzija programskog proizvoda Nadzor spremnika (Media control) Metode i načini identifikacije, pohrane i zaštite fizičkih spremnika/resursa
SQA Plan sadržaj (nastavak) Nadzor dobavljača (Supplier control) Pri korištenju programskog proizvoda drugih dobavljača potrebno je definirati načine procjene i osiguranja kvalitete tih programskih proiz. Zapisi Definicija potrebne dokumentacije, načina upravljanja i održavanja Potrebna obuka Identifikacija svih obuka, izobrazba neophodnih za izvođenje aktivnosti Upravljanje rizicima Definiranje metoda i procedura za upravljanje rizicima