Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori
Mitä on nopeus? 11.11.2014 2
Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita uusia ominaisuuksia, päivityksiä lisäarvoa asiakkaalle Continuous deployment Oleellista pitkän aikavälin tuotolle 11.11.2014 3
Nopeat projektit Tuotteiden valmistuminen, time to market Yksittäinen projekti valmistuu nopeasti, eli aika konseptista tuotejulkaisuun on lyhyt Oleellista kyvylle vallata uusia markkinoita ja täyttää uusia tarpeita 11.11.2014 4
Reaktiivisuus Reagoidaan nopeasti kilpailijoiden toimiin asiakkaiden uusiin tarpeisiin ongelmiin, uhkiin Ennen kaikkea kyky tajuta muutoksen tarve mahdollisimman aikaisin Oleellista kilpailuaseman säilyttämiseksi ja parantamiseksi lyhyellä aikavälillä 11.11.2014 5
Muuntautumiskyky Laajennutaan tai siirrytään nopeasti uusien alustojen ja ympäristöjen käyttöön uudenlaisten tuotteiden valmistukseen Oman erikoistumisen laajentaminen tai vaihtaminen Oleellista muuttuvassa maailmassa selviytymisessä pitkällä aikavälillä 11.11.2014 6
Nopeuden riskit 11.11.2014 7
Täyttä vauhtia? Yhden nopeuden optimointi tapahtuu yleensä toisen kustannuksella Yksittäinen kriittinen projekti viedään vauhdilla läpi ylitöinä, mutta tahti on kestämätön pitkällä aikavälillä ja toipuminen ottaa aikansa Täsmällinen suunnittelu ja rutinoitunut prosessi voivat tuoda jatkuvaa nopeutta, mutta reagoivat kankeasti muutoksiin 11.11.2014 8
Nopeampi parempi? Asiakas haluaa uutta täyttämään kulloisetkin tarpeensa, muu muutos voi vain häiritä Vähittäiset pienet parannukset voivat jäädä huomaamatta Tuotteen ripeä päivitys vähentää kysyntää seuraavalle tuotteelle Markkinoiden ensimmäisellä on etunsa, mutta seuraavilla on parempi mahdollisuus mukautua markkinoiden reaktioihin 11.11.2014 9
Nopeuden sivuvaikutukset Kiireellä läpi viedyltä testaukselta jää tärkeitä ongelmia huomaamatta Jatkuvat muutokset ilman pitkäjänteistä suunnittelua rämettävät arkkitehtuurin Ominaisuuslistan jatkuva paisuminen tuo enemmän bugeja ja ylläpidettävyys kärsii Jäljessä laahaava dokumentaatio aiheuttaa ongelmia käyttäjille 11.11.2014 10
Velka Tekninen velka: uutta tuotetaan helpoimman kautta kokonaisuuden kustannuksella Prosessivelka: prosessissa käytetään oikopolkuja ja jätetään asioita tekemättä Dokumentaatiovelka, testausvelka, Velan kertyessä työ käy jatkossa yhä vaikeammaksi sen poismaksu käy yhä kalliimmaksi 11.11.2014 11
Oikea nopeus Oikean nopeuden löytämisessä otettava siis huomioon useita asioita asiakkaan tarpeet vaatimukset koko prosessille kustannukset, riskit tahdin ylläpito pitkällä aikavälillä Riippuu markkinoista ja muusta toimintaympäristöstä yms. 11.11.2014 12
Testaus ja nopeus 11.11.2014 13
Testaus kiireessä Perinteisesti tuotekehityksen loppusuoralla tingitään kiireessä nimenomaan testauksesta Vauhdissa syntyy helposti virheitä, joten tarve testaukselle ei ainakaan vähene Nykyään tilanne on usein parempi, testaus on mukana prosessissa jo varhain 11.11.2014 14
Vauhti vs. reaktiivisuus Suuri vauhti tuo enemmän asioita testattavaksi lisää resursseja testaukseen, vai voiko testata tehokkaammin? Reaktiivisuus ei lisää työtä, mutta nopeuttaa sen rytmiä asiat tehtävä lyhyellä varoitusajalla muutosten ennakointi auttaa, mutta kaikkeen ei voi varautua 11.11.2014 15
Nopeampaa testausta Testaa rinnakkain samaa tahtia toteutuksen kanssa Testaa vähemmän keskity tärkeimpiin, virhealtteimpiin tai äskettäin muokattuihin ominaisuuksiin Testaa nopeammin automaatiolla tai ammattitaidolla Testaa etukäteen käytä aikaisemmin luotettaviksi havaittuja komponentteja 11.11.2014 16
Testaajan taidot testaus vauhdissa Oikean roolin omaksuminen prosessissa osaltaan testaajan tehtävänä havaita ja raportoida liian suuri nopeus Automaatio ja regressiotestaus havaitaan regressio mahdollisimman pian Konfiguraationhallinta uusia versiota tulee testattavaksi jatkuvasti 11.11.2014 17
Testaajan taidot reaktiivisuus Laaja-alaiset testaustaidot yhtä ja samaa (hyvääkään) menetelmää ei ehdi sovittaa jokaiseen uuteen tilanteeseen Tutkiva testaus vaatii vähemmän valmistelua, käyttäjän näkökulma tärkein Riskien analysointi minne uusimmat muutokset tuottavat bugeja 11.11.2014 18
Testiautomaatio ja työkalut Koodin staattinen analyysi Hyvä yksikkötestaus Automoitu regressiotestaus Testausympäristöt mahdollisimman lähellä tuotantoympäristöjä Kaikkiaan: yritä varmistaa että tuote on mahdollisimman hyvässä kunnossa kun se tulee testaajille 11.11.2014 19
Tekniikka edellä insinööriajattelun vaaroja Automoidaan kaikki testaus käyttäjän näkökulma unohtuu monia asioita vaikea automoida Vedetään vain virheet takaisin jatkuvan julkaisun työkaluilla luotettavuus kärsii kai julkaisutyökalut on testattu kunnolla? Nopeus itseisarvona 11.11.2014 20
Johtopäätökset 11.11.2014 21
Yhteenveto Nopeus voi tarkoittaa useita eri asioita Suuri nopeus ei ole aina hyväksi Laatu kärsii liian nopeuden tavoittelusta Testausta tarvitaan laadun ylläpitoon ja prosessin toimivuuden tarkkailuun Testiautomaatio auttaa, muttei ole ratkaisu kaikkeen 11.11.2014 22
Tulevaisuus Ohjelmistotuotantoprosesseja pyritään nopeuttamaan edelleen Testaus löytää kokemuksen myötä paremmin paikkansa prosesseissa Automaatio kehittyy uusille alueille soveltuvaksi; älykkäät testausjärjestelmät 11.11.2014 23