Staattinen testaus. Luento 5 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Samankaltaiset tiedostot
Staattinen testaus Dynaaminen testaus I Luento 3 Antti-Pekka Tuovinen

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Dynaaminen analyysi IV

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

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

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

Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen

Dynaaminen analyysi III

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

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

Tietojärjestelmän osat

SEPA: Staattiset menetelmät Timo Sallinen, 51134F & Risto Kunnas, 50498T. Sisällysluettelo. 1 Johdanto. 2 SEPA harjoittelu käytännössä.

LAATU, LAADUNVARMISTUS JA f RISKIEN HALLINTA JOUNI HUOTARI ESA SALMIKANGAS PÄIVITETTY

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Menetelmäraportti Ohjelmakoodin tarkastaminen

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Ohjelmistotestauksen perusteita I Luento 1 Antti-Pekka Tuovinen

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

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

Onnistunut Vaatimuspohjainen Testaus

Ohjelmistojen virheistä

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Turvakriittisen projektin menetelmät ja työkalut

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

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

JHS XXX ICT-palvelujen kehittäminen: Laadunvarmistus Liite 6: Katselmointi

Tapahtuipa Testaajalle...

Ohjelmiston testaus ja laatu. Testaustasot

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

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

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Tutkittua tietoa. Tutkittua tietoa 1

Dynaaminen analyysi II

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

Arviointi ja mittaaminen

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Poikkeavuuksien havainnointi (palvelinlokeista)

LAATURAPORTTI Iteraatio 1

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

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Alkukartoitus Opiskeluvalmiudet

Virheraportoijien virhemäärien jakaumat virhetietokannassa

Laatu ohjelmistotyössä

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

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Refaktorointi teknisen velan hallintavälineenä Simo Mäkinen Tietojenkäsittelytieteen laitos Helsingin yliopisto

T Projektikatselmus

Ohjelmistojen laadun parantaminen refaktoroinnilla Simo Mäkinen Tietojenkäsittelytieteen laitos Helsingin yliopisto

Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen

Lyhyt yhteenveto ohjelmistovaatimuksista standardissa ISO

Kontrollipolkujen määrä

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

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

Ohjelmistojen suunnittelu

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

58160 Ohjelmoinnin harjoitustyö

ELM GROUP 04. Teemu Laakso Henrik Talarmo

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

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Automatisoinnilla tehokkuutta mittaamiseen

The OWL-S are not what they seem

Tässä tiivistelmässä standardi tarkoittaa standardia SFS-EN

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

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

Ohjelmiston testaus ja laatu. Testaus yleistä

Hirviö Testausraportti I2

Ohjelmistojen testaus

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Mittaaminen projektipäällikön ja prosessinkehittäjän työkaluna

Virtuaalinen tarkastus. Katselmoinnit osa 3. Paritarkastus. N-kertainen tarkastus (n-fold inspection)

Muutoksen hallinta rakenteisen projektissa. Kari Kovanen Development manager Etteplan Technical Information

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Sopisiko testiautomaatio yritykseesi juuri nyt? Testiautomaation soveltuvuuden arviointiopas

Thl.fi 5. määrittelytyöpaja: avoimet asiat

Katselmointi ja tarkastaminen

Ohjelmistotestaus -09

Jatkuvatoiminen monitorointi vs. vuosittainen näytteenotto

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Siimasta toteutettu keinolihas

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Hirviö Laadunvarmistussuunnitelma

Ketterä vaatimustenhallinta

JHS 182 ICT-palvelujen kehittäminen: Laadunvarmistus Liite 6 Katselmointi

Johdantoluento. Ohjelmien ylläpito

Ohjelmistotekniikan menetelmät, kesä 2008

Esitelmän kulku: 1. Pikaperehdytys koneoppimiseen. 2. Koneoppiminen ohjelmistotestauksessa. 3. Demonstraatio. 9/6/2017 Knowit

Transkriptio:

Staattinen testaus Luento 5 Antti-Pekka Tuovinen 26 March 2013 1 Oppimistavoitteet Katselmointien käyttö vikojen löytämiseen Ohjelmakoodin ja spesifikaatioiden staattinen analyysi 26 March 2013 2 1

Staattinen testaus Testauksen kohdetta ei suoriteta, vaan sitä tutkitaan ihmismielen ja analyysityökalujen avulla Mitä tahansa kehitysprojektin tuotosta voidaan tutkia manuaalisesti Tavoitteena on nostaa tutkittujen artefaktien (dokumentit, koodi) laatua ja poistaa vikoja mahdollisimman aikaisessa vaiheessa Ongelmien ennaltaehkäisy 26 March 2013 3 Katselmoinnit 26 March 2013 4 2

Katselmoinnit Käytetään ihmisten analyyttisiä kykyjä mutkikkaiden asioiden arviointiin ja tarkastamiseen Asiantuntijat lukevat huolellisesti katselmoitavan dokumentin ja yrittävät ymmärtää sen Löydösten läpikäynti ja johtopäätösten tekeminen on ryhmätyötä, jossa monet eri näkökulmat yhdistyvät 26 March 2013 5 Katselmoinnit Katselmointi (review) on yleistermi ihmisten tekemälle kaikenlaisten dokumenttien arvioinnille Sopimukset, vaatimusmäärittelyt, ohjelmakoodi, testaussuunnitelmat, manuaalit jne Tarkastus (inspection) on erityinen muodollinen katselmointi, jolla on omat sääntönsä Katselmoijat ovat yleensä saman työyhteisön jäseniä, joten katselmoinneista käytetään usein engl. termiä peer review 26 March 2013 6 3

Katselmoinnit Katselmointi voidaan tehdä heti, kun dokumentti/koodi on valmis Viat ja epäjohdonmukaisuudet löydetään aikaisin, jolloin niiden vaikutukset eivät kertaudu projektin myöhemmissä kehitysvaiheissa edellyttäen, että katselmoitava dokumentti valmistuu käyttötarkoitukseensa nähden ajoissa Saadaan eri näkökulmia mukaan aikaisessa vaiheessa (esim. suorituskyky, tietoturva) Phase exit review 26 March 2013 7 Katselmoinnin hyödyt Vikojen vähentäminen, kuten testauksessa yleensä Aikainen vikojen löytyminen vähentää tarvetta analysointiin ja korjauksiin myöhemmin projektissa Kehitysaika lyhenee Koska ohjelmistossa on vähemmän vikoja, dynaamista testausta tarvitsee tehdä vähemmän (uudelleentestaus, regressiotestaus) Kustannukset laskevat koko elinkaaren ajalla 26 March 2013 8 4

Katselmoinnin hyödyt Vähemmän käytön aikana havaittavia vikoja (failure rate) Organisaatio oppii Tekijät oppivat parantamaan työskentelyään Tieto tulevasta katselmoinnista saa tekijän tuottamaan selkeän dokumentin ja huomaamaan itsekin puutteita Katselmointiin osallistuva ryhmä muodostaa yhteisen näkemyksen dokumentin kuvaamasta asiasta ja tuntee yhteistä vastuuta siitä Kustannukset 10-15% projektin kuluista, säästö 14-25% (katselmoinnit mukaan laskien) 26 March 2013 9 Katselmoinnin kulku Prosessikaavio ja yleiskuvaus IEEE 1028-1997 Standard for Software Reviews standardin mukaan (kurssikirjan teksti perustuu samaan) http://www.the-software-experts.de/e_dta-sw-testinspection.htm 26 March 2013 10 5

Katselmointikokouksen säännöt 1. Kokous saa kestää korkeintaan kaksi tuntia 2. Valvoja (moderator) voi keskeyttää kokouksen, jos joku katselmoija (asiantuntija) ei tule paikalle tai on puutteellisesti valmistautunut 3. Arvioinnin kohteena on katselmoitava dokumentti, ei sen tekijä 4. Valvoja ei saa olla myös katselmoija 5. Annettujen ohjesääntöjen (guideline) ulkopuolelle jäävistä tyyliseikoista ei keskustella 6. Kokouksen tehtävä ei ole kehittää ratkaisuja löydettyihin ongelmiin 26 March 2013 11 Katselmointikokouksen säännöt 7. Jokaiselle katselmoijalle on annettava riittävästi aikaa löydöstensä esittämiseen 8. Kaikkien pitää olla yhtä mieltä pöytäkirjaan kirjattavista asioista 9. Löydöksiä ei saa kirjata käskyinä tekijälle tehdä määrättyjä muutoksia 10. Löydökset on luokiteltava niiden vakavuuden mukaan 11. Katselmointiryhmä esittää joko dokumentin hyväksymistä tai hylkäämistä 12. Kaikki allekirjoittavat lopuksi pöytäkirjan 26 March 2013 12 6

Katselmointien ongelmia Asiantuntijoiden saatavuus Katselmointeihin ei varata tarpeeksi aikaa tai tulee muuten kiire, jolloin katselmoinnin teho kärsii Väärien katselmoijien valinta Ei ehdi, ei osaa, ei kiinnosta Dokumentaation puutteet Johdon puuttuva tuki Resurssointi, tulosten hyödyntäminen 26 March 2013 13 Katselmointityyppejä Edellä kuvattu formaali katselmointi on suhteellisen raskas prosessi (aika & resurssit) Tekniset katselmoinnit jaetaan raskautensa mukaan seuraaviin ryhmiin Läpikäynnit (walkthrough) Tarkastukset (inspection) Tekninen katselmointi (technical review) Epämuodollinen katselmointi (informal review) 26 March 2013 14 7

Läpikäynti Epämuodollinen katselmointi, jossa tekijä esittelee katselmoinnin kohteen ryhmän arvioitavaksi tavoitteena Poikkeavuuksien löytäminen (anomaliat) Laadun parantaminen Vaihtoehtoisten ratkaisujen löytäminen Standardien ja spesifikaatioiden mukaisuuden arviointi Tärkeimpien käyttötapausten simulointi Tekijä toimii moderaattorina Sopii pienille tiimeille, ei vaadi valmistautumista eikä jälkitöitä 26 March 2013 15 Tarkastus Kaikkein muodollisin katselmointi Yksityiskohtaiset säännöt ja tarkistuslistat Huolellisesti valitut osallistujat, jotka voivat tarkastella asiaa eri näkökulmista Keskittyy etukäteen päätettyihin asioihin tarkastuksen kohteessa Perusteellinen valmistautuminen ennen katselmointikokousta 26 March 2013 16 8

Tekninen katselmointi Pääasioina tarkastuksen kohteen Verifiointi sen spesifikaation suhteen Soveltuvuuden arviointi käyttötarkoitukseensa Standardien mukaisuuden arviointi Katselmoijien valintaperusteena tekninen pätevyys Myös projektin ulkopuolelta on hyvä olla joku asiantuntija mukana Suurin työ tehdään valmistautumisvaiheessa, katselmointikokouksessa kirjataan löydökset Tekijä itse ei osallistu kokoukseen 26 March 2013 17 Epämuodollinen katselmointi Katselmoinnin kevytversio Usein katselmoinnin kohteen tekijä itse kutsuu osallistujat ja pyytää heiltä kommentit tiettyyn ajankohtaan mennessä Katselmointikokousta ei välttämättä järjestetä, vaan kukin osallistuja toimittaa havaintonsa tiedoksi tekijälle Yleinen katselmoinnin muoto, jossa on matala osallistumiskynnys Pariohjelmointi, kaveritestaus 26 March 2013 18 9

Huomioita Katselmointia on monenlaista ja eri tyyppien väliset rajat ovat häilyvät Samoja termejä käytetään eri tarkoituksissa Katselmointikäytännöt räätälöidään organisaation tarpeiden ja katselmoinnin kohteen mukaan Virtuaalikatselmoinnit ja on-line kokoukset helpottavat hajautettujen organisaatioiden toimintaa Kun kehittäjät tutkivat myös toistensa työn tuloksia, vikoja yleensä huomataan enemmän Pariohjelmointi on tavallaan jatkuvaa parikatselmointia 26 March 2013 19 Staattinen analyysi 26 March 2013 20 10

Staattinen analyysi Kuten katselmoinneissa, tarkoituksena on löytää vikoja tai vioille alttiita kohtia tarkasteltavasta dokumentista Analysointiin käytetään automaattisia työkaluja eli algoritmisia menetelmiä käsin tehtävän analyysin sijaan Analyysityökaluja voidaan käyttää myös mittausten tekemiseen kohteesta laadun arvioimiseksi 26 March 2013 21 Staattinen analyysi Dokumentin analysoitavuus edellyttää, että se on koodattu jollain formaalilla kielellä Syntaksi ja semantiikka ovat analysoitavissa algoritmisesti Esimerkiksi UML-mallit ja erilaiset XMLpohjaiset kuvaukset voivat sopia analysoitaviksi ja tietysti ohjelmakoodi 26 March 2013 22 11

Staattinen analyysi Ohjelmistokehittäjillä on käytettävissään erilaisia analysaattoreita, joilla voi kätevästi tarkistaa, noudattaako koodi yleisiä tyylisääntöjä ja koodaussuosituksia Staattinen analyysi voi paljastaa epäilyttäviä kohtia ja vaarallisia ohjelmarakenteita, joita dynaaminen testaus ei paljasta Toisaalta staattinen analyysi ei voi koskaan löytää kaikkia vikoja Se vaatisi ohjelman kaikkien mahdollisten tilojen simulointia 26 March 2013 23 Staattinen analyysi Staattinen analyysi sopii hyvin yhteen katselmointien kanssa Kaikki riittävän formaalit dokumentit/koodi kannattaa ajaa analysaattorin läpi katselmointiin valmistauduttaessa 26 March 2013 24 12

Staattinen analyysi Staattisella analyysillä voidaan löytää seuraavanlaisia potentiaalisesti ongelmallisia rakenteita Syntaksivirheet Poikkeamat koodauskäytännöistä ja standardeista Kontrollivuon säännöttömyydet Datavuon säännöttömyydet Eräät tietoturvan kannalta vaaralliset koodirakenteet 26 March 2013 25 Kääntäjä analyysityökaluna Kääntäjä löytää ohjelmasta syntaksivirheet ja muut ohjelmointikielen kieliopin mukaan virheelliset ilmaisut Näiden lisäksi kääntäjä tekee muitakin tarkistuksia ja tuottaa paljon informaatiota Tyyppitarkistukset (staattinen tyypitys, tyyppien päättely) Määrittelemättömät ja alustamattomat muuttujat Saavuttamaton koodi jne 26 March 2013 26 13

Datavuoanalyysi Analysoidaan datan käyttöä eri suorituspoluilla ohjelmayksikön läpi Voidaan havaita säännöttömyyksiä (anomaly), jotka voivat johtaa virheelliseen suoritukseen tai sitten ei Tarkastellaan esimerkiksi muuttujien käyttöä ohjelmassa Defined (d) Referenced (r) Undefined (u) 26 March 2013 27 Datavuoanalyysi Anomaliat UR arvoltaan määrittelemättömän (u) muuttujan arvoa käytetään (r) jollain suorituspolulla DU muuttujalle annetaan arvo (d), jota ei käytetä kertaakaan ennen sen muuttumista määrittelemättömäksi (u) DD muuttujalle annetaan uusi arvo ilman, että sen edellistä arvoa on välillä käytetty 26 March 2013 28 14

Datavuoanalyysi Kurssikirjan esimerkki sivu 99 Datavuoanalyysin löytämät anomaliat eivät välttämättä johda ohjelman virheelliseen käyttäytymiseen, mutta löydökset kannattaa joka tapauksessa tutkia 26 March 2013 29 Kontrollivuoanalyysi Ohjelman kontrollivuoverkosta voi helposti nähdä riskialttiita rakenteita Hypyt pois silmukan keskeltä Monimutkaiset, sisäkkäiset valintarakenteet Monta erilaista tapaa poistua rakenteesta (return) A 1 2 3 4 B C D E 5 G 26 March 2013 30 15

Kompleksisuusmetriikat MaCabe cyclomatic number v(g) = e n +2 e = verkon kaarien lukumäärä n = verkon solmujen lukumäärä A 1 2 3 4 B C D E 5 G 26 March 2013 31 Kompleksisuusmetriikat McCabe:n luku voi osoittaa kohtia ohjelmasta (esim yksittäisiä metodeja > 10), joiden testaukseen kannattaa kiinnittää enemmän huomiota Metriikkaa on myös arvosteltu siitä, että se ei ota huomioon valintalausekkeiden ehtojen monimutkaisuutta Muunkinlaisia metriikoita on kehitetty ja niiden tilastollista yhteyttä löydettyihin vikoihin on analysoitu Niinkin yksinkertainen mittari kuin koodirivien määrä (esim metodin pituus) korreloi hyvin vika-alttiuden kanssa 26 March 2013 32 16