Katselmoinnit Johdatus ohjelmistotekniikkaan Sami Kollanus 19.10.2004 Katselmoinnin määritelmä (IEEE 1988) An evaluation of software element(s) or projects status to ascertain discrepancies from planned results and to recommended improvement. This evaluation follows a formal process (for example, management review process, technical review process, software inspection process, or walkthrough process). 2 Mitä ovat katselmoinnit? Ihmisvoimin tehtävää työtä (vrt. testaus) Ne suorittaa joku muu kuin tuotoksen tekijä Päämäärä etsiä virheitä dokumentista Katselmoinnit (review( review) Tekninen katselmointi Läpikäynti Tarkastus Tarkoitus etsiä tuotoksesta virheitä lukemalla tuotosta (vrt. testaus) Suorittaa joku muu kuin tuotoksen tekijä 3 4 1
Päävaatimusten määrittely Järjestelmän spesifikaatio Testauksen V-malli Päävaatimusten speksit Järjestelmän speksit Komponenttien koodaus / testaus Komponenttien testaus Järjestelmän testaus Koskinen, Sakkinen ja Paakki, 2001. Ohjelmistotekniikka, kurssimoniste 5 Miksi katselmointeja? Testaus voidaan toteuttaa vasta toimivalle ohjelmalle, jolloin korjaaminen on kallista Testaus ei kata läheskään kaikkea validointi puutteet dokumentaatio ylläpidettävyys Katselmoinnit ovat halvempia jopa samojen virheiden löytämiseen kuin testaus (Basili( & Selby) 6 Virheen suhteellinen kustannus (Boehm 1981) Virheen korjaamisen suhteellinen kustannus 1 Arkkitehtuurin speksit Arkkitehtuurisuunnittelu Moduulien speksit Komponenttisuunnittelu Integrointitestaus Hyväksymistestaus Vaatimusmäärittely 3-6X 10X 15-40X 30-70X Koodaus Kehitys- Testaus Hyväksymis- Testaus 40-1000X Käyttöönotto, Ylläpito (82X IBM keskiarvo) 7 Tarkastus (Inspection( Inspection) Tarkasti määritelty kokouskäytäntö katselmoinnin toteuttamiseen Michael Fagan 1976, IBM Ei ole sama miten katselmointi toteutetaan: IBM totesi 23% tehokkuuden nousun jo ensimmäisissä kokeiluissa (Fagan( 1976). 8 2
Tarkastus (Gilb & Graham 1993) Tarkastuksella on johtaja, joka organisoi tilaisuuden Ei tuotoksen tekijä eikä esimies Ryhmän kokosuositus 3-6 henkilöä Vertaisryhmä Eri roolit tärkeitä: Eri osaamisalueet Sama dokumentti näkökulmista Jaetaan dokumentti osiin Tarkastus on luonnollinen osa tuotantoprosessia, ei minkään erillisen laatuyksikön asia Vie 5-15 % työajasta 9 Kokemuksia tarkastuksista 1 h tarkastuksiin säästää 33 h ylläpitotyötä (Russel 1991) Tarkastuksiin käytetty tunti maksaa itsensä takaisin 30-kertaisesti (Doolan( 1992) Hewlet-Packardilla säästetty 25 miljoonaa dollaria (Grady( & Slack 1994) Ericssonin projektissa 40 % työajasta tarkastuksiin -> 70 % parannus tuottavuudessa ja 100% testauksessa (Haikala & Märijärvi 2000) 10 Esimerkki laskennasta JPL:n organisaatio (Bush 1990): Virheen korjaaminen myöhemmässä vaiheessa maksaa 1700 $ Tarkastuksessa löydetään tarvallisesti 4 suurta ja 12 pientä virhettä Tyypillisesti aikaa 5 hengen tiimiltä kuluu 28 h -> kustannus 105 $/virhe Säästö = 1700-105 = 1595 $/virhe 11 Tarkastusprosessi (1/8) 12 3
Vaatimus tarkastuksen järjestämisestä Tarkastusprosessi (2/8) Tuotoksen tekijä esittää vaatimuksen tarkastuksen järjestämisestä, kun hänen mielestään esiehdot on täytetty Tarkastuksen tulisi olla vapaaehtoista?!? Valitaan tarkastuksen johtaja Tuotos tarkastuksen johtajalle 13 14 Tarkastuksen johtaja käy läpi aloituskriteerit Jos aloituskriteerejä ei ole täytetty, on turha tuhlata tarkastajien aikaa kriteerit yleisiä nopeasti tarkastettavia, esim. Dokumentiontiohjeita noudatettu Kaikki vaadittu tehty Voidaanko käytännössä peruuttaa? > aloitukriteerit käytännössä ehkä tekijää varten Tarkastusprosessi (3/8) 15 16 4
Tarkastuksen johtaja suunnittelee tarkastuksen läpiviennin Useampi kierros? Tarkastajien valinta ja roolitus Aikataulu, tilavaraukset Materiaalin jakelu tarkastajille Tarkastusprosessi (4/8) 17 18 Ei välttämättä järjestetä voidaan ohjeistaa tarkastajat muulla tavalla Tarkastajien koulutusta ja motivointia varten Varmistetaan, että jokainen tietä roolinsa Tuotoksen tekijä voi esitellä tuotosta, jotta tarkastajat pääsevät siihen helpommin sisälle Tarkastusprosessi (5/8) 19 20 5
Tarkastajat etsivät itsenäisesti tuotoksista virheitä Ilman tätä vaihetta on mahdollista, että löydetään vain 10% virheistä verrattuna hyvin toteutettuun tarkastukseen. (Gilb & Graham 1993) Tarkastaja käy dokumentin läpi tarkistuslistan avulla ja kirjaa löytämänsä virheet ylös Tarvitaan riittävästi aikaa Tavallinenen ongelmakohta! Tarkastusprosessi (6/8) 21 22 Kolme tarkoitusta Kirjataan ylös kaikki mahdolliset virheet, jotka on havaittu itsenäisessä tutustumisessa Suoritetaan tarkastus ryhmässä, jotta voidaan löytää ja kirjata ylös vielä uusia virheitä Kirjataan ylös tarkastettavaan tuotokseen liittyviä kehitysehdotuksia ja kysymyksiä tuotoksen tekijälle Lisäksi voidaan kerätä erikseen prosessinkehitysehdotuksia Aivoriihimäinen, suositaan vapaata ajatuksenjuoksua Rajoitetaan keskustelua, ettei kaikki aika kulu siihen Parannusehdotuksia ja kysymyksiä saa esittää, mutta ne ainoastaan kirjataan ylös Ratkaisujen pohdinta jätetään korjaajalle Maksimiaika 2 tuntia -> tarkastuksen johtajalla tärkeä rooli ohjata ajankäyttöä oleellisiin asioihin Tuloksena lista virheistä, parannusehdotuksista ja kysymyksistä 23 24 6
Tarkastusprosessi (7/8) Korjaaja (tuotoksen tekijä?) käy kirjauspalaverissa luodun listan läpi Virheiden luokittelu ja lopullinen kirjaus Virheiden korjaus Tarvittaessa korjauspyyntö lähdedokumenttiin Kolme tapaa edetä: Uusi tarkastus Tarkastuksen johtaja hyväksyy korjaukset Korjaaja vahvistaa itse korjaukset tehdyksi 25 26 Tarkastusprosessi (8/8) Tarkastuksen johtaja tarkistaa lopetuskriteerit Kriteerejä esim. Kaikki vaaditut dokumentit tehty Vaaditut korjaukset tehty Yleinen hyväksyttävä virhetaso saavutettu 27 28 7
Tärkeät tehokkuusseikat Valmistautuminen palaveriin Yksilön suoritus (kyky + motivaatio) koulutus Roolijako keskittyminen omaan osaan Oppiminen ennalta ehkäisy varo näitä virheitä listat koulutus tarkastusten kehittäminen 29 Tiivistelmä tarkastusten merkityksestä (Gilb 2000) Virheiden tunnistaminen ja poistaminen Projektin läpimenoajan lyheneminen Tehokkuuden kasvu Kustannusten säästö Laadun mittaaminen Prosessin kehittäminen Koulutus Oppiminen, virheiden ennalta ehkäisy Tuotoksen tekijän auttaminen 30 Luentotehtävä Kerro tämän luennon pohjalta, mitä hyötyä katselmoinneista on. Käsittele perustellusti useampia eri näkökulmia. Lähde: Gilb T., 2000. Planning to get the most out of inspections. Software Quality Professional, vol 2, no 2, 2000. Saatavilla HTML-muodossa: http://www.asq.org/pub/sqp/past/vol2_issue2/gil b.html 31 8