Sain ensimmäistä kertaa elämässäni mahdollisuuden osallistua kansainväliseen testausalan konferenssiin, kun European Testing Conference 2017 järjestettiin Helsingissä. Kiertävä konferenssi on mainio konsepti, koska se tarjoaa mahdollisimman monelle joskus mahdollisuuden osallistua murehtimatta matkabudjettia, ja koska tämän tilaisuuden ainutlaatuisuus on hyvä perustelu osallistua silloin kun konferenssi on lähellä. Syrjäisestä sijainnista huolimatta niin puhujia, osallistujia kuin vapaaehtoisiakin oli saatu houkuteltua mukaan eri puolilta maailmaa. Huonoin puoli tapahtumassa olikin oikeastaan se, miten kiinnostava ohjelmasta oli saatu rakennettua. Useampaankin otteeseen olisi ollut mukavaa pystyä jakautumaan useampaan tilaan yhtä aikaisesti. Nyt jäi monta lupaavalta vaikuttanutta esitystä kuulematta.
Hienoa tapahtumassa oli myös se, että siihen oli tuotu mukaan voimakas kehittäjänäkökulma. Minulle henkilökohtaisesti tässä kiinostavinta oli Kevlin Henneyn keynote, joka oli monitahoisuudessaan, tärkeydessään ja viihdyttävyydessään kenties paras puhe mitä olen ikinä ollut kuuntelemassa. Sain myös tilaisuuden poistua hetkittäin mukavuusalueeltani kuuntelemalla puheita testiautomaatiosta kehittäjänäkökulmasta, mikä auttoi jäsentämään omia ajatuksia aiheesta. Positiivista oli luonnollisesti myös se, että kehittäjät pääsivät kuulemaan testaajien ajatuksia. Kun puolin ja toisin ymmärrämme toisiamme paremmin, kenties myös yhteistyö sujuu entistä paremmin. Tästä lisääntyvästä ymmärryksestä pysäyttävä esimerkki oli Alastair Smithin twitter-purkaus Fiona Charlesin keynoten myötä tulleesta oivalluksesta, miten erilainen testaajan asema on ohjelmistoalalla kehittäjän asemaan verrattuna.
Omaan työhöni liittyen hyödyllisintä olivat epäformaalimmat osuudet ohjelmassa. Lean Coffee tarjosi mahdollisuuden käydä lyhyitä keskusteluja pöytäkunnan mieltä kaihertavista asioista, ja tässä sain ihan konkreettisia ideoita, mitä kokeilla ja miten kehittää osaamistani. Open Space kului mobtestaten, tarkkaillen paritestausta, sekä keskustellen testaajan roolista osana mobkehittämistä. Myös virallisempaan ohjelmaan kuului monta hyödyllistä sessiota. Huib Schootsin tutkivan testauksen demo ja Sami Söderblomin työpaja samasta aiheesta muistuttelivat mieleen tärkeitä asioita, joilla ylläpitää kurinalaisuutta ja suunnitelmallisuutta omassa tekemisessä. Dragan Spiridonov esitteli opiskelutekniikoita (mindmap, pomodoro-tekniikka sekä focused/diffused moodit) ja miten niitä voi käyttää testaajan työn jäsentämisessä ja tehostamisessa.
Tärkeitä teemoja, jotka jäivät mieleen pyörimään:
Epätäydellisyyden hyväksyminen. Kevlin Henney muistutti, että ihmiset tekevät virheitä. Siksi on tärkeää, että ainakin tärkeimmissä asioissa mikään ei ole vain yhden ihmisen tekemisten varassa, vaan joku muu tarkistaa, että asiat on tehty oikein. Kuitenkin siitä huolimatta virheitä tapahtuu, ja siksi täytyy myös varautua katastrofeihin. Liz Keogh jatkoi aiheesta tuomalla esiin, että työmme luo eniten arvoa silloin kun teemme uusia ja monimutkaisia asioita, joihin liittyy aina myös suuria riskejä.
Etiikka ja vastuu. Kevlin Henney tarjosi muutamia esimerkkejä, miten merkittäviä seurauksia virheillä voi olla. Ajallemme keskeistä on valtavien datamäärien analysointi, ja siinä tehdyt virheet esimerkiksi arvioitaessa valtion velan merkitystä talouden kehittymisessä voivat vaikuttaa poliittisiin päätöksiin ja sitä kautta negatiivisesti miljoonien ihmisten elämään. Eettisiä ongelmia ei myöskään synny vain virheiden kautta. Esimerkiksi facebookin algoritmit muovaavat meitä ihmisinä, ja siksi ohjelmistokehityksessä on syytä pohtia oman työn eettisyyttä: mitkä ratkaisut parantavat maailmaa, mitkä toimivat päinvastoin. Fiona Charles ja Gitte Klitgaard jatkoivat aiheesta omissa keynoteissaan. Fiona Charles toi esiin, että meidän tulisi aina ajatella niitä ihmisiä, joiden elämään rakentamamme ratkaisut vaikuttavat. Nämä ihmiset ovat paitsi asiakkaita ja käyttäjiä, myös ihmisiä joiden asioihin järjestelmät liittyvät - vaikkapa potilaita, oppilaita tai kansalaisia. On tärkeää huomata, että he ovat olemassa, ja tuntea empatiaa heitä kohtaan. Gitte Klitgaard puhui rohkeuden ja aitouden puolesta, kehottaen taistelemaan itselle tärkeiden asioiden puolesta. Hän kertoi myös siitä, miten aitous, oman haavoittuvuuden näyttäminen ja toisten ihmisten näkeminen rohkaisee ja voimauttaa myös muita olemaan aidompia. Tällä on vaikutusta paitsi kykyymme käsitellä ongelmatilanteita työssämme, myös työyhteisöömme ja elämänlaatuumme yleisesti.
Verkostoituminen. Sain tilaisuuden keskustella monen mahtavan tyypin kanssa, ja twitterin seurattavien listani kasvoi monella nimellä. Pari käyntikorttiakin tarttui matkaan. Pääosin kohtaamiset jäivät kuitenkin aika lyhyiksi ja pinnallisiksi. Kahvitauolla esiin tullut kommentti pienimuotoisempien meetuppien hyödyllisyydestä jäi myös mieleen. Pitänee siis ryhtyä pohtimaan, minkä aiheen tiimoilta voisi itse joskus alustaa illanistujaisia.
Näytetään tekstit, joissa on tunniste toiminnan kehittäminen. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste toiminnan kehittäminen. Näytä kaikki tekstit
perjantai 10. helmikuuta 2017
Konferenssimuistiinpanoja - ETC2017
tiistai 8. marraskuuta 2016
Testaajan rooli muutoksessa - ajatuksia Ohjelmistotestaus 2016 -tapahtumasta
Osallistuin tänään Ohjelmistotestaus 2016 -tapahtumaan, tällä kertaa vain kuulijana. Puhujat olivat kaikki omalla tavallaan kiinnostavia ja tällä kertaa ohjelmassa oli aikataulutettuna myös keskustelua pareittain ja kaikkien kesken, mikä ehdottomasti auttoi jäsentämään puheita ja saamaan päivästä enemmän irti.
Yksi päivän suurista teemoista oli testaajan roolin muuttuminen. Aiheesta keskusteltiin hieman jo etukäteen facebookin puolella, ja puheenvuorot kiteyttivät asiaa hienosti muutamastakin näkökulmasta. Anssi Lehtelä toi esiin eri roolien välisen kommunikaation, luottamuksen ja yhteisen päämäärän merkitystä, sekä käytössä olevan julkaisumallin vaikutusta testaukseen kohdistuviin vaatimuksiin. Keskeinen viesti oli että testaajalla on mahdollisuus vaikuttaa näihin asioihin mm. testattavuuden parantamiseksi. Sami Söderblom esitteli ajatuksia liittyen antihaurauteen, testauksen toimintaympäristön haasteisiin ja testauskulttuurin luomiseen, tuoden esiin mm. yhteistyön ja kaaoksen sietämisen merkitystä. Maaret Pyhäjärvi kertoi mm. testiautomaatioon liittyvästä roolituksesta ja roolien välisestä yhteistyöstä. Erkki Pöyhönen puhui alihankintaan ja monitoimittajaympäristöön liittyvistä haasteista, ja Antti Niittyviita palvelukokemuksen (miten toinen osapuoli kokee kohtaamisen) merkityksestä arvon luomisessa. Päivän kruunasi Helena Jeret-Mäen puheenvuoro siitä miten kasvetaan testausasiantuntijaksi tai kasvatetaan aloittelevista testaajista sellaisia.
Keskusteluissa testaajan roolin kehityksestä keskeisenä nähtiin automaation merkityksen kasvu, kommunikointitaitojen merkityksen kasvu, sekä tarve integroida testausta paremmin kehitystiimeihin ja tuoda testausajattelua myös sellaisiin asioihin kuin tarjouspyyntöihin ja arkkitehtuurivalintoihin. Puhuttiin siitä, miten tärkeää on löytää itse oma roolinsa (siihen liittyvät vaatimukset ovat kuitenkin osin organisaatiokohtaisia), olla valmis poistumaan mukavuusalueeltaan, oppimaan uutta, etsimään tietoa ja toimimaan myös aktiivisesti muutoksen luomisessa ja ohjaamisessa. Liiketoiminnan ymmärtäminen, tavoitteiden asettaminen sekä kyky palastella unelmia tavoitettavissa oleviin askeliin nähtiin myös taitoina joista on testaajalle paljon hyötyä pyrittäessä ohjaamaan muutosta tavalla jolla testauksen merkitys softaprojekteissa ennemmin kasvaisi kuin pienenisi. Oma aktiivisuus, joustavuus sekä uskallus kysyä ja ehdottaa vievät asioita eteenpäin.
Jäin itse vielä miettimään, miksi ja miten pitkään me testaajat pohdimme omaa rooliamme. Testaus on muuttunut viime vuosien kuluessa paljon, ja oletettavasti se on muuttunut myös aikaisempina vuosina. Esimerkiksi mobiilikäyttöliittymät ja IoT tuovat tällä hetkellä monen testaajankin työhön uudenlaisia haasteita, ja tällaisten asioiden kimpussa painivien testaajien määrä lienee kasvussa. Tänään lopulta lähinnä katsoimme yhdessä taaksepäin, koska puheenvuorot liittyivät esittäjiensä omiin kokemuksiin, eivät tulevaisuudenvisioihin. Toki esitetyt ajatukset olivat paikoin melko radikaalejakin ja monissa organisaatioissa edelleen utopiaa kaukaisesta tulevaisuudesta.
Kuitenkin, muutos toimintaympäristössämme jatkuu, ja sitä myötä jatkunee myös testaajan roolin muutoksen pohtiminen. Uutta tulee nopeasti, samalla vanha muuttuu hitaasti. Ehkä testauksen kenttä entisestään fragmentoituu tehden entistä vaikeammaksi puhua testauksesta yhtä aikaa konkreettisesti, yleistajuisesti ja koko yleisöä palvellen.
Keitä lienevät he jotka toivovat testausaiheisilta tapahtumilta puheenvuoroja testaajan roolin muutoksesta? Etsivätkö he tukea toiminnalleen aallonharjalla, uudenlaisissa toimintaympäristöissä? Hakevatko he uutta suuntaa vanhoja toimintamalleja noudattavissa yrityksissä? Vertaistukea muuttuvassa maailmassa luovimiseen? Tapoja nostaa arvoaan potentiaalisten työnantajien silmissä? Keinoja muuttaa itse maailmaa? Mitä he tavoittelevat toivoessaan tämän aiheen käsittelyä, vai toivovatko he tavoitetta?
Tunnisteet:
testauksen tarkoitus
,
tiedon jakaminen
,
toiminnan kehittäminen
sunnuntai 17. huhtikuuta 2016
Testattavuudesta ja omien rajojen tunnustamisesta
Testaajan rooli nähdään helposti puutteiden etsimisenä muiden tekemisistä. Kun koodi on kehittäjän mielestä riittävän hyvä ollakseen valmis, testaajan tehtävä on tavallaan löytää kaikki merkitykselliset kysymykset, joita ei ole vielä esitetty tai joihin ei ainakaan ole vielä löydetty vastauksia. Tyypillisesti ajatellaan kysymyksen olevan siitä, toimiiko ominaisuus ja vastaako se speksejä. Näkökulmia on kuitenkin monia muitakin. Löytääkö käyttäjä toiminnallisuuden? Ymmärtääkö hän, mitä se tekee? Eteneekö prosessi riittävän sujuvasti? Selviääkö järjestelmä riittävän hyvin raskaista operaatioista? Mitä muutokset tarkoittavat testattavuuden, ylläpidettävyyden tai tietoturvallisuuden näkökulmasta?
Yhden ihmisen voi olla vaikea löytää kaikkia kulmia, joista kysymyksiä voi esittää. Oma osaaminenkaan ei välttämättä riitä kaikkeen. Siksi on tärkeää tunnistaa omat rajansa ja puutteensa ja miettiä, miten niiden yli on mahdollista päästä. Joskus vastaus voi olla tiedon etsiminen, jotta oma näkemys ja osaaminen laajenisi. Joskus vastaus voi olla avun pyytäminen.
Minä kokeilin pari viikkoa sitten esittää tiimille testaukseen liittyvän ongelman, jota en itse pystynyt ratkaisemaan. Saimme aikaan mainion keskustelun testattavuudesta, sekä tavoista mahdollistaa nykyistä paremmin testiautomaation rakentaminen. Suunnittelupöydällä on nyt jo aikaisemminkin pohdittu mutta keskustelumme jälkeen prioriteetiltään noussut muutos, joka toivottavasti parantaisi yhden keskeisen toiminnon käytettävyyttä, sekä vähentäisi testausta vaativien prosessikulkujen määrää. Automaation rakentamiseen liittyviä ongelmia on ratkottu yhdessä, työ on vielä kesken, mutta se kaikkein perustavanlaatuisin este on jo saatu purettua.
On mahtavaa saada työskennellä ympäristössä, jossa ongelmista ollaan valmiita tekemään yhteisiä, ja jossa niihin myös halutaan löytää ratkaisut.
Minä näen testaajan työn keskeisenä tarkoituksena auttaa kehittäjiä työssään. Tärkeää on myös muistaa, miten monin tavoin kehittäjät voivat auttaa testaajaa tekemään työnsä paremmin.
Yhden ihmisen voi olla vaikea löytää kaikkia kulmia, joista kysymyksiä voi esittää. Oma osaaminenkaan ei välttämättä riitä kaikkeen. Siksi on tärkeää tunnistaa omat rajansa ja puutteensa ja miettiä, miten niiden yli on mahdollista päästä. Joskus vastaus voi olla tiedon etsiminen, jotta oma näkemys ja osaaminen laajenisi. Joskus vastaus voi olla avun pyytäminen.
Minä kokeilin pari viikkoa sitten esittää tiimille testaukseen liittyvän ongelman, jota en itse pystynyt ratkaisemaan. Saimme aikaan mainion keskustelun testattavuudesta, sekä tavoista mahdollistaa nykyistä paremmin testiautomaation rakentaminen. Suunnittelupöydällä on nyt jo aikaisemminkin pohdittu mutta keskustelumme jälkeen prioriteetiltään noussut muutos, joka toivottavasti parantaisi yhden keskeisen toiminnon käytettävyyttä, sekä vähentäisi testausta vaativien prosessikulkujen määrää. Automaation rakentamiseen liittyviä ongelmia on ratkottu yhdessä, työ on vielä kesken, mutta se kaikkein perustavanlaatuisin este on jo saatu purettua.
On mahtavaa saada työskennellä ympäristössä, jossa ongelmista ollaan valmiita tekemään yhteisiä, ja jossa niihin myös halutaan löytää ratkaisut.
Minä näen testaajan työn keskeisenä tarkoituksena auttaa kehittäjiä työssään. Tärkeää on myös muistaa, miten monin tavoin kehittäjät voivat auttaa testaajaa tekemään työnsä paremmin.
Tunnisteet:
laadunvarmistus
,
tiedon jakaminen
,
toiminnan kehittäminen
perjantai 20. marraskuuta 2015
Löydä se mitä on vaikea nähdä
Tiimillämme on pyrkimyksenä pitää kahden viikon välein retroja. Jokainen valitsee vuorollaan aihepiirin, jonka puitteissa laittaa muut täyttämään post-it-lappuja, joita ryhmitellään etsien työskentelyn kipukohtia.
Tällä viikolla pääsimme isojen kysymyksien äärelle etsimällä asioita, jotka eri vaiheissa prosessia tuottavat arvoa, hämmennystä tai ajanhukkaa. Iso tussitaulu peittyi post-it-lapuilla minulle ennennäkemättömällä tavalla.
Suurimmaksi ongelmaksi keskustelussa nousivat isot muutostyöt, joissa usein speksauskin on hieman epämääräinen. Niitä on vaikea edistää, ne vievät paljon aikaa, ja niissä on tavanomaista suurempi riski päätyä tekemään vääriä asioita.
Se, minkä itse koin erityisen mielenkiintoiseksi, oli että puhuimme tavallaan ihan samoista asioista, joilla vain pari viikkoa aikaisemmin olin perustellut testausstrategian luomista: hyödyllistä puuhasteltavaa riittää aina, joten ikäviin tai hankaliin hommiin ei välttämättä koskaan tule tartuttua ainakaan riittävällä tarmolla, jos ei ole tiettyä kurinalaisuutta omassa tekemisessä.
Siinä missä minä testaajana tarvitsen strategista ajattelua edes nähdäkseni ne kokonaisuudet, jotka eivät mukavuusalueella pysytellen tule testatuksi, kehittäjä tarvitsee kurinalaisuutta ja strategista ajattelua jotta nuo isot ja vaikeat kokonaisuudet saataisiin pilkottua ja tehtyä pois alta. Vaihtoehto on, että niitä joko vältellään, tai edistetään vastahakoisesti mitenkuten milloin ehditään. Ja kun ympärillä tapahtuu koko ajan, rakennettava tuote saa jatkuvasti uusia ominisuuksia, pieniä parannuksia tai vähintään bugifiksejä, vältellen ja nitkutellen edistettävät kokonaisuudet helposti kasvavat, muuttuen yhä vaikeammiksi toteuttaa loppuun asti.
Ja lopulta aika usein ne hankalimmin edistettävät asiat ovat kuitenkin tärkeitä.
Keskustelimme tavoista, joilla näiden isojen asioiden edistymistä voisi nopeuttaa, ja pohdimme syitä jotka ovat estäneet tässä onnistumista. (Ja vain pari päivää myöhemmin kävimmekin yhteistuumin pilkkomaan yhtä elefanttia.)
Jälkikäteen aloin muistella asioita, joita olen pitänyt testaajan urani suurimpina saavutuksina. Niistä lopulta aika harvat liittyvät tilanteisiin, joissa olen löytänyt bugin toteutetusta järjestelmästä. Parhaita ovat olleet hetket, kun olen keksinyt esittää kysymyksen, joka on paljastanut vältellyn aiheen. Usein ne ovat olleet asioita, jotka ovat selvästi vaivanneet kehittäjiä itseäänkin, mutta kissaa ei ole tullut nostettua pöydälle koska ei ole ollut pakko, ja muita, akuutimpia asioita on riittänyt enemmän kuin omiksi tarpeiksi. Joskus kyse on ollut asioista, jotka vain on ymmärretty eri tavoin, eikä kukaan ole pysähtynyt ajattelemaan asiaa huomatakseen ongelman laajuutta.
Kun puhutaan laadunvarmistuksesta, softan testaaminen on vain pieni osa kokonaisuutta. Vaikutuksiltaan merkittävintä on löytää niitä asioita, joita vältellään tai ei edes nähdä. Vaikeaa tästä tekee se, että testaajan näkökulmasta ne kaikki saattavat olla näkymättömiä. Kehittäjän taas voi olla vaikea nähdä juuri näiden asioiden esiin nostamista oleellisena, ne voivat tuntua joko vähäpätöisiltä tai kaikkien tuntemilta kollektiivisesti vaietuilta asioilta, mikäli niiden olemassaoloon edes kiinnitetään huomiota.
Tässä mielessä retrot ovat loistavia. Loistavia ovat myös hetket, kun löytää paljastavia kysymyksiä. Hyvä alku ovat "miten tämän voi testata", "kuka tätä käyttää", "mihin tämä vaikuttaa" ja "miksi tämä asia ei ole edennyt".
Testaajien ja kehittäjien välillä on joskus melko voimakastakin vastakkainasettelua. Itse pidän enemmän yhteistyömeiningistä. Toivon, että kehittäjät voivat nähdä minun ongelmani yhteisinä ongelminamme. Tämän viikkoinen retro konkretisoi itselleni myös sitä sinänsä aika itsestäänselvää asiaa, että myös kehittäjien ongelmat ovat minun ongelmiani. Lopultahan ne testaajan turhauttavimmat pulmat liittyvät usein juuri asioihin, joista myös kehittäjä on ollut epävarma. Meistä jokainen tekee osansa löytääkseen ja selkiyttääkseen epämääräisiä asioita. Myös minun tehtäväni on tarttua tähän työhön mahdollisimman varhaisessa vaiheessa.
Tunnisteet:
laadunvarmistus
,
ohjelmistototeutus
,
oppiminen
,
tavoitteet
,
toiminnan kehittäminen
sunnuntai 8. marraskuuta 2015
Testausstrategiaa luomassa osa 1
Aloitin hiljattain uudessa työpaikassa. Siinä missä aikaisemmin olin yksi testausasiantuntija testaustiimissä, osana satojen henkien kokoista organisaatiota, nyt olen ainoa testaaja, ja muut työntekijät ovat kaikki kehittäjiä. Aikaisemmin työskentelin käytännössä vesiputousmallilla, nyt tarkoitus olisi päästä osaksi ketterää tekemistä. Ennen testasin useita tuotteita, nyt keskityn vain yhteen. Monet asiat ovat siis hyvin eri tavalla kuin edellisessä työssäni.
Testauksen näkökulmasta monet asiat ovat hyvin. Käytössä on TDD, kaikki koodi katselmoidaan, ja normaaliin työskentelyrytmiin on varattu aikaa vapaamuotoiselle toiminnan kehittämiselle sekä yhteisille retrospektiiveille. Organisaatio on testausmyönteinen, vaikka osaaminen sen suhteen on ollut jossain määrin rajoittunut tekniseen näkökulmaan. Tätä olisi nyt tarkoitus laajentaa.
Viime viikolla aloitin testausstrategian muodostamisen. Pidimme tiimin kanssa session, jossa kerroin lyhyesti, mitä testausstrategia tarkoittaa, ja sitten pureuduimme pohtimaan testauksen nykytilaa ja kehitystarpeita käyttäen työkaluna Sami Söderblomin FIT(Q)CODES-mallia.
Selvitin jokaisen näkökulman osalta, minkä tyyppisiä asioita siihen liittyy (käyttäen pitkälti lähteenä James Bachin heuristista testausstrategiaa). Sitten tiimi sai äänestää, ovatko nämä asiat oleellisia lasilaatikko- vai mustalaatikkonäkökulmasta vai molemmista, kuinka tärkeästä kokonaisuudesta on kyse tuotteemme kannalta, ja kuinka hyvin pärjäämme siihen liittyvien piirteiden testauksessa. Sitten keskustelimme siitä, mitkä asiat ovat tästä näkökulmasta tärkeitä, ja mitkä vaatisivat enemmän huomiota. (Mustalaatikkopuolelta olin jo itse listannut näitä asioita.)
Vaikka tiimi ei ollut osannut odottaa ihan näin interaktiivista sessiota, keskustelu oli vilkasta, ja paikoin sen ohjaaminen tarkkaan suunnitelmani mukaan tuntui turhalta, niin luontevasti pohdinta eteni. Sain uusia eväitä oman testaustyöni suunnitteluun, ja esiin nousi myös joitakin tuotteen kipukohtia, joiden ratkaiseminen ei ole kiinni minun testauksestani.
Kirjasin parhaani mukaan muistiinpanot esiin nostetuista havainnoista ja listasin muutamia asioita, jotka vaativat erityistä huomiota sekä ideoita testauksen parantamiseen prosessin eri vaiheissa. Tällä mennään nyt muutama viikko, ja sitten jatkamme aiheesta etsien konkreettisempia tavoitteita ja vastuita. Sitä ennen minun olisi toki hyvä keksiä jotain uutta ajatuksia herättämään.
Tämä on varmasti hidas tapa luoda testausstrategia, mutta itse näen tärkeämmäksi tiimin yhteisen pohdinnan ja tavoitteiden etsinnän kuin nopean lopputuloksen. En myöskään näe mielekkäänä luoda testausstrategiaa vain oman työni lähtökohdista, ja vielä oudommalta tuntuisi lähteä suoraan ohjeistamaan kehittäjiä heidän työnsä tekemisessä, kun asiat ovat kuitenkin pääpiirteissään hyvin. Koen myös, että minulle yksi syy testausstrategian muodostamiseen on nimenomaan hakea eväitä yhteiseen keskusteluun. Ainoana testaajana joudun näkemään hieman vaivaa löytääkseni tiimistä tukea oman työni kehittämiseen, strategian muodostaminen ja myöhemmin sen arviointi ja eteenpäin kehittäminen tarjoaa tähän yhden työkalun.
Tunnisteet:
oppiminen
,
testausstrategia
,
tiedon jakaminen
,
toiminnan kehittäminen
,
työkalut
keskiviikko 1. huhtikuuta 2015
Ninjakin tarvitsee mestaria
Testaus on käsityöläisammatti, jonka oppimiseen on vain yksi tie: harjoitus. Työn tekeminen ja tulosten kriittinen analysointi ovat edellytys sille, että voi osata testausta.
Käsityöläisammatit eivät kuitenkaan ole kehittyneet vain yksittäisten ihmisten kekseliäisyyden varassa. Ammattilaiseksi kehitytään mestarin ohjauksessa, ja mestareista parhaat ovat hakeneet oppia useammaltakin mestarilta, tyypillisesti myös ulkomailta.
Tavallaan testausta voidaan verrata myös kamppailulajien harjoittelemiseen. Opetellaan uusia tekniikoita, hiotaan niitä, opetellaan tunnistamaan tilanteita joissa niitä käytetään, ja opetellaan käyttämään niitä tehokkaasti. Hyvät harjoitukset rakennetaan vastaamaan mahdollisimman realistisia todellisia tilanteita.
Myös jokaisella dojolla on oma mestarinsa, jonka oppeja seurataan, vaikka opetuksesta tyypillisesti huolehtiikin joku muu.
Nykypäivänä emme ole täysin suullisen tiedon varassa. Kirjastoista ja netistä löytää tietoa niin käsitöistä, kamppailulajeista kuin testauksestakin. Pyörää ei tarvitse keksiä kokonaan itse, vaikka ei mestarin ohjauksesta saisikaan nauttia.
Silti, ilman ohjausta voi olla vaikea löytää tietään parhaan tiedon luo. Tarvitaan myös mahdollisuuksia kysymiseen ja keskustelemiseen. Näihinkin netti tarjoaa onneksi mahdollisuuksia.
Netin kautta mestari ei kuitenkaan voi korjata virheellistä ranteen asentoa tai jalan väärää liikerataa. Tekniikan hioutumiseen on mahdollisuuksia vain siellä, missä oppija itse näkee tarpeen kehittymiselle.
Voiko myöskään testauksessa koskaan toteuttaa täyttä potentiaaliaan, jos ei saa tilaisuuksia harjoitella yhdessä mestarin kanssa?
Käsityöläisammatit eivät kuitenkaan ole kehittyneet vain yksittäisten ihmisten kekseliäisyyden varassa. Ammattilaiseksi kehitytään mestarin ohjauksessa, ja mestareista parhaat ovat hakeneet oppia useammaltakin mestarilta, tyypillisesti myös ulkomailta.
Tavallaan testausta voidaan verrata myös kamppailulajien harjoittelemiseen. Opetellaan uusia tekniikoita, hiotaan niitä, opetellaan tunnistamaan tilanteita joissa niitä käytetään, ja opetellaan käyttämään niitä tehokkaasti. Hyvät harjoitukset rakennetaan vastaamaan mahdollisimman realistisia todellisia tilanteita.
Myös jokaisella dojolla on oma mestarinsa, jonka oppeja seurataan, vaikka opetuksesta tyypillisesti huolehtiikin joku muu.
Nykypäivänä emme ole täysin suullisen tiedon varassa. Kirjastoista ja netistä löytää tietoa niin käsitöistä, kamppailulajeista kuin testauksestakin. Pyörää ei tarvitse keksiä kokonaan itse, vaikka ei mestarin ohjauksesta saisikaan nauttia.
Silti, ilman ohjausta voi olla vaikea löytää tietään parhaan tiedon luo. Tarvitaan myös mahdollisuuksia kysymiseen ja keskustelemiseen. Näihinkin netti tarjoaa onneksi mahdollisuuksia.
Netin kautta mestari ei kuitenkaan voi korjata virheellistä ranteen asentoa tai jalan väärää liikerataa. Tekniikan hioutumiseen on mahdollisuuksia vain siellä, missä oppija itse näkee tarpeen kehittymiselle.
Voiko myöskään testauksessa koskaan toteuttaa täyttä potentiaaliaan, jos ei saa tilaisuuksia harjoitella yhdessä mestarin kanssa?
Tunnisteet:
laatu
,
oppiminen
,
tavoitteet
,
tehokkuus
,
tiedon jakaminen
,
toiminnan kehittäminen
maanantai 28. lokakuuta 2013
Miten saada paras hyöty irti testaajasta?
Työpanoksen mittaaminen on vaikeaa. Jollain tavalla työntekijöiden suoriutumista pitäisi seurata, mutta mittareilla on paha tapa vaikuttaa ihmisten suoriutumiseen paitsi hyvässä myös pahassa.
Testaajan työn arviointia hankaloittaa se, että se on niin riippuvaista muiden työskentelystä. Samoin helpoiten muodostettavat testaajan työssä onnistumisen mittarit ovat kaikki omalla tavallaan ongelmallisia.
Löytyvät bugit riippuvat paitsi testaajasta myös kehittäjästä, joten tietyssä aikavälissä löytyvien bugien määrä tai laatu ei välttämättä kerro kovin paljoa siitä, miten hyvin testaaja on aikansa käyttänyt. Jos testaajan työtä arvioidaan mittaamalla löytyvien bugien määrää, se kannustaa testaajaa tehokkaaksi löytämään virheitä, mutta ei suuntaamaan tekemistään oleellisimpiin asioihin - näin bugikanta saadaan helposti täyttymään pienen prioriteetin virheistä. Bugien merkittävyyden arvioiminen statistiikkaa varten taas on työlästä, ellei luoteta testaajan tai hänen kanssaan työkentelevän kehittäjän omaan arvioon bugien prioriteeteistä. Toisaalta tarkkakaan tieto bugien vakavuudesta ei anna tietoa testauksen tehokkuudesta, jos testaaja käyttää paljon aikaa sellaisten asioiden manuaaliseen läpikäymiseen, joiden testaaminen kannattaisi automatisoida.
Testauksen tehokkuutta voidaan mitata myös esimerkiksi sillä, miten suuri osa raportoiduista bugeista saadaan ratkaistua kerralla, kysymättä lisätietoja bugin toistamiseksi. Tämä vaatii kuitenkin suhteellisen huolellista bugiraportointijärjestelmän käyttöä, jotta statistiikkaa saadaan helposti kerättyä, ja siten mahdollistaa myös huijaamisen. Asiakkaan löytämien bugien määrä ja laatu kertoo paljon sisäisesti tehdyn testauksen onnistumisesta, mutta tämän mittarin käyttäminen on monella tavalla hankalaa: miten tieto asiakkaan löydöistä raportoidaan ja luokitellaan, ja miten hallitaan tieto järjestelmään tehtävien päivitysten vaikutuksesta sekä niihin liittyvien testikierrosten vastuista.
Testaajan mahdollisuudet käyttää aikansa hyödyllisesti riippuvat myös siitä, mihin tahtiin testattavaa valmistuu. Hänellä ei ole valtaa vaikuttaa siihen, tuleeko asiakasprojekteista hommia tasaiseen tahtiin, vai joudutaanko vuoroin käyttämään aikaa toissijaisiin tehtäviin ja vuoroin priorisoimaan projekteja. Jos siis mitataan sitä, miten suuri osa ajasta kuluu laskutettavien projektien parissa, kannustaa se toki priorisoimaan ajankäytössä asiakasprojekteja, mutta myös käyttämään näihin projekteihin tarpeettoman paljon aikaa silloin kun asiakasprojekteja ei ole tarjolla täysipäiväisesti. Jos taas mitataan sitä, miten hyvä tuntihinta saadaan tehtävästä työstä, kipeimmin testausta kaipaavat katastrofiprojektit päätyvät testaajan ajankäytön priorisoinnissa viimeiseksi. Entä miten pitäisi huomioida tuotekehityksen tukeminen, tämä työ kun hyödyttää useita asiakasprojekteja?
Asiakastyytyväisyyttäkään ei saavuteta pelkällä testauksella, vaan siihen vaikuttavat mm. projektipäällikön kommunikointitaidot ja määrityksen tekemiseen osallistuvien kyky ymmärtää asiakkaan tarpeet ja muotoilla ne ymmärrettävästi. Jos järjestelmää ei ole onnistuttu määrittämään ja suunnittelemaan täyttämään asiakkaan tarvetta, timanttinenkaan testaus ei tilannetta pelasta. Asiakkaan löytämillä bugeilla kun on merkitystä vain, jos ne ovat syy joka estää järjestelmää täyttämästä sitä tarvetta, jota varten se hankittiin. Jos tärkeimmät valituksen aiheet ovat luonteeltaan muutospyyntöjä, liikutaan alueella jolla testaajien rooli on usein tarkoituksenmukaisinta pitää melko pienenä - ellei häntä sitten tuoda jo määritysvaiheesta alkaen asiakasrajapintaan niin, että hänellä on aidosti mahdollisuus arvioida toteutuksen soveltumista asiakkaan liiketoimintatarpeisiin.
Voidaan myös yksinkertaisesti kysyä projektihenkilöstöltä rivikoodarista projektipäällikköön, onko yhteistyö testaajan kanssa koettu hyödylliseksi, ja millaisia puutteita siinä nähdään. Tällaisten kartoitusten kompastuskiveksi vain koituu helposti se, että kenelläkään ei ole aikaa paneutua ylimääräisiksi koettuihin asioihin, kun seuraavat projektit painavat jo päälle. Lisäksi subjektiivisiin arviointeihin liittyy myös persoonallisuuksiin liittyviä piirteitä, jotka tekevät arvioinnista ylipäätään epämääräistä.
Toisaalta, onko testaajan työn mittaamisella edes merkitystä, jos organisaatio ei osaa täysin hyödyntää testaajan työpanosta?
Pystytäänkö tekeminen projekteissa aikatauluttamaan niin, että testaajan työaika saataisiin mahdollisimman tehokkaasti hyödynnettyä, eli testattavaa saataisiin eri projekteista valmistumaan mahdollisimman tasaiseen tahtiin? Mahdollistavatko projektien aikataulut sellaisen testaamisen, että ammattitestaajista on oikeasti hyötyä?
Onko organisaation sisäiset laskutuskäytännöt muodostettu niin, että projektien kannattaa hyödyntää ammattitestaajia?
Miten testaajan työaikaa hyödynnetään parhaiten silloin, kun testattavaa ei ole? Onko sisäisiä kehitysprojekteja, jotka tuovat hyötyä asiakasprojekteille, tai muita aikataulultaan väljiä tehtäviä, joihin voi käydä käsiksi, jos ei testaamalla pysty olemaan oikeasti avuksi? Tuetaanko testaajien mahdollisuuksia kouluttautua suoriutumaan paremmin työssään? Onko kehittäjien mahdollista itsenäisesti pyytää tukea testaajalta, jos he kokevat sen hyödylliseksi jotakin toiminnallisuutta rakentaessaan?
Entä mitä testaukselta ylipäätään halutaan? Onko tarkoituksena vain etsiä bugeja niin pitkään kuin projektin aikataulu ja budjetti antavat myöten, vai onko tavoitteena esimerkiksi antaa projektipäällikölle mahdollisuus keskittyä työssään olennaiseen, helpottaa kehittäjien työtä, tai saada tieto ohjelmiston laadusta tietyllä ajanhetkellä?
Kun näihin kysymyksiin löytyy vastauksia, on myös relevanttien mittareiden rakentaminen varmasti helpompaa.
Testaajan työn arviointia hankaloittaa se, että se on niin riippuvaista muiden työskentelystä. Samoin helpoiten muodostettavat testaajan työssä onnistumisen mittarit ovat kaikki omalla tavallaan ongelmallisia.
Löytyvät bugit riippuvat paitsi testaajasta myös kehittäjästä, joten tietyssä aikavälissä löytyvien bugien määrä tai laatu ei välttämättä kerro kovin paljoa siitä, miten hyvin testaaja on aikansa käyttänyt. Jos testaajan työtä arvioidaan mittaamalla löytyvien bugien määrää, se kannustaa testaajaa tehokkaaksi löytämään virheitä, mutta ei suuntaamaan tekemistään oleellisimpiin asioihin - näin bugikanta saadaan helposti täyttymään pienen prioriteetin virheistä. Bugien merkittävyyden arvioiminen statistiikkaa varten taas on työlästä, ellei luoteta testaajan tai hänen kanssaan työkentelevän kehittäjän omaan arvioon bugien prioriteeteistä. Toisaalta tarkkakaan tieto bugien vakavuudesta ei anna tietoa testauksen tehokkuudesta, jos testaaja käyttää paljon aikaa sellaisten asioiden manuaaliseen läpikäymiseen, joiden testaaminen kannattaisi automatisoida.
Testauksen tehokkuutta voidaan mitata myös esimerkiksi sillä, miten suuri osa raportoiduista bugeista saadaan ratkaistua kerralla, kysymättä lisätietoja bugin toistamiseksi. Tämä vaatii kuitenkin suhteellisen huolellista bugiraportointijärjestelmän käyttöä, jotta statistiikkaa saadaan helposti kerättyä, ja siten mahdollistaa myös huijaamisen. Asiakkaan löytämien bugien määrä ja laatu kertoo paljon sisäisesti tehdyn testauksen onnistumisesta, mutta tämän mittarin käyttäminen on monella tavalla hankalaa: miten tieto asiakkaan löydöistä raportoidaan ja luokitellaan, ja miten hallitaan tieto järjestelmään tehtävien päivitysten vaikutuksesta sekä niihin liittyvien testikierrosten vastuista.
Testaajan mahdollisuudet käyttää aikansa hyödyllisesti riippuvat myös siitä, mihin tahtiin testattavaa valmistuu. Hänellä ei ole valtaa vaikuttaa siihen, tuleeko asiakasprojekteista hommia tasaiseen tahtiin, vai joudutaanko vuoroin käyttämään aikaa toissijaisiin tehtäviin ja vuoroin priorisoimaan projekteja. Jos siis mitataan sitä, miten suuri osa ajasta kuluu laskutettavien projektien parissa, kannustaa se toki priorisoimaan ajankäytössä asiakasprojekteja, mutta myös käyttämään näihin projekteihin tarpeettoman paljon aikaa silloin kun asiakasprojekteja ei ole tarjolla täysipäiväisesti. Jos taas mitataan sitä, miten hyvä tuntihinta saadaan tehtävästä työstä, kipeimmin testausta kaipaavat katastrofiprojektit päätyvät testaajan ajankäytön priorisoinnissa viimeiseksi. Entä miten pitäisi huomioida tuotekehityksen tukeminen, tämä työ kun hyödyttää useita asiakasprojekteja?
Asiakastyytyväisyyttäkään ei saavuteta pelkällä testauksella, vaan siihen vaikuttavat mm. projektipäällikön kommunikointitaidot ja määrityksen tekemiseen osallistuvien kyky ymmärtää asiakkaan tarpeet ja muotoilla ne ymmärrettävästi. Jos järjestelmää ei ole onnistuttu määrittämään ja suunnittelemaan täyttämään asiakkaan tarvetta, timanttinenkaan testaus ei tilannetta pelasta. Asiakkaan löytämillä bugeilla kun on merkitystä vain, jos ne ovat syy joka estää järjestelmää täyttämästä sitä tarvetta, jota varten se hankittiin. Jos tärkeimmät valituksen aiheet ovat luonteeltaan muutospyyntöjä, liikutaan alueella jolla testaajien rooli on usein tarkoituksenmukaisinta pitää melko pienenä - ellei häntä sitten tuoda jo määritysvaiheesta alkaen asiakasrajapintaan niin, että hänellä on aidosti mahdollisuus arvioida toteutuksen soveltumista asiakkaan liiketoimintatarpeisiin.
Voidaan myös yksinkertaisesti kysyä projektihenkilöstöltä rivikoodarista projektipäällikköön, onko yhteistyö testaajan kanssa koettu hyödylliseksi, ja millaisia puutteita siinä nähdään. Tällaisten kartoitusten kompastuskiveksi vain koituu helposti se, että kenelläkään ei ole aikaa paneutua ylimääräisiksi koettuihin asioihin, kun seuraavat projektit painavat jo päälle. Lisäksi subjektiivisiin arviointeihin liittyy myös persoonallisuuksiin liittyviä piirteitä, jotka tekevät arvioinnista ylipäätään epämääräistä.
Toisaalta, onko testaajan työn mittaamisella edes merkitystä, jos organisaatio ei osaa täysin hyödyntää testaajan työpanosta?
Pystytäänkö tekeminen projekteissa aikatauluttamaan niin, että testaajan työaika saataisiin mahdollisimman tehokkaasti hyödynnettyä, eli testattavaa saataisiin eri projekteista valmistumaan mahdollisimman tasaiseen tahtiin? Mahdollistavatko projektien aikataulut sellaisen testaamisen, että ammattitestaajista on oikeasti hyötyä?
Onko organisaation sisäiset laskutuskäytännöt muodostettu niin, että projektien kannattaa hyödyntää ammattitestaajia?
Miten testaajan työaikaa hyödynnetään parhaiten silloin, kun testattavaa ei ole? Onko sisäisiä kehitysprojekteja, jotka tuovat hyötyä asiakasprojekteille, tai muita aikataulultaan väljiä tehtäviä, joihin voi käydä käsiksi, jos ei testaamalla pysty olemaan oikeasti avuksi? Tuetaanko testaajien mahdollisuuksia kouluttautua suoriutumaan paremmin työssään? Onko kehittäjien mahdollista itsenäisesti pyytää tukea testaajalta, jos he kokevat sen hyödylliseksi jotakin toiminnallisuutta rakentaessaan?
Entä mitä testaukselta ylipäätään halutaan? Onko tarkoituksena vain etsiä bugeja niin pitkään kuin projektin aikataulu ja budjetti antavat myöten, vai onko tavoitteena esimerkiksi antaa projektipäällikölle mahdollisuus keskittyä työssään olennaiseen, helpottaa kehittäjien työtä, tai saada tieto ohjelmiston laadusta tietyllä ajanhetkellä?
Kun näihin kysymyksiin löytyy vastauksia, on myös relevanttien mittareiden rakentaminen varmasti helpompaa.
Tunnisteet:
asiakastyytyväisyys
,
mittaaminen
,
palkitseminen
,
tehokkuus
,
testauksen tarkoitus
,
toiminnan kehittäminen
Tilaa:
Blogitekstit
(
Atom
)