Menestyksekäs hyväksymistestaus

Samankaltaiset tiedostot
Hyväksymistestauksen tarkistuslista järjestelmän hankkijalle

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

Testaajan eettiset periaatteet

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

@Tampereen Testauspäivät ( )

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

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Projektisuunnitelma Viulu

Tapahtuipa Testaajalle...

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

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Miten löydän Sen Oikean? Senaattoritilaisuus Liisa Paasiala, Senior Consultant

Project-TOP QUALITY GATE

Käytettävyys tietojärjestelmien suunnittelussa - mikä tökkii, mitä ratkaisuja? KäytettävyysOSYn seminaari Timo Jokela

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Testauspalvelu laadunvarmistajana Arekin monitoimittajaympäristössä. Satu Koskinen Teknologiajohtaja, Arek Oy

Tietojärjestelmän osat

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

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

UCOT-Sovellusprojekti. Testausraportti

Työkalut ohjelmistokehityksen tukena

Convergence of messaging

Avoimen ja yhteisen rajapinnan hallintamalli

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

Kuinka IdM-hanke pidetään raiteillaan

Miten asiakas tekee valintansa?

Ostavat organisaatiot konsultin silmin

ERP järjestelmät. Mitä, miksi ja kuinka? Parhaita käytäntöjä. Kevät 2017 Lauri Tapola

Onnistunut Vaatimuspohjainen Testaus

Tehokas vianetsintä taktiikoita testaajille

Testaus organisaatiossa eri osapuolten näkökulmia laadunvarmistukseen ja testaamiseen

Miten 333 organisaatiota voi kehittää yhtä yhteistä digitaalista palvelua ja vielä kuunnella kaikkien asiakkaita?

Miten varmistaa käytettävyys terveydenhuollon tietojärjestelmien* hankinnoissa? Vaihtoehdot ja niiden haasteet?

Ohjelmiston testaussuunnitelma

Testausoppeja toimialavaihdoksesta

IT2015 EKT-ehtojen käyttö

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti

58160 Ohjelmoinnin harjoitustyö

Omakannan Omatietovaranto palvelun asiakastestaus

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

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

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

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

TOIMINNALLINEN MÄÄRITTELY MS

Tekoälyn soveltamisen eettisiä periaatteita

Julkaisemattomia koulutusmateriaaleja

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Kuka vastaa tietojärjestelmähankkeen laadusta?

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

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

JULKISTEN PALVELUJEN ELINKAARI; HYVÄ PALVELU EILEN, TÄNÄÄN, HUOMENNA MIHIN PALVELUT OVAT MENOSSA? Lauri Helenius, Solita Oy

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0

Ohjelmiston testaus ja laatu. Testaustasot

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

Testaus elinkaaressa

Ohjelmiston testaus ja laatu. Testaus käytettävyys

Lokalisointitestaus. Matti Vuori, 1(17)

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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Muistitko soittaa asiakkaallesi?

Miten varmistaa käytettyys terveydenhuollon tietojärjestelmien* hankinnoissa**?

T Projektikatselmus

Automaattinen yksikkötestaus

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

Miksi käytettävyys on tärkeää

Totuus IdM-projekteista

MYYNTI- VALMENNUKSEN OSTAJAN OPAS MIISA HELENIUS - POINTVENUE

LAATURAPORTTI Iteraatio 1

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Mitä käytettävyys on? Käytettävyys verkko-opetuksessa. Miksi käytettävyys on tärkeää? Mitä käytettävyys on? Nielsen: käytettävyysheuristiikat

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

IT2015 EKT ERITYISEHTOJA OHJELMISTOJEN TOIMITUKSISTA KETTERIEN MENETELMIEN PROJEKTEILLA LUONNOS

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Reilun Pelin työkalupakki: Muutoksen yhteinen käsittely

Esityksen sisältö Määrittelyjen mukaisuudesta varmistuminen - PlugIT-leima

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

Onnistunut ohjelmistoprojekti

Toimiva työyhteisö DEMO

SOPIMUSLUONNOS Opintojaksopalautejärjestelmän rakentamisesta

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

Tilannetietoisuus läpinäkyvyys antaa välineet parempaan palveluun

T Testiraportti - järjestelmätestaus

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Suomen avoimien tietojärjestelmien keskus COSS ry

Harjoitus 3 Case Face Wash. Raine Mäki, Laura Takkinen, Marika Östman, Otto Kataja

earkiston KATSAUS Terveydenhuollon ATK-päivät

Opetussuunnitelmien ja tutkintojen perusteiden rakenteistaminen

HYVÄKSYMISTESTAUS- RAPORTTI - HAKEUTUJAN PALVELUT JA TODENNETUN OSAAMISEN REKISTERI

Sopimus Asiakas- ja potilastietojärjestelmästä. Liite N: Kielivaatimukset

Miten kuvaat ja kehität organisaation kokonaisarkkitehtuuria?

Harjoituskoe Vastaukset. ISTQB Ketterä testaaja 2015 Perustason sertifikaattisisällön laajennus

Ohjelmistojen suunnittelu

SOVELLUSPROJEKTIN ARVIOINTILOMAKE

Transkriptio:

Menestyksekäs hyväksymistestaus Näkökulmia järjestelmän hyväksymistestauksen monimuotoisiin menestystekijöihin järjestelmän tilaajan näkökulmasta. Matti Vuori, www.mattivuori.net 21.11.2010 1(59)

Sisällysluettelo 1/3 Hyväksymisen tavoitteet 5 Kiire bugien löytämiselle 6 Suhde muihin testeihin 7 Tekijät 8 Ympäristö 9 Perusmenettelyt 10 Joskus asiat sujuvat 12 Hyväksymistestauksen ideaalit 13 Hyväksymistestauksen karu todellisuus 14 Hyväksymistestauksessa testattavat asiat 16 Erityyppisten ja eritasoisten hyväksymistestien erottaminen 17 Osapuolet kokevat hyväksymistestauksen joskus eri tavoilla 19 Ohjelmiston hankkijan riippumattomuus, riskienhallinta ja oppiminen 22 Ohjelmistohankintojen lukutaito 23

Sisällysluettelo 2/3 Lyhyt lähtökohtainen sanasto 24 Toimittajan eettiset periaatteet 27 Kokonaislaadun varmistaminen 28 Mitä vasten testataan? 29 Hyväksymistestaus ja riskienhallinta 30 Tietojärjestelmähankinnan riskikartta 31 Hyväksymistestauksen projektointi 32 Projektissa tarvitaan 33 Jos alihankintana 35 Valmiuksien ja suunnitelman katselmointi 36 Järjestelmätoimittajan antama apu 37 Projektivalmennus tarpeen 38 Ns. liiketoimintatestaajien käyttäminen testaukseen 39 Testattavat asiat ja järjestys 42

Sisällysluettelo 3/3 Testidata 45 Testiautomaatio? 46 Inkrementaalinen hyväksyntä 47 Vikatiedon keruu ja käsittely 49 Yleinen toimintamalli tarpeen 50 Ketterän kehittämisen mahdollisuudet ja potentiaaliset ongelmat hyväksynnälle 51 Scrumin hyväksymistestauksen kritiikki 52 10 keskeistä menestystekijää tilaajalle 56 10 keskeistä menestystekijää järjestelmätoimittajalle 57 Yhteenveto 59

Hyväksymisen tavoitteet Ohjelmiston hankkija todistaa itselleen, että Ohjelmisto on käyttöön kelpaava ja täyttää tarpeet ja vaatimukset Ohjelmistotoimittajan työ voidaan hyväksyä ja laskut maksaa Ohjelmiston hankkija antaa toimittajalle hyväksymisen heidän työlleen 5(59)

Kiire bugien löytämiselle Ideana on takuuaikana löytää kaikki ne bugit, jotka muuten kenties löytyisivät hiljalleen vuosien varrella Näin päästään tuottavaan työhön heti Kun bugit löydetään takuuaikana, toimittaja maksaa niiden korjaukseen! Näkökulman pitää siis olla tulevaisuudessa: ei ajatella pärjäämistä järjestelmän kanssa vain ensi viikolla 6(59)

Suhde muihin testeihin Hyväksymistestaus on selvää jatkoa järjestelmätestaukselle. Se on esiaskel pilottitestaukselle asiakasorganisaatiossa. Jossain ympäristöissä hyväksymistestauksen kevyempi muoto on "vastaanottotestaus" tai tarkastus. Käytettävyystestaus on myös asiakasnäkökulmaltaan lähellä hyväksymistestausta. Asiakkaan käyttöönottoprosessissa seuraava askel on usein pilottikäyttö pienessä mittakaavassa. 7(59)

Tekijät Asiakas tekee testauksen tai teettää sen kolmannella osapuolella. Kolmas osapuoli voi olla testaustalo, joka ei osallistu prosessiin millään muulla tavalla. Tietojärjestelmähankkeissa testaukseen osallistuu asiakkaan IT-osasto sekä loppukäyttäjät. Asiakaslähtöisessä kehittämisessä ohjelmistotoimittaja ei yleensä voi itse tehdä hyväksymistestausta. 8(59)

Ympäristö Tilaajan tuotantoympäristöä mahdollisimman hyvin vastaava ympäristö Kopio Viimeiset testit todellisessa tuotantoympäristössä Työasemat loppukäyttäjien työasemia Mielellään muutama eri taso, joissa haetaan luottamusta ja lisätään yhteyksiä muihin järjestelmiin 9(59)

Perusmenettelyt 1/2 Menettelyihin ei ole vakiintunutta tapaa, vaan ne sovitaan aina asiakkaan kanssa tapauskohtaisesti. Testaus perustuu kaikkiin ohjelmiston vaatimuksiin. Perusmenettelyt samat kuin järjestelmätestauksessa, mutta yleensä keskittyen tärkeimpiin toiminnallisuuksiin, yhteensopivuuteen ja järjestelmän käytettävyyteen eli niihin asioihin, jotka tyypillisessä tietojärjestelmähankkeessa jäävät ohjelmistotoimittajan testauksessa vähemmälle huomiolle. 10(59)

Perusmenettelyt 2/2 Testausta edeltää ohjelmiston katselmointi ja analyysi, jossa sitä verrataan toiminnallisiin ja teknisiin määrittelyihin ja sopimuksiin. Testaus voi olla kertaluonteinen hyväksymismenettely tai se voi sisältää puutteiden korjauksen (ohjelmistotoimittaja tekee) ja uudelleentestauksen. 11(59)

Joskus asiat sujuvat Yrityksillä, joilla on vahvat tuotantoon siirron testausrutiinit, on tekninen laatu helpompi varmistaa Monitasoiset testausjärjestelmät. Mm. pankki- ja vakuutusalalla. Pitkä historia lisää hyväksymistestauksen ymmärrystä ja osaamista Mitä isompi yritys, sitä todennäköisemmin siihen on päätynyt testaus-, laatu- ja riskienhallintaosaamista 12(59)

Hyväksymistestauksen ideaalit Järjestelmän vaatimukset selvitetään huolellisesti tilaajan ja toimittajan yhteistyönä. Vaatimuksiin liitetään tieto niiden hyväksymiskriteereistä. Myöhemmin todetaan objektiivisella tavalla, että kriteerit täyttyvät. Tämä voidaan tehdä yksinkertaisella tavalla, koska sitä edeltää hyvin huolellinen ohjelmistotoimittajan tekemä testaus kaikilla testaustasoilla. Kaikki ovat tyytyväisiä. Tämä ideaalimalli on vesiputous-mindsetin mukainen. 13(59)

Hyväksymistestauksen karu todellisuus 1/2 Ohjelmistoja ei koskaan ymmärretä täysin niiden määrittelyvaiheessa. Hyväksymiskriteerejä ei vaatimuksia tarkemmin voida määrittää, koska ei ole riittävästi tietoa ja kokonaisuus on liian vaikea jäsentää. Vaatimukset muuttuvat matkan varrella. Kukaan ei oikein tiedä, mitä on sovittu ja mitä siis pitäisi hyväksyä Ja muuttuuko joko toiminto vielä Ohjelmistotoimittajaan ei voi luottaa, eikä pidä luottaa. Worst case on, että ohjelmisto tai sen räätälöinti on hyvin heikosti testattu. 14(59)

Hyväksymistestauksen karu todellisuus 2/2 Tilaajan väellä on ylikiire. Osallistumisresurssit on aliarvioitu. Hyväksymistestaus on osa käyttöönottoprosessia, johon ei saada toimittajan tukea, koska se ei ole osa sopimusta. Hyväksymistestausta ei ole valmisteltu ja se tehdään suunnittelemattomasti vasta, kun törmätään ongelmiin tuotannossa. Sitä ei edes yritetä, koska kenelläkään ei ole ymmärrystä sellaisen tarpeesta tai osaamista sellaisen tekemiseen. 15(59)

Hyväksymistestauksessa testattavat asiat Hyväksymistestaus perustuu mieluiten ohjelmistoprojektin suunnitteludokumentteihin tai niiden puuttuessa olemassa olevan ohjelmiston toteutukseen. Tärkeimmät dokumentit hyväksymisvaatimusten selvittämisessä ovat: Tilaus tai sopimus mitä on tilattu ja luvattu? Ohjelmiston vaatimusmäärittely, toiminnallinen ja tekninen määrittely. Järjestelmän toteutuksen / räätälöinnin / toimituksen projektisuunnitelma. 16(59)

Erityyppisten ja eritasoisten hyväksymistestien erottaminen 1/2 Prosesseissa on useita hyväksymistestejä, joiden on suuri vaara mennä sekaisin: Ohjelmistokehityksen vaiheiden hyväksymistestit. Esimerkiksi testit, joilla todetaan, että versio on riittävän toimiva, jotta se voidaan toimittaa järjestelmätestaukseen. Ohjelmistotoimittajan julkaisulle tekemä viimeisen vaiheen testi, jolla toimittaja todistaa itselleen, että julkaisu on toimituskelpoinen. Ja keskeisimpänä tilaajan tekemä hyväksymistestaus ja sen yhteydessä liiketoiminnan ja käyttäjien hyväksyntä. 17(59)

Erityyppisten ja eritasoisten hyväksymistestien erottaminen 2/2 Hyvissä kokonaisprosesseissa kaikilla erilaisilla testeillä on oma terminsä. (Oleellisempaa kuin testit on kuitenkin tilaajan hyväksyntä ja lausunto hyväksymisestä.) 18(59)

Osapuolet kokevat hyväksymistestauksen joskus eri tavoilla 1/3 Kypsä asiakaslähtöinen ohjelmistotoimittaja kokee, että tilaajan tekemä hyväksymistestaus on aivan kriittinen testausvaihe. Laatu paljastuu vasta asiakkaan käsissä. Epäkypsä ohjelmistotoimittaja kokee sen turhana ja haittana. Softahan on tehty juuri niin kuin pitääkin! Epäkypsä tilaaja luottaa liikaa toimittajaan eikä ymmärrä, että pitää testata itse kunnolla. Hyväksymistestaus, jos sitä tehdään, on kevyt rutiini. Kypsä tilaaja lähtee siitä, että hyväksymistestaukseen pitää suhtautua niin kuin järjestelmää ei olisi lainkaan testattu. Siksi pitää testata niin toimintoja kuin laatuominaisuuksia niin paljon kuin on rahaa. Muuten seuraa kallis korjauskierre. Tekniset ihmiset kokevat hyväksymistestauksen vain toiminnallisuuden testauksena. 19(59)

Osapuolet kokevat hyväksymistestauksen joskus eri tavoilla 2/3 Naivi tilaaja kokee kiistanalaisena olevan vain tilatut toiminnot, mutta valistunut tilaaja ymmärtää varmistettavana olevan koko toimituksen odotetun laadun, olipa asioita määritetty tai ei. Laatuihmiset kokevat sen koko uuden toimintajärjestelmän toimivuuden todentamisena.hyvä johtaja arvelee, että käytettävyys ja henkilöstön hyväksyminen on joskus kaikkein tärkeintä. Muutosjohtaja näkee testauksessa organisaation muutospisteen, jossa käytännön testauksella on monia psykologisia merkityksiä Riskienhallintaihminen näkee siinä tulevien vuosikymmenten kannalta aivan kriittisen pisteen, jossa ratkaistaan kenties organisaation tulevaisuus. Lakimies ja talousjohtaja näkevät sen rutiininomaisena osana sopimusprosessia. 20(59)

Osapuolet kokevat hyväksymistestauksen joskus eri tavoilla 3/3 Toimittajan myyntipäällikkö näkee sen tuoteviestinnän mahdollisuutena, markkinointina ja koulutuksena. Epäkypsät johtajat kokevat sen turhana IT-rutiinina. Kypsät johtajat tietävät, että siinä testataan tekniikkaa, toimintaa, prosesseja ja myös luottamusta kaikkien tahojen välillä. Testauspäällikkö ja kypsä tilaajan projektipäällikkö haluavat nähdä sen riittävän pätevänä testausprojektina. Epäkypsä tilaajan projektipäällikkö arvelee, että kokeilu riittää. Taloustietoinen projektipäällikkö muistaa, että hyväksymistestauksella varmistetaan, että viat korjataan toimittajan laskuun, eikä niitä löydetä vasta takuuajan jälkeen. Jne 21(59)

Ohjelmiston hankkijan riippumattomuus, riskienhallinta ja oppiminen Ohjelmistotoimittajalla ja tilaajalla on aina väistämättä oma näkökulmasta ohjelmistoon ja siksi myös sen testaukseen. Tilaajan on ajateltava itse myös testaus. Riskienhallinnan näkökulmasta toimittajan tekemään testaukseen ei voida luottaa. Molemmilla on aivan eri tavoitteet ja eri riskitaso Riippuu sovelluksen liiketoimintakriittisyydestä, miten paljon tehdään sellaista testausta, joka olisi oikeastaan kuulunut toimittajan rooliin. Erilaiset testit täydentävät toisiaan. Jokainen ohjelmistoprojekti on oppimiskokemus. Asiakkaan oppimisen on näyttävä myös testauksessa. Lopullinen hyväksymistestauksen sisältö paljastuu, kun siihen ryhdytään. 22(59)

Ohjelmistohankintojen lukutaito Nykyään puhutaan mm. medialukutaidosta, mutta haastavampaa on ohjelmistojen tilaajien lukutaito toimittajan viestintään. Lukeminen rivien välistä, mikä oikeasti on asioiden tila, mitä pitää kyseenalaistaa ja mitä voi uskoa. Tilaajat ovat yleensä positivistisia, halutaan luottaa tekniikkaan ja toimittajaan. Silloin kielipeli peittää todellisuuden. Oikea viestinnän lukeminen ja oikeat kysymykset mahdollistavat oikean orientaation omatoimiseen toimitusten laadun varmistamisen. Nämä ovat asioita, jotka vaikuttavat koko ohjelmistokriisiin, eivätkä pelkästään toimitusten hyväksymiseen. 23(59)

Lyhyt lähtökohtainen sanasto 1/3 Meillä on kattava testausprosessi = Joissakin projekteissa saatetaan testatakin jotain. Onko näyttää muutakin kuin prosessikaavioita? Testiraportteja, vikatilastoja? Toimintamme vastaa ISO 9001:n vaatimuksia = Se ei kerro paljonkaan ohjelmistoprosessista; kysykääpä onko 90003 tuttu? Olemme erikoistuneet tällaisiin järjestelmiin = Niin oli erikoistunut myös se putkimies, jonka tekemä remontti oli täysin susi. Erikoistuminen ei takaa osaamisesta mitään. Projektin riskit ovat seuraavat = Ette ole koskaan miettineet kanssamme järjestelmäprojektin riskejä meidän kannaltamme Perusohjelmiston toimivuus on todistettu useilla asiakkailla = Tarjouksia on tehty kymmenen, jokainen kahdesta toteutuneesta toimituksesta on ollut yhtä vaikea Saako asiakkailta kysyä? 24(59)

Lyhyt lähtökohtainen sanasto 2/3 Toimintojen määrä on kilpailijatuotteita paljon laajempi = Ok, mutta ovatko ne oikeat toiminnallisuudet? Ohjelmisto on helposti räätälöitävissä = Pienikin muutos vaatii vuoden projektin ja tuottaa ison määrän muita ongelmia. Meillä on ketterä projektitoimitusmalli, jossa asiakas saa määritellä toiminnot joustavasti = Emme oikein osaa tehdä vaatimusmäärittelyä ja laitamme asiakkaan suunnittelijaksi Ohjelmisto on tehty pk-yritysten tarpeisiin = Sillä voi tehdä vain perusasiat, jotka eivät riitä meille Ohjelmiston viimeisessä versiossa on sen luotettavuuteen panostettu = Ohjelmistossa on ollut kauheasti vikoja ja niitä riittää edelleenkin 25(59)

Lyhyt lähtökohtainen sanasto 3/3 Ratkaisu perustuu valmisohjelmaan = Räätälöinnit ja integroinnit ovat poikkeuksellisen vaikeita; käyttöliittymää ei voida muuttaa, vaikka se on hyvin epästandardi ja huono Sovellamme uusimpia Web 2.0 tekniikoita = Emme osaa tehdä tehokkaita operatiivisia sovelluksia Käytettävyyteen panostetaan tuotekehityksessä erityisesti = Graafikko laati softalle uuden väripaletin ja ikonin. Osoittakaa toimia käytettävyyden varmistamiseksi. Ohjelmisto perustuu XXX, YYY ja ZZZ teknologioihin = Kaikki nämä ovat uusia teknologioita. Osaatteko ne ihan oikeasti? Olemme asiakaslähtöinen toimittaja = Kehittäjämme eivät ole koskaan tavanneet yhtään loppukäyttäjää Jne 26(59)

Toimittajan eettiset periaatteet Auta tilaajaa ymmärtämään omat tarpeensa ja vaatimuksensa. Auta tilaajaan ymmärtämään omatoimisen hyväksymistestauksen tarve ja sen edellyttämät asiat. Viesti tilaajalle tehdystä ohjelmiston testauksesta ja sen aikana löydetyistä virheistä. Älä manipuloi tilaajaa tekemään testausta samoin kuin itse teitte, vaan auta häntä löytämään oikeat näkökulmat omaan testaamiseensa. Toimita asiakkaalle sellainen järjestelmä, jonka testattavuus on kunnossa ottaen huomioon asiakkaan ympäristöt ja osaaminen. Anna tilaajalle täysi tekninen tuki ja tietotuki testaamiseen. Paljasta kaikki rajapinnat, jos tietoja tarvitaan testaamiseen. Tilaaja tekee päätöksen tästä tarpeesta. Hyväksy asiakkaan löytämät virheet ja opi niistä. 27(59)

Kokonaislaadun varmistaminen Hyväksymistestaus on valitettavan usein positiivisilla testeillä tehtyä toiminnallisuustestausta jos sitäkään. Luotetaan liikaa toimittajan perusohjelmistoon. On varmistettava: Kaikkien osapuolten vaatimusten täyttyminen (liiketoiminta, IT-hallinto / ylläpito, hallinto, erilaiset käyttäjäryhmät ). Kaikkien laatuominaisuuksien riittävyys (virheetön toiminta, käytettävyys, suorituskyky, luotettavuus, tietoturvallisuus). Näitä ei käsitellä yleensä riittävän systemaattisesti. Jne Robustius käytännön arjessa. Hyväksymistestauksessa tiivistetään aikaa ja kohdataan tarkoituksellisesti kaikki käytännölliset ongelmat, jotka muuten ilmenisivät harvakseltaan viiden vuoden aikana. Hyväksymistestaukseen liittyvät myös operatiiviset tuotantoonsiirtokriteerit, joiden on hyvä olla osin geneerisiä kaikille järjestelmille 28(59)

Mitä vasten testataan? Formaalit vaatimukset On vaikea tehdä hyvää testausta, jos vaatimukset on kuvattu yleisellä tasolla Panostettava sen kuvaukseen, mitä vaaditaan Ml. suorituskyky- ja käytettävyysvaatimukset Odotukset ja ajattelumalli Mitä laadukkaalta ohjelmistolta voidaan edellyttää? Se on sitova vaatimus, ellei ole sovittu muuta Sisäisen ymmärtämisen ja preppauksen ongelma Perehdytettävä testaukseen osallistujat siihen, millaista mm. virheiden sietoa pitää voida edellyttää ja mikä on siis testattava Asenne testaukseen! Ei kohdella uutta järjestelmää silkkihansikkain, vaan vasaralla! 29(59)

Hyväksymistestaus ja riskienhallinta Järjestelmäprojekteihin liittyy aina suuri joukko erilaisia riskejä. Jokaisessa projektissa olisi tunnistettava riskit ja otettava ne huomioon Järjestelmävaatimuksissa Projektin koko elinkaaressa Järjestelmän hyväksymisessä Hyväksymistestaus on yksi vaihe, jonka avulla tarkistetaan, että riskit ovat hallinnassa. Esim. robustius järjestelmien yhteentoimivuudessa Käyttäjien hyväksyntä toiminnallisuus, käytettävyys Laajamittaiselle projektoidulle hyväksymistestaukselle on hyvä tehdä oma riskianalyysi testauksella on omanlaisensa projektiriskit. 30(59)

Tietojärjestelmähankinnan riskikartta Ylläpito Tietoturvallisuus ja muut uhat (Erillinen analyysi) Sitoutuminen Kustannukset Tulevaisuus Käyttöönotto Oma testaus ja hyväksyntä Luotettavuus Tekniikka Kehittämisen kohde Projektin riskit Suunnittelutavat Yhteentoimivuus Sidosryhmät, käyttäjät Sopimukset Alihankkija Projektin johtaminen ja hallinta Alihankkijan tekemä ohjelmistokehitys Vaikutukset toimintaan Jotain muuta? Mikä tässä projektissa on uutta ja erikoista

Hyväksymistestauksen projektointi Järjestelmien omistajuus on useimmiten hajautettu. Ellei organisaatiossa ole perinteitä tuotantoon siirron rutiineissa ja tarvittavissa testeissä, hyväksymistestaus voi jäädä roolien ja vastuiden välimaastoon. Projektointi mahdollistaa hallitun professionaalisen testauksen ja eri organisaatioiden yhteispelin. Projekti on osa järjestelmän hankintaprosessia / käyttöönoton projektia 32(59)

Projektissa tarvitaan 1/2 Projektipäällikkö Testausta suunnittelemaan ja siitä vastaamaan testauspäällikkö Testaajia Pitääkö löytää jostain muutama hyvä ammattilainen? Testiympäristö tai useita Testaussuunnitelma Miten testataan? Koska? Miten edistystä seurataan? Testattavan version jäädyttäminen (toimittaja ei saa käydä sotkemassa sitä pitää tietää, mitä testataan) Suunnitelman katselmointi 33(59)

Projektissa tarvitaan 2/2 Tapa kerätä vikatietoja Tapa viestiä vioista ohjelmistotoimittajalle Aikaa testaamiseen Ihmisten perehdyttämistä Järjestelmätoimittajan tukea 34(59)

Jos alihankintana Hyvän alihankkijan löytäminen Sopimus Alihankkijan tekemä suunnitelma Aikataulu Testaustavat Raportointi Tilaajan resurssit, dokumentit jne Kuitenkin itsellä edelleen projektointi Joku hoitaa asian, järjestelee järjestelyt, seuraa tilannetta 35(59)

Valmiuksien ja suunnitelman katselmointi Suunnitelmien katselmointi on tunnetusti hyvä idea Hyväksymistestauksen katselmointi on erityisen hyvä idea, koska Siinä jaetaan ymmärrystä asiasta, joka on monille vieras Epäonnistuneet järjestelmähankkeet ovat hyvin tuskallisia organisaatioille ja siksi pitää huolehtia niiden onnistumisesta Hyvä tarkistuslista tukee käsittelyä (Kuvassa olevassa tarkistuslistassa on monia asioita, joita ei ole otettu mukaan tähän kalvosarjaan) 36(59)

Järjestelmätoimittajan antama apu Tieto järjestelmän rakenteesta konepellin alla Vaikka hyväksymistestaus on pääosin mustalaatikkotestausta, joskus on tarve mennä syvemmällekin Tieto siitä, miten järjestelmää on jo testattu Testataan muutakin Apu asennuksessa ja konfiguroinnissa testiympäristöön Toimittaja on voinut olla siellä töissä jo pitkään Automatisoitujen testausohjelmien skriptit, joilla testejä voi toistaa omassa ympäristössä Esim. kuormitustestauksen skriptit Apua ongelmissa 37(59)

Projektivalmennus tarpeen Organisaatioissa ei kaikilla ole projektikokemusta eikä tietoa, miten projekteissa pitää toimia On muistettava kouluttaa liiketoiminnan ihmisiä paitsi testaamiseen myös projektitoiminnan logiikkaan: Tavoitteet. Kenelle raportoidaan. Aikakysymykset. Uudet välineet. Jne 38(59)

Ns. liiketoimintatestaajien käyttäminen testaukseen 1/3 Testaajia järjestelmän käyttäjistä, järjestelmätuesta jne Ihmisiä, jotka oikeasti tietävät, miten systeemin pitää toimia ollakseen heille kelpaava! Eivät osaa testata Osaavat toki käyttää ja kokeilla Suhtautumistapa sopii tehokkaaseen ja mukavaan käyttöön, mutta ei testaukseen Ks. tarkemmin seuraavalla kalvolla Oma rooli organisaatiossa on välineitä käyttävä, mutta ei niitä kritisoiva Mutta: mitä kypsempi ja aikuisempi organisaatio, sitä paremmin testauskin onnistuu 39(59)

Ns. liiketoimintatestaajien käyttäminen testaukseen 2/3 Asenneongelmia testauksessa: Käytetään oikein (kun osataan!) <> mutta väärinkäyttö paljastaa bugit Syytetään itseä ongelmista <> pitää syyttää systeemiä, jossa on vielä bugeja Koko ammatti-ikä on opeteltu pärjäämään huonojen järjestelmien kanssa ja kiertämään niiden vikoja (se on ammattitaitoa!) ja nyt pitäisi opetella avuttomaksi Ei tykätä valittaa, koska valittajat ovat hankalia ihmisiä <> testaajan pitää kertoa pienistäkin asioista Ei olla opittu kyseenalaistamaan järjestelmiä, kun niitä suunniteltaessakaan ei saa vaikuttaa riittävästi <> miten osaisi ja miksi viitsisi olla kriittinen testatessaan? 40(59)

Ns. liiketoimintatestaajien käyttäminen testaukseen 3/3 Pitää prepata! Päivän perehdyttäminen testaukseen ei ole liikainvestointi Mutta täytyy myös pitää testaustavat helppoina ja antaa apua Tarvitaan luontevia ohjeita, joihin ihmiset ovat tottuneet Testaus voi olla etukäteen suunniteltua tai ketterää tilanteesta riippuen Ryhmätyössä ihmiset oppivat toisiltaan ja saavat tukea testaukseen Asioita pitää käsitellä ihmisten kanssa erikseen ja yhdessä 41(59)

Testattavat asiat ja järjestys 1/3 Systemaattista hyväksymistestausta on edeltänyt jo jonkin aikaa kestänyt yhteistyö määrittelyn, suunnittelun ja toteutustenkin merkeissä, jossa on paljon sovittu ja paljon sovittu uudestaan Ensimmäinen tehtävä on tarkistaa, että kaikki sovittu on tehty ja kaikki, mistä on valitettu, on korjattu muuten ei ole mitään toivoa Testauksessa on tärkeää riskiperusteisuus. Eli aloitetaan tärkeimmistä asioista, joiden pitää onnistua Tärkeimmät käyttötapaukset, Kokonaiset bisnesprosessit, joissa dataa kulkee koko systeemin läpi Jne 42(59)

Testattavat asiat ja järjestys 2/3 On tärkeää paitsi kokeilla, myös tarkistaa asioita käsin ja silmin vaikkapa tietokannan rakenteen oikeellisuus yms. Käytettävyystestaus ja käytettävyyden arviointi on tärkeää. Käyttöliittymiä ei saa koskaan hyväksyä pelkkien kuvien perusteella. Suorituskykytestaus pitää tehdä. Tietoturvatestauksesta puhumattakaan. Aineistojen siirto ja tietokantojen konvertointikin pitää testata. Laatuominaisuuksien taustalla on kuitenkin myös ajatus siitä, millaisesta laadusta on maksettu. Täydellisyys maksaa äärettömästi, ja tilaaja on maksanut vain kohtalaisesti 43(59)

Testattavat asiat ja järjestys 3/3 Ylipäätään siis on testattava: Kaikki todelliset tavat käyttää järjestelmää Kaikki relevantit asiat, mitkä on mainittu määrittelyissä, sopimuksissa ja suunnitelmissa. Siksi niitä täytyy pitää yllä, ettei sovittuja asioita tarvitse kaivella sähköposteista Ja myös standardivaatimukset, joita ei tarvitse edes mainita! Esimerkiksi käyttäjien hallinnan pitää olla ok, vaikka sitä ei mainitsisi mikään dokumentti. Samoin tietoturvallisuuden mutta joskus määrittelyt ovat vain valittamisen perusta käyttöön sopivuus on tärkeämpää kuin paperit Jossain vaiheessa todetaan, että testattava versio ei kelpaa. Silloin ei kannata jatkaa testausta, vaan vaatia uusi versio ja aloittaa alusta. 44(59)

Testidata Todellisen kaltaista mutta suojeltava oikeaa dataa Testitietokannan luomismahdollisuus tärkeä Mutta mites kaikki muut järjestelmät, joiden kanssa järjestelmä on yhteyksissä?... Dataan kaikki mahdolliset virheet Ääärimmäinen varovaisuus Aineistojen bulkkisiirrot tärkeä testata ja niiden nopeus jolle pitää asettaa vaatimuksia (ettei vie montaa päivää) 45(59)

Testiautomaatio? Testiautomaatiolla on vähäinen rooli hyväksymistestauksessa Tärkeintä on testata oikeaa käyttöä vastaavilla tavoilla Siis manuaalisesti Poikkeuksia Suorituskykytestaus Tietoturvatestauksen eräät muodot (erit. murtautumistestaus) Niissä tarvitaan automaation apua ja luodut testit ovat käyttökelpoisia jatkossakin systeemin toimintaa tarkistettaessa 46(59)

Inkrementaalinen hyväksyntä 1/2 Monia asioita voidaan hyväksyä myös inkrementaalisesti, palanen kerrallaan. Määrittelyt ovat tällaisia, jos ne eivät muutu. Toteutuksia taas koskee regressioriski, eli niiden hyväksyntä peruuntuu jossain määrin uusien versioiden myötä. Koska useimpia toimintoja koskee myös ketterässä toiminnassa ketju määrittelystä toteutukseen, on oltava tarkkana, mitä hyväksyy! Seuraavalla sivulla on havainnollistus siitä, miten erilaisia asioita voidaan hyväksyä vaiheittain 47(59)

Inkrementaalinen hyväksyntä 2/2 Aika -> Määrittely / prototyyppi Julkistukset Julkistukset Hyväksyntä Vaatimukset yleensä Katselmointi ja hyväksyntä Vertailu toimitukseen Hyväksyntä Toiminnallisuus Katselmointi ja hyväksyntä Integraatio Käyttöliittymä Tietoturva Look and feel:n hyväksyntä Perusratkaisujen käytettävyyden analyysi Tietoriskianalyysi, perusratkaisujen tarkastaminen ja analyysit Toiminnallisuuden hyväksyntä yksittäisillä testeillä (positiiviset testit) Päästä päähän testit Käytettävyyden arviointi, testit Tarkemmat analyysit ja testit Toiminnallisuudet käyttäjänäkökulmasta Robustius (negatiiviset. testit). Tietovar. tarkistus. Kokonaisjärjestelmän robustiuden testaus Räätälöintien ja muutosten käytettävyyden varmistaminen Suorituskyky Vaatimusten sopiminen Suorituskyky- ja kuormitustesti Luotettavuus Vaatimusten sopiminen Kirjanpito tuotantovirheistä Kirjanpito tuotantovirheistä Vertailu sopimukseen ja määrittelyihin ja odotuksiin Regressiotestit Regressiotestit Vertailu vaatimuksiin 48(59)

Vikatiedon keruu ja käsittely Kun bugeja löytyy, ne pitää kerätä jonnekin Tarvitaan tulkintaa ja muotoilua kuvaaviksi Testauspäällikkö tai error manager Excel riittää yleensä ihan hyvin Oikea vikakanta voi kannattaa isoissa hankkeissa Bugzilla, Mantis tms. avoimen lähdekoodin systeemi Voidaan jakaa kaikkien osapuolten kesken bugit saadaan heti korjaukseen Kuitenkin tietojärjestelmien pitää olla kevyitä pääpaino on ongelmien etsimisessä! Käsittelyyn usein raati ohjelmistotoimittajan kanssa, jossa käydään listaa läpi ja pohditaan, mitä bugeille tehdään ja kenen laskuun! 49(59)

Yleinen toimintamalli tarpeen Vähänkin isommassa organisaatiossa otetaan vuosittain käyttöön uusia järjestelmiä Silloin pitää olla sovittu toimintamalli, minkä mukaan hankinnoissa toimitaan Osa laatujärjestelmää Lähtökohtana vaikkapa ohjelmistohankintojen CMMI CMMI for Acquistion Prosessi, vastuut, roolit, yhteistyö, laadunvarmistus 50(59)

Ketterän kehittämisen mahdollisuudet ja potentiaaliset ongelmat hyväksynnälle Ketterä kehittäminen tuottaa inkrementaalisuuden ansiosta etuja: Systeemin toiminnan oikeellisuuden hyväksyminen voidaan tehdä osissa Pienissä palasissa kaikki osapuolet ymmärtävät hyväksyttävät asiat paremmin ja ristiriitoja on vähemmän Hyväksyminen on lähempänä määrittelyä, jolloin prosessi on eheämpi Hyväksymisen asteessa on oltava tarkka: Esimerkiksi käyttöliittymän look and feel voidaan hyväksyä suunnitelmien perusteella, mutta sen oikea käytettävyys arjessa ja toteutuksen detaljit vaativat käyttökokeita 51(59)

Scrumin hyväksymistestauksen kritiikki 1/4 Jokaiseen sprinttiin liittyy jonkinasteinen asiakkaan hyväksyntä vähintään katselmoinnilla. Asiakkaalle toimitettuihin julkistuksiin liittyy hyväksymistestaus. Perinteinen ketterien menetelmien tapa on se, että asiakkaan edustaja määrittää hyväksymistestit ja ne tekee asiakas, testaajat tai kehittäjät. Niitä pyritään joskus myös automatisoimaan. Tämä ajattelu on täysin riittämätön. 52(59)

Scrumin hyväksymistestauksen kritiikki 2/4 Nämä testit lähinnä validoivat vaatimuksen algoritmisen toteutuksen bisnesprosessien näkökulmasta Jokin raportti syntyy korrektisti Lomakkeella saadaan tietoa tietokantaan Kyse on hyväksynnästä vain tässä kontekstissa Ei asiakasorganisaation hyväksynnästä! Vasta oikeastaan savutesti sen jälkeen kunnollinen järjestelmätestaus 53(59)

Scrumin hyväksymistestauksen kritiikki 3/4 Aito hyväksymistestaus merkitsee asiakkaan ja käyttäjien hyväksyntää. Se on välttämätöntä tehdä avoimesta näkökulmasta, riittävän monipuolisesti ja ei-mekanistisesti. Se ei saa jäädä asiakkaan edustajan tehtäväksi, vaan mukaan on saatava asiakkaan organisaatio tekemään: Professionaalista testisuunnittelua. Professionaaliset testit. Pätevät päätökset hyväksynnästä. Tietojärjestelmäkehityksessä asiakkaalta tarvitaan usein myös kenties monitasoinen hyväksymistestausympäristö. 54(59)

Scrumin hyväksymistestauksen kritiikki 4/4 Hyväksymistestaus on suhteellisen jatkuva aktiviteetti. Koska sprintit tuottavat säännöllisesti uusia versioita asiakkaalle, niiden testaus tapahtuu monimuotoisesti: Uusien ominaisuuksien hyväksymistestaus. Uuden version testaus käytännössä, tuotantokäytössä. Esimerkiksi tietojärjestelmillä testaus voi olla monitasoista ja uusi järjestelmäversio läpäisee monet asiakkaan testitasot ja testijärjestelmät, ennen kuin se on todettu tuotantokelpoiseksi. 55(59)

10 keskeistä menestystekijää tilaajalle 1. Vahva järjestelmähankinnan kokonaisprojekti 2. Oivallus hyväksymistestauksen tarpeellisuudesta ja vahva tunne sen välttämättömyydestä 3. Itsenäisyys ei anneta toimittajan vedättää 4. Testauksen selkeä projektointi 5. Osallistuvien valmennus projektiin ja testaamiseen 6. Testaajien auttaminen aktiivisesti 7. Asiantuntija-avun hankkiminen 8. Riskianalyysi 9. Riskiperusteinen testaus 10.Eri osapuolten yhteistyö 56(59)

10 keskeistä menestystekijää järjestelmätoimittajalle 1/2 1. Oivallus, että tilaajan tekemä pätevä hyväksymistestaus on toimittajankin etu 2. Pätevä vaatimusmäärittely ja järjestelmän suuunnittelu, jolla varaudutaan hyväksymistestaukseen 3. Selkeät sopimukset ja suunnitelmat, joiden avulla tiedetään toimituksen kokonaisuus ja laatutaso (paljonko saa olla pikkubugeja ) 4. Inkrementaalinen projekti, jossa asioita hyväksytään vähitellen ettei tule yllätyksiä 5. Ohjelmistokehittäjille luotava ymmärrys järjestelmästä ja asiakkaan tarpeista 57(59)

10 keskeistä menestystekijää järjestelmätoimittajalle 2/2 6. Omien testausvaiheiden toteutus asianmukaisesti 7. Vaatimus päästä tekemään omaa testausta hyväksymistestauksen ympäristössä 8. Keskustelu tilaajan kanssa tulevasta hyväksymistestauksesta 9. Hyvä yhteistyö tilaajan kanssa helpottaa yhteistyötä ja tilaajan tekemän testauksen onnistumista 10.Pätevä projektinhallinta 58(59)

Yhteenveto Hyväksymistestaus on tilaajille oikeasti haastavaa. Tilaajien on opittava itsenäisyyttä, laatuajattelua ja toimittajan kyseenalaistamista. Järjestelmähankintojen ja hyväksymistestauksen projektointi on syytä tehdä pätevästi. On luovuttava teknologiapositivismista ja muistettava, että useimmat ohjelmistot eivät täytä lupauksiaan. Testauksen luonne osaamisalueena on oivallettava. Nämä ovat kovia haasteita tietojärjestelmiä hyödyntäville tavallisille organisaatioille 59(59)