1 010758002 Ohjelmistotuotanto - Tarkastukset ja katselmoinnit Versionhallinta Kevät 2004 Hanna-Kaisa Lammi LTY/Tite.

Slides:



Advertisements
Samankaltaiset esitykset
Testaus ja testausympäristöt
Advertisements

Ohjelmistotekniikka - Software Control Management Kevät 2003 Hanna-Kaisa Lammi LTY/Tite Osa materiaalista on peräisin kurssikirjasta Haikala,
NAO/Maija-Leena Haapa-alho
1 Heli Lepomäki Yritysten ja muiden organisaatioiden käyttöön sähköinen työpöytä on jo leviämässä, koska niiden toiminta ja asiakaspalvelu.
Laatu ohjelmistotyössä
Oodin versiot, havaittujen virheiden korjaus sekä kehitysehdotusten eteneminen Laura Vuorinen Kehittämisosasto / Opiskelijarekisteri.
Ohjelmistotekniikka Tuotteenhallinta Kevät 2002 Päivi Ovaska LTKK/Tite.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestauksen raportointiohje Testitapauksen raportointi Havainnon raportointi.
Suunnitelma ohjelmiston testaukseen
Verkko-opetuksen tukipalvelujen laadunvarmistusta
Käytettävyystestaus GenMetrics projektissa Jonas Alam
Tietokannan suunnittelu
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestauksen testausohjeet Yleisohjeet testaukseen Havaintoraportin täyttäminen.
Ohjelmistokehittäminen. Luku 1 – Mitä on ohjelmistokehittäminen?
Tekninen suunnit-telu
Dokumentointi RASE
Vapaa Ohjelmisto.  Vapaa ohjelmisto on ohjelmisto jota voi käyttää, tutkia, muuttaa ja jakaa eteenpäin vapaasti.  FLOSS (Free / Libre Open Source Software)
Tietojärjestelmän suunnittelu
Projektikatselmus Publicum Teknillinen korkeakoulu Publicum-ryhmä.
Kurssilla käytettävät työkalut
Käytännön ohjelmointi ja käytännön ketterä testaus
T Projektikatselmus Ampel 3. Toteutusvaihe
Testaus Tiptopissa draft Mats Lindstedt, Mika Rintala.
Jatkuva Integraatio ohjelmistokehityksessä
Marja Toivonen gsm Tuumasta toimeen – seminaarin päätös Aktiivi
T Personal SE assignment Communication Practices Miikka Lötjönen.
T Personal SE assignment Project progress tracking and control.
3. Spesifikaatioiden laatiminen
Ohjelmistotekniikka - Tenttiin valmistautumisesta Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Rakenteen ja ilmeen määrittelystä konseptissa. Konseptisuunnittelu Konseptisuunnitelman sisällöstä Konseptisuunnitelmassa kuvaillaan Projektin tausta.
T / PPT / Jari Mäntylä1 IOBASE PPT Menetelmäesitys : Konfiguraatiohallintasuunnitelma.
Ohjelmistojen suunnittelumenetelmät ja –työkalut
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Projektikatselmus Publicum Teknillinen korkeakoulu Publicum-ryhmä.
Ohjelmistotekniikka ja projektinhallinta, 4 op
Onnistunut IT-projekti - Haaveesta totta? Tiken näkemys
Opinnäytetyön tekijä: Etunimi Sukunimi
Viestintäsuunnitelma
Pienyritykset ja käytettävyys Ville Juhani Lehtonen, 49515B.
Tukiasemaohjaimen ohjelmiston muutostoimitusten automatisoitu testaustyöympäristö Mikko Harila Työn valvoja:Professori Sven-Gustav Häggman Työn.
T Loppudemo Kaffetauko eAuction
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestaus – Miksi ja miten?
1 © NOKIA 2000 projektikatselmus_ PPT/ / Tapani Tarri Projektikatselmus Esitykset Esitys projektin tilasta Esitys toiminnallisesta.
Osaamisen ja sivistyksen parhaaksi Käytettävyystestaus Oppijan verkkopalvelukokonaisuudessa Hanketiimi Satu Meriluoto.
Testaus Testaus Testauksella pyritään löytämään virheitä, jotka sitten korjataan. Yksittäinen testi on yleensä ohjelman suoritus (tietyillä.
Lyhyt johdanto CVS:ään (ict1td002 - Ohjelmointitaito)
ITKY104 IT kaikkialla, 2 op Alku- ja perusinfo
Robottiprojektin kirjalliset työt Projektisuunnitelma Projektiraportti (väli-, loppu-) Esitysmateriaalit Muistiot palavereista Tekniset selvitykset ja.
Tik Tietojenkäsittelyopin ohjelmatyö Palautuspalaveri 1 Projektin esittely lyhyesti Projektin tilanne Vaiheen lopputulokset Seuraavan vaiheen (MÄ)
T Ryhmä ”Tete” Henkilökohtainen SE-harjoitus Marko Nikula (Assesment of Architecture) Arkkitehtuurin arviointi.
Tik Tietojenkäsittelyopin ohjelmatyö Palautuspalaveri 3 Projektin esittely lyhyesti Projektin arviointi –projektin tila –suunnitelmat P1-vaiheelle.
Tik Tietojenkäsittelyopin ohjelmatyö Palautuspalaveri 2 Projektin esittely lyhyesti Projektin tilanne Vaiheen lopputulokset Seuraavan vaiheen (SU)
T Projektikatselmus Ampel Projektisuunnitteluvaihe (Versio 1.0)
Refaktorointi ”Te olette tehneet tätä ennenkin”. Mitä on refaktorointi? (1/2) prosessi ohjelmakoodin laadun parantamiseksi ohjelman sisäisen rakenteen.
FTR (Formal Technical Review) Kimmo Airamaa. Johdantoa Muodollinen tekninen tarkastus = toiminta tarkastustilaisuudessa on tarkasti määritelty Muodollinen.
Liiketoimintaprosessit ja MS Visio 2010
Ohjelmistotekniikka Tarkastukset ja katselmukset Kevät 2002 Päivi Ovaska LTKK/Tite.
Ohjelmistotuotanto - kurssin yleiset asiat Kevät 2004 Hanna-Kaisa Lammi LTY/Tite.
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Projektinhallinta it. lut
Ohjelmistotekniikka - Tarkastukset ja katselmoinnit Kevät 2003 Hanna-Kaisa Lammi LTY/Tite Osa materiaalista on peräisin kurssikirjasta Haikala,
Laitos-Oiva kunnan näkökulmasta
Projektityöskentely Projekti käsitteenä Projektin vaiheet Projektin asettaminen Projektin suunnittelu Projektin käynnistäminen ja toteuttaminen Projektin.
THL-raportoinnin määrittely – yhteenveto
Kansallinen palveluväylä PERTIVA-kokous
THL – SÄHKÖINEN JULKAISEMINEN MÄÄRITTELYTYÖPAJA
KOKONAISARKKITEHTUURIN ARVIOINTI
Avoimen tuotteenhallinta
Esityksen transkriptio:

Ohjelmistotuotanto - Tarkastukset ja katselmoinnit Versionhallinta Kevät 2004 Hanna-Kaisa Lammi LTY/Tite

2 Sisältö Terminologiaa Tarkastukset Tarkastusmenettelyn vaiheet Ongelmia Versionhallinta (SCM)

3 Laadunvarmistukseen liittyviä termejä

4 Terminologiaa (1/2) Audit, assessment, arviointi: laatujärjestelmän ja organisaation toiminnan tarkastamista. Management review: johdon katselmus, tarkastetaan yrityksen laatujärjestelmän tilanne, esim. ISO 9001 Verifiointi, todentaminen: tuote on määrittelynsä mukainen. Validointi, kelpoistaminen: tuote sopii käyttötarkoitukseensa. Virhe (error, fault, failure) –väärin oleva, ei speksin mukainen (huomioitava speksin täydellisyysaste) –ristiriitainen –puuttuvia osia –liikoja osia Virheiden luokittelu: vakava, lievä, kosmeettinen tms.

5 Terminologiaa (2/2) (Technical) Review = katselmus, tekninen katselmus –Tarkoituksena vaiheen päättymisen toteaminen –Pidetään tärkeimmissä etapeissa, esimerkiksi määrittely- tai suunnitteluvaiheen päättyessä. Kattaa kokonaisen vaihetuotteen. –Paljon osallistujia, myös ulkopuolisia. Inspection = tarkastus: –Tarkoituksena virheiden löytäminen (speksiinsä nähden). –Joustava aikataulutus, vaiheen aikana useita. –Tarkastettavana pienehkö kokonaisuus (tai osa laajempaa kokonaisuutta). –Muutamia osallistujia (esim. 3-6), yleensä projektin sisäinen. Walkthrough = läpikäynti –Läpikäynti on epämuodollinen tarkastuksen muoto, joka tehdään yleensä vain koodille. –Tekijä selittää, mitä hän "luulee ohjelmansa tekevän". Näiden termien käyttö ei ole vakiintunut. Tarkista aina, mistä puhutaan, kun näitä termejä käytetään!

6 Tarkastukset Tarkastuksilla tarkoitetaan virheiden etsimistä esim. dokumentista tai ohjelmakoodista. Yleensä käytetään ryhmätyömenetelmiä. Tarkastukset ovat aina ennalta suunniteltua ja systemaattisesti eteneviä % projektin kustannuksista koostuu tarkastuksista

7 Mihin tarkastuksia tarvitaan? –tehokkaampi virheenetsimiskeino kuin testaus –mahdollista löytää jopa 80% virheistä –virheet löytyvät aikaisemmassa vaiheessa –parantaa etenemisen näkyvyyttä –toimii tiedonvälityskanavana –varmistetaan, että kaikki ymmärtävät asiat samalla tavalla –toimii koulutustilaisuutena –sitouttaa tuloksiin –stabiloi speksit –...

8 Tarkastukset ja katselmoinnit projektissa

9 Virhekustannusten kertautuminen Mitä kauemmin virhe on järjestelmässä, sen kalliimmaksi se tulee. On useasti näytetty toteen, että yli puolet (60%) tuotteesta käytön aikana löytyvistä virheistä on peräisin ohjelmointia edeltävistä vaiheista (määrittely, suunnittelu). Testaukseen ja virheiden poistamiseen kuluu 50-80% projektin ajasta. Ylläpitoon kuluu lisäksi yli puolet elinkaarikustannuksista. Johtopäätös: virheiden ennaltaehkäisyyn ja havaitsemiseen ajoissa kannattaa panostaa.

10 Esimerkki: virheiden etsiminen testaamalla Moduulitestaus Järjestelmätestaus Asiakas Korjausaika 2pv / virhe Korjausaika 0.5pv / virhe Löytyvät tarkastamalla ja osittain järj. testauksessa Löytyvät testaamalla ja tarkastamalla Löytyvät moduulitestaamalla Ei löydy tarkastamalla eikä testaamalla Ajankäyttö: 0.5pv*10+2pv*4= 13pv

11 Esimerkki: virheiden etsiminen tarkastamalla Löytyvät tarkastamalla ja ositain järj. testauksessa Löytyvät testaamalla ja tarkastamalla Löytyvät moduulitestaamalla Ei löydy tarkastamalla eikä testaamalla Ajankäyttö: 0.2pv* pv*5= n. 5pv Moduulitestaus Järjestelmätestaus AsiakasKorjausaika 2pv / virhe Korjausaika 0.2pv / virhe Korjausaika 0.5pv / virhe Tarkastus

12 Vaiheet Ei saa olla Keskeneräinen, Alle 50 sivua. Osallistujat, aikataulu Materiaali jaetaan ja esitellään lyhyesti. 15 min Sovitaan tarkastusistunnosta: aika, roolit. roolit. Materiaaliin tutustuminen, kirjataan: - "ei ymmärrä" -lista - virhelista - pikkuvirhelista (kirj. virheet) Max. 2 tuntia Tekijä korjaa Joku osallistujista yhdessä korjaukset tehneen/tehneiden kanssa Virheiden analysointi prosessin kehittämiseksi

13 Tarkastuksen roolit 2-6 henkeä. Moderaattori eli juontaja eli puheenjohtaja: huolehtii aikataulussa pysymisestä ja asian etenemisestä kokouksessa (ei mielellään tekijän linjaesimies). Tekijä (syytetty :-). Esittelijä: esittelee materiaalia (voi olla tekijä). Sihteeri: kirjaa virheet (voi olla tekijä). Tarkastaja: kaikki toimivat tarkastajina. Muita rooleja: sovellusalueen tai jonkun teknologian asiantuntija, kieliasun tarkastaja, käyttäjänäkökulman edustaja…

14 Ohjeita tarkastukseen osallistuville Ohjeita puheenjohtajalle: hillitse selittelyä; huolehdi aikataulussa pysymisestä; estä rönsyily ja liika ideointi; rohkaise/provosoi passiivisia. Ohjeita tekijälle: älä selittele; älä tuo keskeneräistä tuotetta tarkastettavaksi. Ohjeita kaikille: valmistaudu huolellisesti; ole ystävällinen, varo loukkaamasta tekijää; pysyttele teknisissä asioissa -- arvioi tuotetta, älä tekijää; anna myös positiivisia kommentteja; osoita ongelmat; älä esitä korjausehdotuksia; anna korjaukset pikkuvirheisiin.

15 Tarkastusistunto Maksimiaika 2 tuntia. Pitäisi syntyä synergiaa: löytyy uusia puutteita tai virheitä. Ei selitellä ja puolustella tai keräillä pisteitä Tilaisuus ei saa muuttua ideointipalaveriksi. Vain etsitään virheet, ei korjata niitä tilaisuudessa! Ei syytellä. Sovitaan lopputuloksesta ja jälkiseurannasta. Dokumenttina syntyy tarkastuspöytäkirja, johon kirjataan –osallistujat –ajankäyttö / osallistuja –hyväksytty / hylätty –korjausaikataulu yhteenveto virheistä –mahdollinen seurantamenettely

16 Mitä tarkastetaan? Tarjous ja sopimus (ISO 9001) Määrittelydokumentit (toiminnallinen määrittely) Projektisuunnitelma Suunnitteludokumentit (tekninen määrittely) Testaussuunnitelmat Koodi Käyttäjälle menevä dokumentaatio Koulutusmateriaali, koulutussuunnitelma Käyttöönottosuunnitelma Muut tarvittavat asiat, joista sovitaan projektikohtaisesti

17 Tarkastuslistat Käytetään apuna tarkastuksissa. Laaditaan (ja ylläpidetään) kutakin vaihetuotetta varten kokemusten perusteella. Tarkastuslistat voivat olla sekä projekti- että tuotekohtaisesti dynaamisia eli uusia kohtia lisätään aina tarkastusten yhteydessä

18 Esimerkki tarkastuslistasta Opetusohjelman muuttaminen jonkun kurssin osalta –Soveltuvuus pääaineeseen, vs. sivuaineet –Koulutusohjelman vaihtajat –Koulutusohjelman rakenne –Rajapinnat muihin kursseihin, päällekkäisyydet –Kurssien rytmitys lukujärjestykseen –Käytettävissä olevat opettajat –Laitteet/ohjelmistot –Opetustilavaikutukset

19 Tarkastusten vaikutuksesta Tarkastusten käyttö muuttaa kustannusjakauman etupainotteisemmaksi. Monet virheet eivät löydy testaamalla Tarkoituksena on löytää virheitä => inhimillisesti ottaen "arkaluontoinen" prosessi. Tarkastuksella voidaan löytää tyypillisesti n. 80% virheistä (= enemmän kuin esimerkiksi testaamalla). Tarkastukset yleensä n. 5-15% projektin kokonaistyömäärästä. Tarkastuksilla on myös muita etuja –Varahenkilö –Oppiminen –Perehtyminen toisten tekemään työhön. –Sitoutuminen projektin tuloksiin.

20 Henkilöstökustannukset Without inspections With inspections Req’s DesignCodingTesting Staff resources

21 Virheiden aiheuttaman lisätyön osuus eri vaiheissa

22 Pahimmat ongelmat Pahimmat kompastuskivet: asenteet ja organisointi Tarkastustilaisuudessa –valmistautumattomuus –perehtymisen työmäärä –motivointi, asenteet –rönsyily –lepsu puheenjohtaja –ideointi, korjailu –työmäärää ei oteta huomioon aikataulutuksessa (varsinkin muiden projektien tarkastuksiin osallistuminen) –liikaa materiaalia

23 Havaintoja Koodissa aluksi virheitä n kpl tuhatta riviä kohti. Näistä 80% on löydettävissä tarkastamalla (sopivalla vauhdilla). Virheitä, jotka eivät löydy testaamalla –turha koodi, –standardeja noudattamaton koodi ja –kommenteissa olevat virheet.

24 Testaus vs. tarkastukset Virheiden korjaaminen tarkastamalla on huomattavasti testausta halvempaa. Miksi? –Testaus Testin suunnittelu Testiympäristön pystyttäminen Testin suorittaminen Tulosten tarkastaminen => virheet Virheiden jäljitys (debug) Virheiden korjaus –Tarkastaminen Yleiskatsaus Valmistautuminen Tarkastus Korjaus: jäljitystä ei tarvita, korjaukset usein ilmeisiä

25 Tarkastusvauhdin vaikutus tarkastustulokseen

26 Ongelmia Tarkastusten tehokkuudesta ei ole käytettävissä todisteita. Tarkastukset vievät paljon aikaa (virheet vievät vielä enemmän). Väärinkäsitykset tarkastustekniikasta: mitä tahansa kommentointia pidetään tarkastuksena. "Low tech" -tekniikan imago, ihmiset luulevat, että testaus ja jäljitys on nopeampaa.

27 Yhteenveto Tarkastuksilla ja katselmoinneilla saadaan parhaimmassa tapauksessa parannettua tehtävän järjestelmän laatua. Tarkastukset ja katselmoinnit pitää aikatauluttaa ja niihin tulee varata rahaa. Tarkastusten ja katselmointien merkitys tulee selventää projektin kaikille osapuolille, jotta niillä saavutetaan halutut tulokset.

28 Versionhallinta osana laadunvarmistustoimintaa

29 Software Control Management Puhekielessä käytetään useita eri nimiä: –Configuration management, konfiguraation hallinta –Version management, versionhallinta –monissa teoksissa käytetään kuitenkin termiä Software Control Management, SCM (joku kirja käyttää termiä kokoonpanon hallinta, tässä käytetään englanninkielistä termiä) Termeissä on laajuuseroja

30 Tarkoitus SCM:n tarkoituksena on hallita eri järjestelmän osien versioita niin, että projekti pysyy yhtenäisenä koko projektin ajan. Yleensä hallitaan lähdekoodia, mutta voidaan soveltaa myös –vaatimuksiin –suunnitelmiin –testitapauksiin –käyttäjädokumentaatioon –jne.

31 Ilman SCM:ta ilmeneviä ongelmia Tulipa editoitua tiedoston vanhaa versiota, koska en huomannut, että toinen suunnittelija on kirjannut oikean version itselleen editoitavaksi. Sotkin jotenkin muutokseni, ei auta kuin palata takaisin alkuperäiseen tiedostoon ja aloittaa alusta. Mihinkäs hakemistoon minä talletinkaan sen tiedoston? En löydä ohjelman sitä versiota, jonka talletin viime viikolla ennen kuin aloitin nämä viimeiset muutokset. Joku on muuttanut tiedostoa, mutta en saa selvää, mitä muutoksia aiotaan tehdä. Missähän he pitävät tällä hetkellä muutettavaa tiedostoa? Olen uusi projektissa, enkä tiedä mitkä tiedostot pitäisi ottaa mukaan, jotta saisin testattua muutosteni vaikutusta.

32 Ilman SCM:ta ilmeneviä ongelmia En ole muuttanut koodia kahteen viikkoon, mutta ohjelma ei käänny. Kukaan ei myönnä muuttaneensa mitään. Ohjelmani toimii eri tavalla kuin viimeksi, enkä keksi kuka on muuttanut sitä ja miksi. En pysty korjaamaan tätä vikaa, koska en saa ongelmaa päälle (en saa järjestelmää sellaiseen tilaan, että virhe tulisi esiin). En saa ongelmaa päälle, koska en tiedä, millainen kokoonpano ohjelmasta on asiakkaalla. En pysty korjaamaan tätä vikaa, koska toinen suunnittelija on ottanut tiedoston muutettavaksi eikä saa muutostaan valmiiksi ainakaan viikkoon. Vihaan sitä, kun joku toinen muuttaa samaa tiedostoa kanssani samanaikaisesti ja minun muutokseni menevät roskiin. Lähde:

33 Miksi SCM on tärkeää? eri ihmisten on pystyttävä tuottamaan koodia samaan järjestelmään hallitusti (esim. maantieteellisesti hajautettu tiimi) virheiden korjaus nopeutuu, kun tiedetään tarkasti mihin versioon korjaukset tehdään eri versioiden haaroittaminen (branching) eri alustoille tai asiakkaille onnistuu hallitusti muutosten tekeminen vain yhteen haaraan on mahdollista

34 Versiograafi, esimerkki

35 Keskeisiä tehtäviä Versionhallinta Ohjelmiston rakentamisen hallinta Muutospyyntöjen hallinta Julkaisujen hallinta Jakelun hallinta Asennuksen hallinta

36 Versionhallinta Valvoo ohjelmiston eri osien versioita ja niiden muutoksia Perusominaisuudet: –uusien versioiden teko, –uusien ja vanhojen versioiden muokkaus –version muutostietojen hallinta

37 Ohjelmiston rakentamisen hallinta hallitaan komentosarjojen (scripts) tai ohjelmistojen erilaisten kokoonpanojen (builds), esim. testaustarkoituksiin, rakentamista suunnitteluvaiheessa suunnitellaan kokoonpanojärjestys, SCM pitää huolen käytännön toteutuksen onnistumisesta SCM ei ole työkaluriippuvainen

38 Muutospyyntöjen hallinta Muutospyyntöjen toteutus voidaan jäljittää SCM-järjestelmän logitiedostojen avulla Auttaa myös muita havaitsemaan, kuinka joku osa järjestelmästä on muuttunut ja kuinka se pitäisi muualla ottaa huomioon

39 Muita Julkaisunhallinta: määrittää, mitkä järjestelmän osat (ja dokumentaatio) kuuluu yhteen muodostaen eheän kokonaisuuden Jakelunhallinta: menetelmä, jolla lopputuote jaetaan asiakkaalle Asennuksen hallinta: ohjelmiston asennus oikeilla asennusparametreilla

40 Työkaluja CVS (Concurrent versions system) – ilmainen ( MS Visual SourceSafe ( Rational ClearCase ( muita esim. PVCS, Uniface, Perforce, Starteam

41 Yhteenveto SCM on apuvälineenä koko projektin ajan sekä yleensä myös tuotteen elinkaaren loppuun saakka. SCM:n käyttö tulee suunnitella, sopiva väline valita ja projektin jäsenet tulee kouluttaa sen käyttöön. Yrityksen oman ohjeiston lisäksi tulee vielä projektikohtaisesti sopia SCM:n käytön yksityiskohdista!