Menetelmäraportti Ohjelmakoodin tarkastaminen

Samankaltaiset tiedostot
TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988)

Määrittely- ja suunnittelumenetelmät

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Katselmoinnin määritelmä. Katselmoinnit osa 1. ja vielä ajatuksia katselmoinneista. Katselmointi. Katselmointi, katselmus (review) IEEE Std

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

Menetelmäraportti - Konfiguraationhallinta

Toteutusvaihe T3 Digi-tv: Edistymisraportti

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen

LOPPURAPORTTI Paperikonekilta Versio 1.0

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Convergence of messaging

Projektityö

Toteutusvaihe T2 Edistymisraportti

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset. Riskienhallinta DTV projektissa

Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Selvitys GPL-lisensoinnin tuomat ongelmat

SEPA päiväkirja. Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T Ohjelmistoprojekti I

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Siirtoprotokolla

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Laatu ohjelmistotyössä

SEPA päiväkirja. Dokumentti: SEPA_diary_EM_PV.doc Päiväys: Projekti : AgileElephant Versio: V0.9

LAADINTAOHJE Nostin/nosturitarkastajat

Automaattinen yksikkötestaus

4. Verifiointi ja validointi. Kevät 2005 Empiirinen ohjelmistotutkimus / Taina. Kevät 2005 Empiirinen ohjelmistotutkimus / Taina

Tutkittua tietoa. Tutkittua tietoa 1

Fimean tarkastukset. Pirkko Puranen FT, Ylitarkastaja

Lohtu-projekti. Testaussuunnitelma

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Ylläpitodokumentti Mooan

Lain vaatimusten toteutumisen valvonta ja ohjaus Ammattimainen käyttäjä laiteturvallisuuden varmistajana Tarja Vainiola, ylitarkastaja

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe LU. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Veronumero.fi Tarkastaja rajapinta

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Software product lines

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Valtioneuvoston kanslia VAIN VIRKAKÄYTTÖÖN Hallinto- ja palveluosasto/hallintoyksikkö Terja Ketola PTJ2008-työsuunnitelma 1 (5)

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

Valtioneuvoston asetus

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

PROJEKTILA -TEHTÄVÄLUETTELO IM-MANAGERILLE Versio 1.0

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Siimasta toteutettu keinolihas

UCOT-Sovellusprojekti. Testausraportti

TIE Ohjelmistojen testaus 2016 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Kriittistentöiden hallinta EASA. Jukka Parviainen

JHS XXX Luokitusten koontisuositus

SOVELLUSPROJEKTIN ARVIOINTILOMAKE

@Tampereen Testauspäivät ( )

T SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B

Kuopio Testausraportti Kalenterimoduulin integraatio

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Aika: keskiviikkona klo 10: Paikka: sovellusprojektien kokoushuone Ag C226.2, Jyväskylän yliopisto

Lentokelpoisuustarkastajien kertausseminaari

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

58160 Ohjelmoinnin harjoitustyö

Virheiden etsintä: katselmoinnit vai testaaminen?

Tee joka päivä jotain, mikä pelottaa sinua by Eleanor Roosevelt

Synkka Laatu Infopaketti Olemassa olevat tuotteet

Sähköinen tiedonkeruuportaali. Käyttöohje

T Software Project Group: Tetrastone Subject: RosettaNET. Personal Software Engineering Assignment: Tetrastone

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Lohtu-projekti. Testiraportti. Versiohistoria: syklin toteutuksen testit. 1. ajo Virve

Internet-pohjainen ryhmätyöympäristö

ACUTE Muutokset ja korjaukset

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

S09 04 Kohteiden tunnistaminen 3D datasta

SUOMEN TILINTARKASTAJAT RY:N JÄSENKYSELY ISA- STANDARDIEN SUHTEELLISESTA SOVELTAMISESTA SYKSY 2018

Långström Ulla sihteeri Partanen Henri viranhaltija Lindström-Koli Tove tilintarkastaja

Periaatteet standardien SFS-EN ISO/IEC 17025:2005 ja SFS-EN ISO 15189:2007 mukaisen näytteenottotoiminnan arvioimiseksi

1 YLEISTÄ KÄYTTÖOHJEEN HYVÄKSYTTÄMINEN KÄYTTÖOHJEEN JAKELU KÄYTTÖOHJEEN ARKISTOIMINEN... 5

Yhteenveto mittareiden ja laskureiden kehittämistyöstä

SEPA diary. Dokumentti: SEPA_diary_PK_RI.doc Päiväys: Projekti : AgileElephant Versio: V0.2

Julkisen hallinnon yhteinen kokonaisarkkitehtuuri

PELASTUSVIRANOMAISEN ROOLI OLEMASSA OLEVAN VÄESTÖNSUOJAN TOIMINTAKUNTOISUUDEN VALVONNASSA

Testaussuunnitelma Labra

Toiminnan laadunvarmistus SYSTEEMITYÖ. Laatu

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

LEMIN KUNTA 2. Tekninen lautakunta Teknisen lautakunnan kokouspöytäkirjojen tarkastaminen vuonna

Kettumäki Jukka. Muut Tuominen Pirjo keskusvaalilautakunnan sihteeri

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Testiraportti - integraatiotestaus

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

MYRSKYLÄN KUNTA PÖYTÄKIRJA 3/2017 Tarkastuslautakunta AIKA klo Kunnanviraston kokoushuone

Verkkolaskun laatutesti. Juha Ikävalko / AgentIT Finland Oy Verkkolaskufoorumin syysseminaari

Projektisuunnitelma Viulu

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Ohjelmoinnin perusteet, syksy 2006

MYRSKYLÄN KUNTA PÖYTÄKIRJA 2/2017 Tarkastuslautakunta AIKA klo Kunnanviraston kokoushuone

Transkriptio:

Menetelmäraportti Ohjelmakoodin tarkastaminen

Sisällysluettelo 1. Johdanto...3 2. Menetelmän kuvaus...4 2.1. Tarkastusprosessi...4 2.1.1. Suunnittelu...4 2.1.2. Esittely...5 2.1.3. Valmistautuminen...5 2.1.4. Tarkastustilaisuus...5 2.1.5. Korjaus...5 2.1.6. Jälkiseuranta...5 2.2. Tarkastusryhmä...5 3. Tarkastusmenetelmän hyötyjä...7 4. Menetelmän soveltaminen projektissa...8 4.1. HyperCode-ohjelmakoodin tarkastusprosessi...8 5. Lähdeluettelo...9 Versio- ja muutoshistoria Versio Päiväys Tekijä Kuvaus 0.1 22.03.02 Tuomas Lindström Ensimmäinen luonnos 0.2 24.03.02 Tuomas Lindström Lisätty Kuva 2.1 ja luvut 3 ja 4 Tallennettu: 24.03.02 23:24 Tulostettu: 25.03.02 11:03 Menetelmäraportti: Ohjelmakoodin tarkastaminen 2

1. Johdanto Tässä dokumentissa on kuvattu laadukkaan lähdekoodin tuottamiseen Dtvprojektissa käytetty lähdekoodin tarkastus -menetelmä. Tarkastuksessa ohjelmakoodi käydään huolellisesti läpi ja löytyneet virheet raportoidaan ohjelmakoodin tekijälle, joka korjaa löytyneet virheet. Menetelmä pyrkii löytämään virheet ennen testausta, jolloin virheet on helpompi korjata ja varsinainen testaus sujuu nopeammin. Menetelmäraportti: Ohjelmakoodin tarkastaminen 3

2. Menetelmän kuvaus Tarkastusmenetelmä kehitettiin IBM:llä 1970-luvulla laadunvarmistukseen. Tarkistuksilla pyritään varmistamaan laatua koko ohjelmistoprosessin elinkaaren ajan. Tarkastusmenetelmää käytetään yleensä dokumenttien tarkastukseen esim. vastaako vaatimusmäärittely vaatimuksia mutta sitä käytetään myös parantamaan ohjelmakoodin laatua. Tässä dokumentissa keskityn juuri ohjelmakoodin tarkastamiseen. [1] Tarkastuksessa tarkastettava dokumentti tai lähdekoodi luetaan läpi huolellisesti kohta kohdalta ja pyritään löytämään siitä puutteita ja virheitä. 2.1. Tarkastusprosessi Työvaihe Tarkastettava dokumentti Valmistautuminen K Suunnittelu Tarkastustilaisuus Uusintatarkastus? E Esittely tarpeen? E Tarkastuspöytäkirja Korjaus K Esittely Hyväksytty dokumentti Jälkiseuranta Kuva 2.1: Tarkastusprosessin vaiheet. [1] 2.1.1. Suunnittelu Suunnitteluvaiheessa tarkistetaan, että tarkastettava materiaali on valmis tarkastettavaksi. Ohjelmakoodilla tämä tarkoittaa käytännössä sitä, että se kääntyy ja näyttää toimivan ilman suurempia testauksia. Ohjelmakoodia ei Menetelmäraportti: Ohjelmakoodin tarkastaminen 4

tulisi tarkastaa yli 500 riviä yhdessä tarkastuksessa, joten tarkastus pilkotaan useampaan osaan tarvittaessa [1]. Suunnitteluvaiheessa valitaan myös tarkastusryhmä, varataan aika ja paikka tarkastukselle sekä lähetetään tarkastettava materiaali tarkastusryhmälle. [2] 2.1.2. Esittely Esittely on valinnainen vaihe, jossa tarkastajille esitellään tarkastuksen kohde mikäli se ei ole entuudestaan tuttu [2]. Esittely voi olla myös haitallinen toimenpide, koska siinä ohjelmoija esittää omia mahdollisesti virheellisiä käsityksiään [1]. 2.1.3. Valmistautuminen Valmistautumisvaiheessa tarkastajat käyvät tarkastettavan koodin läpi yksin ja yrittävät etsiä virheitä ohjelmakoodista. Tässä vaiheessa on hyvä käyttää tarkastuslistaa, joka helpottaa tarkastuksen tekemistä. Ryhmämme käyttämä tarkastuslista löytyy liitteestä 1. Kukin tarkastaja kirjaa muistiin löytämänsä virheet, jotta ne voidaan käydä läpi varsinaisessa tarkastustilaisuudessa. [2] 2.1.4. Tarkastustilaisuus Tarkastustilaisuudessa tarkastusryhmä tarkastaa materiaalin ryhmänä. Ohjelmoija lukee ja tulkitsee ohjelmakoodia tarkastajille, jotka keskeyttävät ohjelmoijan aina virheen huomatessaan. Löytynyt virhe luokitellaan ja kirjataan ylös. Jos virhettä ei voida osoittaa todelliseksi virheeksi, kirjataan ylös, ettei virhettä pystytty tarkastustilaisuuden puitteessa osoittaa todelliseksi ja virhettä voidaan tulkita tarkemmin tilaisuuden jälkeen vapaamuotoisemmassa kokouksessa. Löydetyt virheet jaoitellaan vielä suurempiin ja vähäpätöisempiin. Virhe on suuri mikäli sen johdosta ohjelma ei täytä vaatimuksiaan. Tilaisuuden lopuksi virheet kootaan yhteen ja päätetään tarvitaanko uusintatarkastus vai riittäkkö korjausten teko ja jälkiseuranta. [2] 2.1.5. Korjaus Korjausvaiheessa ohjelmoija korjaa kaikki tarkastuksessa löytyneet suuremmat virheet ja resurssien puitteissa pienemmät löydökset. [2] 2.1.6. Jälkiseuranta Jälkiseurannassa ohjelmoija ja takastuksen puheenjohtaja käyvät läpi tehdyt korjaukset ja mahdolliset uudet virheet. Mikäli korjaukset on tehty, ohjelmakoodi hyväksytään. [2] 2.2. Tarkastusryhmä Tarkastusryhmä koostuu puheenjohtajasta, tarkastajista, alustajasta, sihteeristä ja tekijästä eli ohjelmoijasta. Jokainen ryhmän jäsen toimii Menetelmäraportti: Ohjelmakoodin tarkastaminen 5

mahdollisen muun tehtävän oheessa tarkastajana. Taulukossa 1 on kuvattu ryhmän eri jäsenten tehtävät. [2] Rooli Puheenjohtaja Tarkastaja Alustaja Sihteeri Tekijä Tehtävä Puheenjohtaja suunnittelee tarkastuksen ja valitsee tarkastusryhmän. Puheenjohtaja johtaa tarkastusprosessia ja on vastuussa, että tarkastus suoritetaan kunnolla. Ryhmän jokainen jäsen toimii tarkastajana. Tarkastajat ovat vastuussa virheiden löytämisestä valmistautumisvaiheessa ja tarkistustilanteessa. Alustajan tehtävä on tulkata ohjelmakoodia tarkastutilaisuudessa tarkastajille. Alustaja on usein ohjelmakoodin tekijä. Sihteeri kirjaa ylös tarkastuksessa löytyneet virheet. Sihteeri on usein ohjelmakoodin tekijä. Tekijä on ohjelmakoodin kirjoittaja. Tekijän tehtävänä on kertoa toteutuksesta muille tarkastajille ja vastata tarkastajien ohjelmakoodia koskeviin kysymyksiin. Tekijä tekee vaaditut korjaukset ohjelmakoodiin tarkastuksen jälkeen. Taulukko 2.1: Tarkastusryhmän roolien tehtävät Menetelmäraportti: Ohjelmakoodin tarkastaminen 6

3. Tarkastusmenetelmän hyötyjä Tarkastusten tehokkuus perustuu siihen, että virheet löydetään ajoissa. Ilman tarkastuksia suurin osa virheistä löytyy todennäköisimmin testattaessa valmista ohjelmaa. Tällöin virheen korjaamiseen tarvittava työmäärä on suurempi kuin jos virhe olisi löytynyt aikaisemmin. On arvioitu, että tarkastamalla löytyy jopa 80% kaikista virheistä, joka johtaa vähempään työmäärään testauksessa. Ohjelmoija myös tekee tietoisesti parempaa ohjemakoodia kun hän tietää, että se tarkastetaan. [1] Bell-Northern Researchissa tehtyjen tutkimusten perusteella ohjelmakoodista löytyy 0.8-1 virhettä/henkilötyötunti. Testaamalla virheitä löytyy 2-4 kertaa hitaammin, koska testattaessa havaittu virhe on vielä paikallistettava ohjelmakoodista ja tulkittava miksi ohjelmakoodi on virheellinen. Tarkastettaessa virheen paikka on heti selvä. [1] Menetelmäraportti: Ohjelmakoodin tarkastaminen 7

4. Menetelmän soveltaminen projektissa Projektiryhmällä oli tarkoituksena soveltaa ohjelmakoodin tarkastusmenetelmää projektin T3-vaiheessa. Tarkastusten organisointi osoittautui kuitenkin yllättävänä työlääksi ja tarkastuksia suoritettiinkin vain kerran. Ohjelmakoodin tarkastus saatiin sovituksi pidettävän 21.3.2002. Tarkastuksen kohteeksi valittiin editorin [3] paketin: com.digita.digitv keskeisimmät kohdat. Ohjelmakoodi jaettiin tarkastusryhmän jäsenille hyvissä ajoin 18.3.2002. Varsinaisen tarkastustilaisuuden alussa jouduttiin toteamaan, että kyseisiin ohjelmakoodeihin oli tullut tarkastukseen valmistautumisen aikana vielä niin paljon muutoksia, että tarkastaminen olisi ollut turhaa työtä. Siksi päätettiin muuttaa suunnitelmia ja kokeilla tarkastuksen pitämistä wwwympäristössä hieman hypercode-prosessia [4] mukaillen. Tarkastusta varten luotiin projektin ryhmätyöympäristöön keskustelusäie, johon löydetyt virheet raportoitiin. 4.1. HyperCode-ohjelmakoodin tarkastusprosessi HyperCode on www-pohjainen ohjelmakoodin tarkastusjärjestelmä. Järjestelmässä tarkastettava materiaali jaetaan tarkastusryhmälle sähköisessä muodossa. Varsinaista tarkastuskokousta ei pidetä, vaan tarkastajat tarkastavat ohjelmakoodia yksin ja raportoivat löytämistään virheistä muille tarkastajille internet-selaimella hypercode-järjestelmään. [4] Menetelmäraportti: Ohjelmakoodin tarkastaminen 8

5. Lähdeluettelo [1] Ilkka Haikala ja Jukka Märijärvi. Ohjelmistotuotanto, 7. uudistettu painos, Talentum Media, 2001. [2] National Aeronautics and Space Administration. Software formal ispections guidebook, 1993. [3] Pekka Koskinen. Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset: Tekninen määrittely, 2002. [4] Perpich, Perry, Porter, Votta, Wade. Anywhere, Anytime Code Inspections: Using the Web to Remote Ispection Bottlenecks in Large-Scale Software Development, ICSE 97 Boston MA USA, 1997. Menetelmäraportti: Ohjelmakoodin tarkastaminen 9