
Aamunavaus kahvipöydässä
Heräsin aamulla normaaliin aikaan noin klo 6, keitin kahvit ja avasin koneen ja aloin pohtimaan mikä on päivän aikataulutus. Yksi palaveri näyttäisi olevan iltapäivällä tahon kanssa, jonka kanssa voisi viritellä erittäin hedelmällistä yhteistyötä. Sähköposteissa ei ollut muuta ihmeellistä kuin että testausautomaatio oli lähettänyt minulle ja asiakkaalle 05.07 sähköpostitiivistelmän klo 05.00 tapahtuneesta automaattisesta testausajosta. Viesti kertoi, että testauksen kohteena ollut prosessi oli epäonnistunut. Virheilmoitus näkyi sähköpostissa.
Ajattelin että käyn ensin aamulenkillä järven rannassa ja mietin mikä kyseisen tilanteen oli mahdollisesti aiheuttanut ja mikä voisi olla ratkaisu.
Lenkiltä vauhtia ongelmanratkaisuun
Juoksun aikana tulin siihen johtopäätökseen, että koska validoitu data ei täsmännyt syötettyyn dataan, niin todennäköisesti testattavan järjestelmän datassa on jotain eri tavalla kuin normaalisti.
Juoksun jälkeen aloin tutkia ongelmaa uudestaan. Ajattelin aloittaa ”alusta” ja vahvistaa että ongelma toistuu eli kyse olisi säännöllisestä ongelmasta. Päätin ajaa testin ensin lokaalilta testausalustalta koska mahdollinen korjaus tehtäisiin ensin omalle koneelle. Vaikka testi käynnistetään omalta koneelta, itse testit suoritetaan verkon yli asiakkaan testiympäristöä vasten. Testiajo meni ongelmitta läpi. Eli prosessi näyttäisi olevan juuri nyt kunnossa. Todennäköisesti aamulla järjestelmässä oli jokin hetkellinen häiriö tai ongelma. Sitä tapahtuu aina toisinaan testiympäristöissä, koska ne ovat jatkuvan kehityksen alla. Luonteeltaan testiympäristöt eivät ole kovin stabiileja.
Kohti uusia ongelmia
Joka tapauksessa päätin vielä varmistaa tilanteen ja kirjauduin asiakkaan DevOpsiin jossa on testausautomaation versionhallinta ja pipeline. Pipelinessa on ajastettu testiautomaation ajo aamuisin klo 05.00 ja päivisin klo 11.30. Mutta halutessaan ”kuka tahansa” jolla on riittävät oikeudet DevOpsiin voi käynnistää manuaalisesti testin painamalla kahta nappia. Käynnistin testausautomaation nyt manuaalisesti. DevOpsista käynnistettäessä on se etu, että koko testausalusta luodaan ”lennossa” ihan kokonaan eli virtuaalitilaan asennetaan kaikki tarvittavat sovellukset ja kirjastot. Tästä puolestaan on se etu, että ei tarvitse ylläpitää mitään tiettyä ympäristöä testausautomaatiolle. Kun verkosta asennetaan tarvittavat sovellukset ja kirjastot, niin ne ovat aina viimeisimpiä versioita. Ei siis tarvitse huolehtia, josko jokin sovelluskomponentti menee ehkä vanhaksi. Myöskään mitään erillistä serveriä ei tässä ratkaisussa tarvita.

Katselin ruudulta, kun DevOps asenteli kaikki komponentit onnistuneesti ja seuraavaksi oli vuorossa itse testit. Hieman kyllä hämmästyin, kun nyt testit eivät menneetkään läpi. DevOps jatkoi vielä ”jälkitoimenpiteitä” eli tallensi kuvankaappauksen ongelmasta ja login tapahtuneesta ja lähetti tulokset minun ja asiakkaan sähköposteihin. Sähköpostissa on suora linkki DevOpsin tallentamaan kuvakaappaukseen ja logiin. Klikkasin kuvakaappauksen auki ja vilkaisin logia. Nyt logissa ei ollut mitään viitettä datan epävalidiudesta vaan kyseessä oli täysin toinen ongelma.
Mutkan kautta maaliin
Tämä uusi ongelma oli tullut vastaan aiemminkin, joten päätin ratkaista tämän ensin. Tässä oli kyse siitä, että yksi kenttä toisinaan suoritti laskutoimituksensa melko hitaasti ja testausautomaatio odotti nopeampaa laskutoimitusta. Päätin vielä tiedustella tiimiltä, että onko tuo laskutoimitus ihan paikkansapitävä. Vastauksena sain, että kyseinen kenttä hakee dataa useasta eri lähteestä ja sitten scripti laskee tuloksen kenttään. Tästä syystä laskutoimitus voinee joskus viivästyä. Päätin hieman nostaa testiautomaation odotusaikaa tälle kentälle. Tein muutokset lokaaliin testiautomaatioalustaan ja ajoin testit uudelleen.
Nyt testit menivät läpi. Seuraavaksi kopioin Gitin avulla muuttuneen koodin versionhallintaan DevOpsiin. Nyt käynnistin testit uudelleen manuaalisesti DevOpsista. Testit menivät läpi.
Näistä testeistä tein johtopäätöksen, että testattava prosessi sinänsä toimii oikein, samoin testausautomaatio. Mutta jokin toinen prosessi tuottaa dataa, jota ei viedä loppuun asti. Ja tähän testausautomaatio reagoi eli havaitsi ”ylimääräisen” datan.
Evästä naamaan ja konsulenttihommiin
Seuraavaksi tein pyörälenkin paikalliseen K-markettiin, josta ostin itselleni salaatin ja siitä polkaisin Lidliin hankkimaan makuupussia.
Ruuan jälkeen oli palaveri mahdollisen yhteistyökumppanin kanssa. Palaverissa keskusteltiin puolin ja toisin toistemme tavoitteista ja kokemuksista testausautomaation alueelta. Lopuksi demoiltiin erilaisia testausautomaatioratkaisuja. Palaveri oli hedelmällinen ja sovittiin jatkosta. Tämän jälkeen pakkasin sekä telttailukamani että tietokoneeni ja hyppäsin bussiin kohti Helsinkiä. Matkalla aloin kirjoittaa tätä blogia. Helsinkiin saavuin illansuussa ja seuraavana päivänä olinkin jo Gåsgrundissa telttailemassa 😊