Tehokas ohjelmistotestaus Maaret Pyhjrvi ja Erkki Pyhnen Julkaisuversio

  • Slides: 83
Download presentation
Tehokas ohjelmistotestaus Maaret Pyhäjärvi ja Erkki Pöyhönen Julkaisuversio 1. 0 2005 -01 -02 tekijä

Tehokas ohjelmistotestaus Maaret Pyhäjärvi ja Erkki Pöyhönen Julkaisuversio 1. 0 2005 -01 -02 tekijä mainittava http: //creativecommons. org/licenses/by/1. 0/fi/ Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Tiedoksi lukijalle • Tämä materiaali on edelleen työn alla – Varsinainen julkaisu tapahtuu testauskirjan

Tiedoksi lukijalle • Tämä materiaali on edelleen työn alla – Varsinainen julkaisu tapahtuu testauskirjan julkaisun yhteydessä tai jälkeen • Materiaalin hyödyntäminen on vapaata – Erityisesti haluamme tukea yleishyödyllisen ohjelmistotestauksen opetuksen jäsentymistä tarjoamalla materiaalimme vapaasti muokattavaksi pohjamateriaaliksi • Uskomme että kirjallinen materiaali on noin 20 % vastaavasta koulutuksesta puhuttuna – Lisää materiaalia löytyy pään sisältä • Kysyttävää? – Ota yhteyttä maaret. pyhajarvi@iki. fi ja erkki. poyhonen@nokia. com Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

1 - Tehokas ohjelmistotestaus Testaustekniikat Testaus ohjelmistokehityksen osana Testauksen suunnittelu ja hallinta Virheraportointi ja

1 - Tehokas ohjelmistotestaus Testaustekniikat Testaus ohjelmistokehityksen osana Testauksen suunnittelu ja hallinta Virheraportointi ja virheasian ajaminen Testausvälineet ja testauksen automatisointi Katselmoinnit testaustoimintana Testausprosessin muuttaminen Testitapaukset ja testien suorittaminen Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Oppimistavoitteet • Ymmärrät mitä ohjelmistotestaus on, kenelle se kuuluu ja miksi sitä tehdään •

Oppimistavoitteet • Ymmärrät mitä ohjelmistotestaus on, kenelle se kuuluu ja miksi sitä tehdään • Tiedät miksi kaikkea ei voi testata ja miksi testaus on haastavaa • Omaat käsityksen ohjelmistolaadun ja testauksen suhteesta ja laadun arvioinnin haasteista • Ymmärrät että tehokkaan testauksen tulee perustua riskiin • Käsität miksi tehokkuutta tavoitellessa ensin pitää saavuttaa tulokset ja sitten vasta optimoida tulosten saavuttamiseen käytettävää aikaa Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset haasteet Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset haasteet Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ohjelmistot yhä kriittisempiä perustoiminnallemme • Ohjelmistoja kaikkialla – sekä itsenäisinä että osana järjestelmiä •

Ohjelmistot yhä kriittisempiä perustoiminnallemme • Ohjelmistoja kaikkialla – sekä itsenäisinä että osana järjestelmiä • Ohjelmistot ja järjestelmät yhä monimutkaisempia • Järjestelmät integroituvat • Fakta: ohjelmistoissa on virheitä Testaus on keino pureutua virheisiin ja auttaa luomaan riittävä laatu. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ohjelmistojen perusominaisuudet Lähde: Frederick Brooks. 1987. No Silver Bullets. In Mythical Man-Month • Ohjelmistojen

Ohjelmistojen perusominaisuudet Lähde: Frederick Brooks. 1987. No Silver Bullets. In Mythical Man-Month • Ohjelmistojen perusominaisuudet tekevät ohjelmistokehityksestä haastavaa – – Monimutkaisuus Mukautumiskyky Muuttumiskyky Näkymättömyys Perusominaisuudet tekevät virheiden syntymisestä ohjelmistotuotantoprosessissa tosiasian, jota ei hyvistä pyrkimyksistä huolimatta kokonaan voida välttää. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Joitakin kuuluisia virheitä • Ariane 5 avaruussukkulan räjähdys – Liian suuren numeron lukutyypin muuntaminen,

Joitakin kuuluisia virheitä • Ariane 5 avaruussukkulan räjähdys – Liian suuren numeron lukutyypin muuntaminen, 1996 • Pentium prosessori, jakolaskualgoritmi – Virhe taulukon sisällön kopioinnissa, testaamatta piisiruun, 1994 • Patriot- ohjus – Pyöristysvirhe, 1991 • Therac-25, Röntgenlaite – Säteilyn yliannostuksia potilaille hoidon aikana, 1985 -1987 • Mars-luotain menetettiin – Paunojen (lbs) ja kilogrammojen sekoittuminen, 1999 • NASA Mariner 1 , Venusluotain – Piste pilkun tilalla FORTRAN DO-silmukassa, 1962 – Urbaani legenda mutta ohjelmistovirhe kuitenkin • Denverin lentokenttä – Tietokoneistettu matkalaukkujen käsittely epäonnistuu, 1995 • NASA Spirit Rover Marsissa – Muistin jumiutuminen 18 päivän jälkeen, testattiin maassa vain 9 päivää, 2004 Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Mitä ohjelmistovirheet maksavat? • Suuria summia – Ariane 5 (kehitys 7 mrd $ +

Mitä ohjelmistovirheet maksavat? • Suuria summia – Ariane 5 (kehitys 7 mrd $ + kuorma 500 M$) – Intel Pentium jakolaskuvirhe (400 M$) – Denverin lentokenttä (250500 M$ + 1 M$ / viiv. päivä) • Kuolema tai vammautuminen – Therac-25 (3 kuollutta, 3 vakavasti vammautunutta) – Patriot-ohjus (28 kuollutta, 100 loukkaantunutta) • Hyvin vähän tai ei mitään – Pienet epämukavuudet – Ei näkyvää tai fyysistä vaikutusta • Ohjelmisto ei ole “lineaarinen” – Pienellä syötteellä voi olla hyvin suuri vaikutus – Boehm & Basili. 2001. Defect Reduction top-10 list: • 80 % vältettävissä olevasta korjaustyöstä aiheutaa 20 % virheitä • 80 % virheistä tulee 20 % moduuleista, ja noin puolet moduuleista ovat virheettömiä • Nykyiset ohjelmistoprojektit käyttävät 40 - 50 % työmäärästä vältettävissä olevaan korjaustyöhön Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Virheen kustannus kertautuu Lähde: Barry Boehm. 1981. Software Engineering Economics Vaatimukset Analyysi & suunnittelu

Virheen kustannus kertautuu Lähde: Barry Boehm. 1981. Software Engineering Economics Vaatimukset Analyysi & suunnittelu Koodaus Kehityksen aikainen testaus Hyväksymistestaus 50% Laatuvipu Tuotanto 40 -100 x 30 -70 x 15 -40 x 10 x Boehm, 2001: Kustannuskerroin 5: 1 ja kustannuksia voidaan hallita hyvillä arkkitehtuurikäytännöillä 3 -6 x Paranna tuotetta 1 x Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Muutamia esimerkkejä virheistä Lähde: James Whittaker • • • Excel Scenarios Word Tab Stops

Muutamia esimerkkejä virheistä Lähde: James Whittaker • • • Excel Scenarios Word Tab Stops Word Find-Replace Word Footnotes Powerpoint Word. Art Powerpoint Tables Virheetöntä ohjelmistoa ei ole – kysymys on siitä ovatko virheet haitaksi käytölle. – Varoitus: kaataa käyttöjärjestelmän, ei vain sovellusta • Calculator Math library Virheiden löytäminen ei helppoa – tehokas löytäminen vielä vaikeampaa! Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Laatu ja testaus • Laatu on arvoa jollekin osapuolelle • Virhe on mitä tahansa

Laatu ja testaus • Laatu on arvoa jollekin osapuolelle • Virhe on mitä tahansa joka muodostaa uhan arvolle. • Testauksessa kyseenalaistetaan järjestelmän laatu arviointitarkoituksessa – ”ei uskota ennen kuin kokeillaan” – Illuusioiden kumoaminen on kaikkien osapuolien etu • Testaus tekee tietoiset päätökset laadun suhteen mahdollisiksi – Testauksessa kerätään todisteita ja tehdään sen perusteella päätelmiä: ohjelmiston arviointi kerätyn todistusaineiston perusteella Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ohjelmiston laatu Standard Glossary of Software Engineering Terminology [IEEE 610. 12]: Laatu: (1) Taso,

Ohjelmiston laatu Standard Glossary of Software Engineering Terminology [IEEE 610. 12]: Laatu: (1) Taso, jolla järjestelmä, komponentti tai prosessi täyttää sille määritellyt vaatimukset. (2) Taso, jolla järjestelmä, komponentti tai prosessi täyttää asiakkaan tai käyttäjän tarpeet tai odotukset. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaus ja laadunvarmistus Testaus suppeasti Testaus ”testausammattilaiselle” Laadunvarmistus Tämä teos on lisensoitu Creative Commons

Testaus ja laadunvarmistus Testaus suppeasti Testaus ”testausammattilaiselle” Laadunvarmistus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ohjelmistotestauksen kenttä • Ohjelmistotestauksella tarkoitetaan ohjelmistojärjestelmien testausta – Järjestelmässä mukana ohjelmisto – Ohjelmiston/laitteiston suhde

Ohjelmistotestauksen kenttä • Ohjelmistotestauksella tarkoitetaan ohjelmistojärjestelmien testausta – Järjestelmässä mukana ohjelmisto – Ohjelmiston/laitteiston suhde vaihteleva • Ohjelmistotestauksen kannalta järjestelmän muut tarvittavat osat (laitteisto, muut ohjelmistot) ovat osa ympäristöä – Ympäristön testaaminen voi olla keskeinen osa ohjelmistotestausta • Ohjelmistotestausta tarvitaan usealla tasolla – Pienet palat ennen suurempia kokonaisuuksia – Kullakin osapuolella omat vastuunsa Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Mitä testaus on? • • Testaus on kohteen teknistä tarkastelua, jossa empiirisesti etsitään laatuun

Mitä testaus on? • • Testaus on kohteen teknistä tarkastelua, jossa empiirisesti etsitään laatuun liittyvää tietoa, jolla on arvoa projektin sidosryhmille. – Cem Kaner Sisältää: – – • sen varmistamisen että testauksen kohde toimii kuten odotettu erojen löytämisen ja ratkaisemisen odotettujen ja todellisten tulosten välillä puolueettoman tiedon tarjoamisen päätöksentekoon järjestelmän tilasta laadun suhteen laadun parantamisen tukemisen Oleellista onnistuneelle testaukselle kuitenkin yleisesti halu nähdä virheitä Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Kehitys- ja testausprosessit muodostavat palautesilmukan Kehitysprosessi Kehitystuotteet Testitulokset Testausprosessi Tämä teos on lisensoitu Creative

Kehitys- ja testausprosessit muodostavat palautesilmukan Kehitysprosessi Kehitystuotteet Testitulokset Testausprosessi Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Miten testaus tuottaa lisäarvoa • Löytämällä virheitä, jotka korjataan – Järjestelmän laatu paranee •

Miten testaus tuottaa lisäarvoa • Löytämällä virheitä, jotka korjataan – Järjestelmän laatu paranee • Jopa kyetään estämään joitain virheitä syntymästä • Löytämällä virheitä, joita ei korjata – Vältetään yllätyksiä • Testataan tuotteen riskit pois yksi kerrallaan • Tuotetaan projektille ajoissa hyödyllistä ja tarkkaa tietoa Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksen tavoite ei ole vain löytää virheitä Testausprojekti 2 Osa A Osa B 100

Testauksen tavoite ei ole vain löytää virheitä Testausprojekti 2 Osa A Osa B 100 kirjattua virhettä 31 kirjattua virhettä 10 kirjattua virhettä Osa C Osa D 0 kirjattua virhettä 12 kirjattua virhettä 24 kirjattua virhettä Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksen arvokkain tulos • Testauksen tärkein tulos on faktat hankkeen / järjestelmän todellisesta tilasta

Testauksen arvokkain tulos • Testauksen tärkein tulos on faktat hankkeen / järjestelmän todellisesta tilasta – Riskien ja tavoitteiden konkretisointi – Hankkeen riskit – Hankkeen tavoitteiden saavuttamisen todennäköisyys • Tieto ei aina ole helposti arvotettavissa • Faktat ovat kriittisiä johdolle • Monesti faktat saadaan viestittyä vasta kun mitään ei enää ole tehtävissä Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Laatukolmio / Projektikolmio Määrä Laatu si rs su Ai ka t Sisältö Re •

Laatukolmio / Projektikolmio Määrä Laatu si rs su Ai ka t Sisältö Re • Tärkeät päätökset laatukolmion nurkkien prioriteeteistä tehdään hankkeen alussa • Päätöksiä ohjaa liiketoiminnan luonne ja organisaation kyvyt ja hankkeen reunaehdot • Kaikki muutokset hankkeen kuluessa ovat kalliita • Kaikki vaikuttavat kaikkeen – muutat yhtä ja sitten säädät muita nurkkia Laatu Määrä Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksen monet odotukset • Yritysjohdon näkökulma – ”Hyvin testattu tuote antaa paremman katteen” •

Testauksen monet odotukset • Yritysjohdon näkökulma – ”Hyvin testattu tuote antaa paremman katteen” • Asiakkaan näkökulma – ”Laadukas sovellus järkeistää työtä ja parantaa palvelua” • Markkinoinnin näkökulma – ”Laatusertifikaatti parantaa myyntiä” • Ohjelmoijan näkökulma – ”Koodistani ei löydy virheitä” • Testaajan näkökulma – ”Tarkoitukseni on löytää virheitä” • Projektipäällikön näkökulma – ”Testaus on 35 % työstä” • Loppukäyttäjän näkökulma – ”Työni helpottuu” Testauksella ei ole yhtä roolia, vaan oikeastaan nippu siihen kohdistettuja odotuksia Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ohjelmoija testaajana • Suhteellisen halpa • Ohjelmoijan ei virheidenkorjaus tarvitse selittää • Ohjelmoija löytää

Ohjelmoija testaajana • Suhteellisen halpa • Ohjelmoijan ei virheidenkorjaus tarvitse selittää • Ohjelmoija löytää virhettä toiselle virheitä joita • Ohjelmoijan ei testaajan on vaikea tarvitse käyttää aikaa löytää selvittääkseen kuinka • Ohjelmoija saattaa ohjelman on tarkoitus nähdä suoraan missä toimia ja paperityön virhe on, sen sijaan välttäminen on että virhettä tarvitsisi mahdollista koittaa toistaa Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Erillinen, riippumaton testaaja • Ohjelmistokehitys tiimityötä – Erilaisten osaamisten summa • Löytää tyypillisesti erilaisia

Erillinen, riippumaton testaaja • Ohjelmistokehitys tiimityötä – Erilaisten osaamisten summa • Löytää tyypillisesti erilaisia virheitä, seuraa eri näkökulmia – Sokeus omille virheille • Riippumattomuus ei korvaa ohjelmiston tuntemusta Testausta tehdään projekteissa kaikkien osapuolien toimesta ja työnjako on vaihteleva. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Käyttäjä vs. Testaaja • Käyttäjän virheiden löytäminen testaajaa tehottomampaa – Kuka tahansa voi vahingossa

Käyttäjä vs. Testaaja • Käyttäjän virheiden löytäminen testaajaa tehottomampaa – Kuka tahansa voi vahingossa osua virheisiin, tavoitteellisuus ja tehokkuus luonnehtivat testaajaa • Tehokas testaus – Sisäisesti tehokas: virheitä löytyy nopeammin kuin tavallisessa käytössä – Ulkoisesti tehokas: Löydetyt virheet ovat merkittäviä kokonaisuuden kannalta • Erilaiset keinot eri vaiheissa omaavat eri tehokkuuden Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset haasteet Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaus on vaikeaa (1/2) Lähde: James Bach. • Sinun on ennakoitava käyttäjän. . .

Testaus on vaikeaa (1/2) Lähde: James Bach. • Sinun on ennakoitava käyttäjän. . . – – – Aineisto Taidot Toiminta Odotukset Ympäristö • …tutkiaksesi tuotetta, joka on… – – – Näkymätön Epävakaa Herkkä Monimutkainen Tuntematon Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaus on vaikeaa (2/2) Lähde: James Bach. • . . . käyttämällä prosessia, joka

Testaus on vaikeaa (2/2) Lähde: James Bach. • . . . käyttämällä prosessia, joka on usein. . . – – – Loputon Epäselvä Negatiivinen Ikävystyttävä Työläs • …löytääksesi ongelmia, jotka ovat – Odottamattomia Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Vaihtoehtoja on loputtomasti • • • Toiminnallisuudet vs. syötteet vs. tilat Erilaiset ympäristöt Sisäiset

Vaihtoehtoja on loputtomasti • • • Toiminnallisuudet vs. syötteet vs. tilat Erilaiset ympäristöt Sisäiset vs. ulkoiset tekijät Ominaisuudet vs. odotukset Testauksen aikaiset versiot vs. toimitusversiot Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ohjelmistotestauksen laajuus loppukäyttäjänäkökulmasta Palvelut Tekninen tuki Asennus Järjestelmä: • Uusi koodi • Vanha koodi

Ohjelmistotestauksen laajuus loppukäyttäjänäkökulmasta Palvelut Tekninen tuki Asennus Järjestelmä: • Uusi koodi • Vanha koodi • Sovelluskehys Päivitykset Dokumentaatio: Ohjelmisto • Toteutuksen aikainen • Asiakasdokumentaatio Muut ohjelmistot Ympäristöt Käyttöjärjestelmä Laitteisto & Verkko Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Täysin kattava testaus on mahdotonta • Testataksesi kaiken, sinun täytyisi: – Testata jokaisen muuttujan

Täysin kattava testaus on mahdotonta • Testataksesi kaiken, sinun täytyisi: – Testata jokaisen muuttujan jokainen mahdollinen syöte. – Testata jokainen mahdollinen yhdistelmä syötteitä ja muuttujia. – Testata jokainen mahdollinen toimintoketju ohjelman läpi. – Testata jokainen laitteisto/ ohjelmistokonfiguraatio, mukaanlukien palvelinkonfiguraatiot jotka eivät ole hallinnassasi. – Testata jokainen tapa, jolla käyttäjä saattaisi yrittää käyttää sovellusta. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Riittävä laatu Auttavasti toimiva Nolla virhettä Riittävä laatu / Tilanneohjattu laatu Tämä teos on

Riittävä laatu Auttavasti toimiva Nolla virhettä Riittävä laatu / Tilanneohjattu laatu Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Riski • Menetyksen tai vaurion mahdollisuus • Joku tai jokin, joka luo mahdollisen vaaran

Riski • Menetyksen tai vaurion mahdollisuus • Joku tai jokin, joka luo mahdollisen vaaran • Riskiin liittyy: – – Menetys: ei-toivottu vaikutus Todennäköisyys: toteutuminen on epävarmaa Tavoitteet: mihin menetys kohdistuu Sidosryhmät: menetyksestä kiinnostunut osapuoli Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Vaatimus, hyöty, kustannus ja riski Vaatimus Mitä Kustannus Hyöty Riski Miten Rajoite Tämä teos

Vaatimus, hyöty, kustannus ja riski Vaatimus Mitä Kustannus Hyöty Riski Miten Rajoite Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Kuinka riski ymmärretään testauksessa • Elintärkeää tietoa testaukselle – järjestelmäriskit – Liiketoimintariski – Tekninen

Kuinka riski ymmärretään testauksessa • Elintärkeää tietoa testaukselle – järjestelmäriskit – Liiketoimintariski – Tekninen riski • Vaikutus myös testauksen menestykseen ja saattaa muuttaa järjestelmäriskejä – Projektiriski • Projektiriskit ovat helpompia keksiä ja käsittää, mutta eivät ole testauksen sisällön keskeisin ohjausmekanismi Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Riskianalyysi testausnäkökulmasta Riskianalyysin tyyppi Järjestelmäriskit (Liiketoiminta & tekninen) Keskeiset Tunnista virheen aktiviteetit todennäköisyys Tulokset

Riskianalyysi testausnäkökulmasta Riskianalyysin tyyppi Järjestelmäriskit (Liiketoiminta & tekninen) Keskeiset Tunnista virheen aktiviteetit todennäköisyys Tulokset Tunnista virheen vaikutus Testauksen prioriteetit Projektiriskit Aikatauluvaikutusten tunnistaminen Vastatoimet Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Miksi riski on oleellinen testauksessa? • Johto ajattelee riskien ja hyötyjen kautta • Riskejä

Miksi riski on oleellinen testauksessa? • Johto ajattelee riskien ja hyötyjen kautta • Riskejä voidaan käyttää perustelemaan lisärahoitusta asiakkaalta • Riskin ottaminen tarkoittaa tyypillisesti parempaa sijoituksen tuottoa – Sama laadun kanssa, sillä riskien vaikutusten lieventäminen aiheuttaa kustannuksia • Täysin kattava testaus on mahdotonta tai ainakin epäkäytännöllistä – Kaiken testauksen pitäisi perustua riskiin Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Mikä on ”virhe”? • Virhe: Ihmisen toiminta joka tuottaa väärän tuloksen • Vika: Virheen

Mikä on ”virhe”? • Virhe: Ihmisen toiminta joka tuottaa väärän tuloksen • Vika: Virheen ilmentymä ohjelmistossa – Tunnetaan myös bugina, ongelmana. . . – Vika voi ajonaikana aiheuttaa häiriön • Häiriö: Ohjelmiston poikkeama odotetusta toimituksesta tai palvelusta Täsmällisessä kielenkäytössä: häiriö on tapahtuma; vika on ohjelmiston tila, jonka aiheuttaa ihmisen tekemä virhe Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Virhe – Vika - Häiriö Ihminen tekee virheen… …joka aiheuttaa vian ohjelmistoon… …joka voi

Virhe – Vika - Häiriö Ihminen tekee virheen… …joka aiheuttaa vian ohjelmistoon… …joka voi aiheuttaa häiriön ohjelmiston toiminnassa Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Havainnot ja virheet • Havainnot ovat testauksen keskeisin tuotos – Neutraalimpi kuin ”virhe” •

Havainnot ja virheet • Havainnot ovat testauksen keskeisin tuotos – Neutraalimpi kuin ”virhe” • Virhe voi normaalissa kielenkäytössä tarkoittaa niin virhettä, vikaa kuin häiriötä – Vrt. Virheettömyys tavoitteena on itse asiassa häiriöttömyys • Erotetaan tekstissä selitteellä kun tarpeen korostaa eroa – Ihmiset tekemä virhe =virhe – Virhe ohjelmistossa = vika – Käytönaikainen virhe = häiriö Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Virheettömyys vs. luotettavuus • Usein peräänkuulutetaan ”virheettömyyttä” ja tarkoitetaan käytön aikaista häiriöttömyyttä • Luotettavuus:

Virheettömyys vs. luotettavuus • Usein peräänkuulutetaan ”virheettömyyttä” ja tarkoitetaan käytön aikaista häiriöttömyyttä • Luotettavuus: todennäköisyys, että järjestelmässä ei ole häiriöitä tietyn ajan kuluessa tiettyjen olosuhteiden vallitessa • Mikään järjestelmä ei ole virheetön • Järjestelmä, jossa on virheitä voi olla luotettava • Vaikka virheitä olisi vähän kussakin osassa, järjestelmä ei välttämättä ole luotettava • Järjestelmän toiminta on eri kuin sen osien toiminta erikseen – Jos kukin osa on 90 % luotettava ja järjestelmä koostuu viidestä osasta, kokonaisjärjestelmän luotettavuus on 0, 9^5=0, 6 ~> 60 % Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Priorisointisääntö Priorisoi testejä siten että koska tahansa lopettaessasi testauksen, olet tehnyt parasta mahdollista testausta

Priorisointisääntö Priorisoi testejä siten että koska tahansa lopettaessasi testauksen, olet tehnyt parasta mahdollista testausta saatavilla olevan ajan ja resurssien puitteissa. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Uudelleentestaus vs. uusintatestaus Uusia virheitä syntyy korjauksen vaatimien muutosten seurauksena. Perustoiminnallisuuden uusintatesti Erikoistunut toiminnallisuuden

Uudelleentestaus vs. uusintatestaus Uusia virheitä syntyy korjauksen vaatimien muutosten seurauksena. Perustoiminnallisuuden uusintatesti Erikoistunut toiminnallisuuden uusintatesti (Syvyystesti) (Leveystesti) Testi löytää virheen Korjattu ja uudelleentestattu Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Uusintatestauksen ja testien toistettavuuden tarve • Kaiken testauksen pitäisi perustua riskille • Riskinhallinnan kysymys

Uusintatestauksen ja testien toistettavuuden tarve • Kaiken testauksen pitäisi perustua riskille • Riskinhallinnan kysymys kuuluu: ”Onko olemassa riski, että ohjelmisto taantuu”? • Jos taantumisen katsotaan olevan vakava laaturiski, niin testien toistettavuus ja testauksen säännöllinen toistaminen on tärkeää • Todennäköisyys, että ohjelmistoinsinööri tahattomasti luo virheen muutosta tehdessään on 20 % ja 50 % välillä (Watts Humphrey, SEI) Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Toteutuksen ja testauksen työt • Toteuttamisen ja testaamisen työmäärät eivät ole symmetrisiä – pieni

Toteutuksen ja testauksen työt • Toteuttamisen ja testaamisen työmäärät eivät ole symmetrisiä – pieni muutos toteutuksessa voi aiheuttaa suuren työmäärän testaukseen • Testauksen työmäärä kasvaa projektin edetessä – Testauksen tulokset eivät pysy voimassa ajan kuluessa – ohjelmiston muuttuessa aiempien testien tulokset eivät välttämättä pidä paikkaansa. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Uusintatestaus projektissa Työmäärä Uusien ominaisuuksien testaus Uusintatestaus Aika Tämä teos on lisensoitu Creative Commons

Uusintatestaus projektissa Työmäärä Uusien ominaisuuksien testaus Uusintatestaus Aika Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset haasteet Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ohjelmistokehityksen kolminaisuus Vaatimukset Tekninen suunnittelu ja toteutus Testaus Tämä teos on lisensoitu Creative Commons

Ohjelmistokehityksen kolminaisuus Vaatimukset Tekninen suunnittelu ja toteutus Testaus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksessa monta puolta Testauksen hallinta – Suunnittelu ja seuranta Testaustoiminta Määrittely ja suoritus Projektitiedustelu

Testauksessa monta puolta Testauksen hallinta – Suunnittelu ja seuranta Testaustoiminta Määrittely ja suoritus Projektitiedustelu – ennakoiva testaustoiminta Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksen keskeiset näkökulmat Tekninen näkökulma ”järjestelmä ei toimi, jos. . . ” Käyttäjän näkökulma

Testauksen keskeiset näkökulmat Tekninen näkökulma ”järjestelmä ei toimi, jos. . . ” Käyttäjän näkökulma ”ei voi ratkaista ongelmaa / tehostaa toimintaa, jos. . . ” Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaustasot Yksikkötestaus Integrointitestaus Järjestelmätestaus Hyväksymistestaus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä.

Testaustasot Yksikkötestaus Integrointitestaus Järjestelmätestaus Hyväksymistestaus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Useita testauksen tasoja • Yksikkötestit keskittyvät virheisiin, jotka syntyvät koodia kirjoittaessa, kuten raja-arvovirheet käyttäjän

Useita testauksen tasoja • Yksikkötestit keskittyvät virheisiin, jotka syntyvät koodia kirjoittaessa, kuten raja-arvovirheet käyttäjän syötettä kelpuutettaessa. • Integraatiotestit keskittyvät alhaisen tason suunnitteluun, erityisesti virheiden tarkastukseen yksiköiden välisissä rajapinnoissa ja muissa integroinneissa. • Järjestelmätestit tarkistavat toteuttaako järjestelmä kokonaisuutena korkean tason suunnitelman, mukaan lukien suorituskyvyn riittävyyden tuotanto-olosuhteissa sekä useiden järjestelmien integroinnin. • Hyväksymistestit tehdään tavallisesti asiakkaiden / käyttäjien toimesta varmistamaan, että tuote täyttää liiketoimintavaatimukset. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Kehittäjä vs. Testaaja työmäärän kohdistuminen Toteuttaja Testaaja Uusien ominaisuuksien testaus Valmistelu Uusintatestaus Uusien ominaisuuksien

Kehittäjä vs. Testaaja työmäärän kohdistuminen Toteuttaja Testaaja Uusien ominaisuuksien testaus Valmistelu Uusintatestaus Uusien ominaisuuksien testaus Uusintatestaus Julkaisu testaukseen / järjestelmätestauksen aloitus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Mikä on ”järjestelmä” { = Muut sovellukset (ohjelmistot) Järjestelmäohjelmistot (käyttöjärjestelmä) Hallittu ympäristö Järjestelmä Sovellus

Mikä on ”järjestelmä” { = Muut sovellukset (ohjelmistot) Järjestelmäohjelmistot (käyttöjärjestelmä) Hallittu ympäristö Järjestelmä Sovellus Laitteisto Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaus vs. Vian jäljitys Testaus Dynaaminen (lasilaatikko) testaus Ohjelmointi Vian eristäminen Tavoite: Tunnistaa häiriöt

Testaus vs. Vian jäljitys Testaus Dynaaminen (lasilaatikko) testaus Ohjelmointi Vian eristäminen Tavoite: Tunnistaa häiriöt ja virheet Vian jäljitys Tavoite: Paikallistaa virheet, poistaa virheet Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Toiminnallinen ja ei-toiminnallinen testaus • Toiminnallinen testaus on ohjelmiston tarjoamien toimintojen testaamista yksittäisinä toimintoina,

Toiminnallinen ja ei-toiminnallinen testaus • Toiminnallinen testaus on ohjelmiston tarjoamien toimintojen testaamista yksittäisinä toimintoina, toimintoryhminä sekä yhdistettynä ohjelmiston aineiston kanssa. • Ei-toiminnallinen testaus kohdistuu nk. eitoiminnallisiin ominaisuuksiin, jotka vaikuttavat ohjelmistoon liittyvään kokonaislaatukokemukseen, mutta eivät ole liitettävissä suoraan toimintoon tai toimintoryhmään ohjelmistossa, kuten käytettävyys, suorituskyky ja luotettavuus. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Staattinen ja dynaaminen testaus • Staattisessa testauksessa ei ajeta koodia – Tietokoneeseen perustumattoman testaamisen

Staattinen ja dynaaminen testaus • Staattisessa testauksessa ei ajeta koodia – Tietokoneeseen perustumattoman testaamisen prosessi – Katselmoinnit, tarkastukset, staattinen analyysi • Dynaamisessa testauksessa ajetaan koodia – Testausta perinteisessä merkityksessä – Tietokoneeseen perustuvat testaustekniikat – Tämän suorituspohjaisen testauksen perinteet ovat ajattelussa, että ohjelmat on kirjoitettu vain koneella ajamista varten eikä ihmisten luettavaksi (Myers 1979) Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Mustalaatikko- vs. lasilaatikkotestaus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret

Mustalaatikko- vs. lasilaatikkotestaus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Mustalaatikko- ja lasilaatikkotestaus • Mustalaatikko (toiminnallinen, käyttäytymiseen pohjautuva, aineistovetoinen, syöte-tulos-vetoinen) – Testaus perustuu syötteisiin

Mustalaatikko- ja lasilaatikkotestaus • Mustalaatikko (toiminnallinen, käyttäytymiseen pohjautuva, aineistovetoinen, syöte-tulos-vetoinen) – Testaus perustuu syötteisiin ja vastaaviin tuloksiin – Sisäistä käyttäytymistä ja rakennetta ei huomioida – Etsitään tilanteita, joissa ohjelma ei toimi määrittelynsä mukaisesti Täysin kattava syötetestaus (sallitut ja ei-sallitut syötteet, toimintosarjat) • Lasilaatikko (rakenteeseen pohjautuva, logiikkavetoinen) – Testaus perustuu ohjelman logiikan tietämiseen – Ainutlaatuisia polkuja ohjelman läpi äärimmäisen paljon – Ohjelma voi olla vastaamatta määrittelyä, puuttuvia polkuja, aineistoherkkyysvirheitä Täysin kattava polkutestaus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Positiivinen ja negatiivinen testaus • Positiivinen testaus on testausta, joka kohdistuu käyttäjän normaalitoiminnan aikana

Positiivinen ja negatiivinen testaus • Positiivinen testaus on testausta, joka kohdistuu käyttäjän normaalitoiminnan aikana tarvitsemien ominaisuuksien testaamiseen. • Negatiivinen testaus on testausta, jossa testataan järjestelmän ominaisuuksia, jotka hoitavat virhe- ja poikkeuskäsittelyä. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Todennus ja kelpuutus • Todennus – Järjestelmän tai komponentin arviointiprosessi sen selvittämiseksi, täyttävätkö annetun

Todennus ja kelpuutus • Todennus – Järjestelmän tai komponentin arviointiprosessi sen selvittämiseksi, täyttävätkö annetun kehitysvaiheen tuotokset vaiheen alussa asetetut ehdot (BS 7925 -1) – ”Järjestelmän tekeminen oikein” • Kelpuutus – Ohjelmistokehityksen tuotosten oikeellisuuden arviointi asiakastarpeiden ja –vaatimusten suhteen (BS 7925 -1) – ”Oikean järjestelmän tekeminen” • Testauksessa voi olla molempia näkökulmia – Perinteisesti paino todennuksessa Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Sisäinen ja ulkoinen muutos • Sisäinen muutos – ohjelmistokehitystä – Uusia ominaisuuksia – Muutoksia

Sisäinen ja ulkoinen muutos • Sisäinen muutos – ohjelmistokehitystä – Uusia ominaisuuksia – Muutoksia – Korjauksia • Ulkoinen muutos – ympäristö muuttuu – Uusi laitteisto – Uusi käyttöjärjestelmä Testausta tarvitaan molempien suhteen Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaus elinkaariprosessina Vaatimustenhallinta Idea Projekti Tuotanto Testaus Tämä teos on lisensoitu Creative Commons Tekijä

Testaus elinkaariprosessina Vaatimustenhallinta Idea Projekti Tuotanto Testaus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Erilaisia osaamisia testauksessa Käyttäjänäkökulma tekninen näkökulma Eitoiminnallinen Toimin-nallinen idea projekti tuotanto Tämä teos on

Erilaisia osaamisia testauksessa Käyttäjänäkökulma tekninen näkökulma Eitoiminnallinen Toimin-nallinen idea projekti tuotanto Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksen tehokkuus • Ulkoinen tehokkuus (effectiveness) – Tehdään oikeaa asiaa ja valitaan oikeat asiat

Testauksen tehokkuus • Ulkoinen tehokkuus (effectiveness) – Tehdään oikeaa asiaa ja valitaan oikeat asiat tilanteeseen mahdollisimman hyvän lopputuloksen saavuttamiseksi. – Valitut keinot oikeat; soveltuvuus • Sisäinen tehokkuus (efficiency) – Juoksunopeustehokkuus - "sama työ lyhyemmässä ajassa". – Valittuja keinoja käytetään tehokkaasti; suorituskyky; hyötysuhde • Tehokkuutta tavoitellessa ensin pitää saavuttaa tulokset ja sitten vasta optimoida tulosten saavuttamiseen käytettävää aikaa – Ulkoinen tehokkuus ensisijaisen tärkeä • Testattavuus on testauksen mahdollisuuksia tehdä testausta tehokkaasti Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ulkoinen vs. sisäinen tehokkuus Sisäinen tehokkuus Työkalut Prosessin parantaminen Korkea sisäinen, alhainen ulkoinen tehokkuus

Ulkoinen vs. sisäinen tehokkuus Sisäinen tehokkuus Työkalut Prosessin parantaminen Korkea sisäinen, alhainen ulkoinen tehokkuus kulut ok, mutta tulokset eivät Molemmat korkeita Tavoite, johon pyrkiä Alhainen sisäinen, korkea Molemmat alhaisia ulkoinen tehokkuus korkeat kustannukset, Virheitä löytyy, mutta vähäiset tulokset se maksaa liikaa Ulkoinen tehokkuus Tekniikat Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaus laadun arvioinnissa Testien Luulet olevasi täällä. . . Korkea laatu Paljon virheitä Vähän

Testaus laadun arvioinnissa Testien Luulet olevasi täällä. . . Korkea laatu Paljon virheitä Vähän virheitä Ohjelmiston laatu Alhainen Korkea ? ? ? Mutta voit olla täällä. Alhainen Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset

1 – Tehokas ohjelmistotestaus Käsiteltävät asiat Testaus ja laatu Riskiperusteinen testaus Testauksen monipuolisuus Keskeiset haasteet Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaushaasteiden jako Testauksen hallinta – Suunnittelu ja seuranta Testaustoiminta Määrittely ja suoritus Tämä teos

Testaushaasteiden jako Testauksen hallinta – Suunnittelu ja seuranta Testaustoiminta Määrittely ja suoritus Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksen hallinnan haasteet (1/3) • Raportointi: Testaus tekee tietoiset päätökset laadun suhteen mahdollisiksi. Kuinka

Testauksen hallinnan haasteet (1/3) • Raportointi: Testaus tekee tietoiset päätökset laadun suhteen mahdollisiksi. Kuinka testaus raportoi työstään niin että tieto otetaan vastaan ja käytetään? • Viestintä: Testaukseen tarvitaan tietoa testattavista asioista, ja tämä tieto on luonteeltaan jatkuvasti muuttuvaa. Miten viestintä ja yhteistyö hoidetaan tarvittavan tiedon saamisen kannalta? • Lähtötaso: Testausta tehdään useiden osapuolien toimesta eri tasoilla. Kuinka huolehditaan kunkin osapuolen tarvitsemasta lähtötasosta laadun suhteen? • Työmääräarviointi: Testauksessa on paljon tehtäviä ja tarpeellista toistoa. Kuinka etukäteen tiedetään kuinka paljon aikaa ja resursseja tarvitaan työhön jota ollaan tekemässä? Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksen hallinnan haasteet (2/3) • Testaustyypit: Monenlainen testaus voi olla tarpeen. Miten tietää mitä

Testauksen hallinnan haasteet (2/3) • Testaustyypit: Monenlainen testaus voi olla tarpeen. Miten tietää mitä kaikkea testausta voidaan yleensäkään tarvita? • Logistiikka: Testaus on osa ohjelmistokehitystoimintaa ja sen tulee rytmittyä tukemaan ohjelmistokehitystä. Kuinka testaajat käyttävät työmääränsä oikea-aikaisesti oikeassa paikassa hyödyn maksimoimiseksi? • Lopettaminen: Kaikkea ei voi testata. Kuinka päättää koska testaus voidaan lopettaa eli koska testausta on tarpeeksi? • Missio: Testausta käytetään moneen tarkoitukseen ja sille on monenlaisia odotuksia eri osapuolilta. Mitä vaatimuksia testaukselle kohdistuu? Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testauksen hallinnan haasteet (3/3) • Opettaminen ja ohjaus: Testaus on haastavaa. Kuinka auttaa testaajia

Testauksen hallinnan haasteet (3/3) • Opettaminen ja ohjaus: Testaus on haastavaa. Kuinka auttaa testaajia tulemaan hyviksi työssään ja miten tunnistaa hyvä testaaja? Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaustoiminnan haasteet (1/3) • Edustus: Testaajat toimivat edustajina jollekin näkökulmalle. Kuinka testaajat aidosti edustavat

Testaustoiminnan haasteet (1/3) • Edustus: Testaajat toimivat edustajina jollekin näkökulmalle. Kuinka testaajat aidosti edustavat tätä näkökulmaa? • Kattavuus: Testattavaa on paljon. Kuinka päätetään mitä testataan ja mitä ei? • Riski: Testejä on kaikkiaan liikaa kullekin ajanhetkelle. Kuinka tiedetään mitkä testit ovat parhaita suoritettavaksi juuri nyt? • Tukirakenteet: Testauksessa tarvitaan muutakin kuin testattava kohde. Mitä ympäristöjä ja välineitä tarvitaan? • Hyönteismyrkky: Testattava kohde tulee immuuniksi samoille testeille ja virheiden löytäminen vaatii testien muuttamista. Kuinka testejä muutetaan tehokkaasti? Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaustoiminnan haasteet (2/3) • Testattavuus: Järjestelmän ja vaatimusten rakenteet vaikuttavat kykyyn tehdä testausta. Kuinka

Testaustoiminnan haasteet (2/3) • Testattavuus: Järjestelmän ja vaatimusten rakenteet vaikuttavat kykyyn tehdä testausta. Kuinka järjestelmä voidaan rakentaa siten että testaaminen on mahdollista ja tehokasta? • Oppiminen: Testattavat järjestelmät ovat monimutkaisia. Kuinka opimme järjestelmän toiminnan? • Suoritus: Testien suorittamiseen on useita vaihtoehtoisia tapoja. Mikä on tehokkain tapa suorittaa tarvittavat testit? • Virheraportointi: Testaus löytää virheitä. Kun löydämme virheen, kuinka toistamme sen ja raportoimme sen tehokkaasti? Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Testaustoiminnan haasteet (3/3) • Arviointi: Kaikki virheet eivät ole itsestään selviä. Kun virhetilanne tulee

Testaustoiminnan haasteet (3/3) • Arviointi: Kaikki virheet eivät ole itsestään selviä. Kun virhetilanne tulee kohdalle, kuinka testaaja tunnistaa sen? • Dokumentaatio: Testauksesta pitää jäädä jälki vähintään löydettyjen ja käsiteltyjen virheiden osalta. Mitä dokumentaatiota tarvitaan ja mihin tarkoituksiin? Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Ihmisluonnon rajoitteet testauksessa • Kyky edustaa haluttua näkökulmaa on rajoittunut – Muistin rajoitteet –

Ihmisluonnon rajoitteet testauksessa • Kyky edustaa haluttua näkökulmaa on rajoittunut – Muistin rajoitteet – Vinoumat • Aikomukset ovat tärkeitä – Ihmisluontoon kuuluu vääristää tulokset ja tulkinnat odotusten ja toivomusten mukaan – Samasta syystä odotetut tulokset testauksessa korostuvat • Opettelemalla ymmärtämään omia vinoumiaan oppii paremmaksi testaajaksi • Opettelemalla ymmärtämään muiden vinoumia saa viestinsä paremmin läpi Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Esimerkkejä vinoumista Lähde: Kaner, Bach, Pettichord. 2002. Lessons Learned in Software Testing. • Tulkinta

Esimerkkejä vinoumista Lähde: Kaner, Bach, Pettichord. 2002. Lessons Learned in Software Testing. • Tulkinta – tulevien testitulosten tulkinta siten että ne vahvistavat nykykäsitystä järjestelmästä • Vahvistus – vahvistavat tulokset saavat suuremman painoarvon • Saatavuus – helposti muistettava käyttäjän toiminnallisuus tuntuu todennäköisemmältä • Etusija – ensimmäiset havainnot tuntuvat tärkeämmiltä • Lähiaika – Viimeisin havainto tuntuu tärkeämmältä • Läheisyys – Tuttujen käyttäjien mielipiteillä on enemmän painoarvoa • Edustavuus – Oletetaan pienten ongelmien syiden olevan pieniä ja suurien suuria • Kehysvaikutus – Reaktio virheraporttiin riippuu sen muotoilusta, riippumatta sen sisällöstä ja merkityksestä Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Vinoumat vaikuttavat toimintaan (1/2) • Esimerkki: Palkitseminen – 10 000 € palkkio, joko huomenna

Vinoumat vaikuttavat toimintaan (1/2) • Esimerkki: Palkitseminen – 10 000 € palkkio, joko huomenna tai vuoden päästä – Ei olemassa vaihtoehtoa, ettei sitä tulisi – Haluaisimme silti saada palkkion mahdollisimman pian • Esimerkki: Laskun maksaminen – 10 000 € lasku, joka pitää maksaa joko huomenna tai vuoden päästä – Jos odotamme, emme voi mitenkään välttää sen maksamista – Haluaisimme välttää laskun maksamista niin pitkään kuin mahdollista Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Vinoumat vaikuttavat toimintaan (2/2) • Esimerkki: Yksikkötestauksen käytäntöjen parantaminen – Poistaa enemmän virheitä aiemmin

Vinoumat vaikuttavat toimintaan (2/2) • Esimerkki: Yksikkötestauksen käytäntöjen parantaminen – Poistaa enemmän virheitä aiemmin projektissa ja tuloksena on lopulta paljon pienemmät työmäärät myöhemmässä virheiden jäljittämisessä, korjauksessa ja testauksessa – Olemme kohtuullisen varmoja siitä, että jokainen yksikkötestaukseen tällä viikolla laitettu lisätunti tulee tuottamaan 8 -12 tunnin työmäärän säästön tulevaisuudessa – Tuotto tapahtuu vasta kuukausia myöhemmin, projektin loppuvaiheilla Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Haasteisiin vastaaminen Laatukriteerit Tavoitteet Missio Riskit Kustannus/ hyöty Odotukset Konteksti, mahdollisuudet Prosessi Testaustasot Strategia

Haasteisiin vastaaminen Laatukriteerit Tavoitteet Missio Riskit Kustannus/ hyöty Odotukset Konteksti, mahdollisuudet Prosessi Testaustasot Strategia Testaustyypit Testaustekniikat Mittarit Testauksen Viestintä& rytmitys yhteistyö Käytännöt Mahdol. Testauksen listajat ydin ”Alusta” Osaaminen Koulutustarve Testaus- Tavoitteet välineet ja Välineet -ympäristö Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Yhteenveto • Testaus on haastavaa toimintaa, jossa useat näkökulmat ovat tarpeen • Testausta tekevät

Yhteenveto • Testaus on haastavaa toimintaa, jossa useat näkökulmat ovat tarpeen • Testausta tekevät niin erilliset testaajat kuin kaikki muut ohjelmistokehityksessä mukana olevat • Testaus tuottaa tietoa kehityksen muuttuvasta tilanteesta riskiperusteisesti Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen

Linkkejä ja vinkkejä • Esimerkkejä ohjelmistovirheistä löytyy uutisryhmästä – comp. risks • Esimerkkejä Microsoftin

Linkkejä ja vinkkejä • Esimerkkejä ohjelmistovirheistä löytyy uutisryhmästä – comp. risks • Esimerkkejä Microsoftin ohjelmistoissa olevista virheistä löytyy kirjoista – James Whittaker. 2002. How to Break Software. – James Whittaker. 2003. How to Break Software Security. Tämä teos on lisensoitu Creative Commons Tekijä mainittava –lisenssillä. – Maaret Pyhäjärvi & Erkki Pöyhönen