15.08.2016

Usetrace -testaustyökalun tekijät tekivät meistä pienen case-studyn. Tässä hieman lisää aiheesta suomen kielellä.

AUTOMATISOITU TESTAUS ON TÄRKEÄÄ …

Automatisoitu testaus on toimintavarman ohjelmiston ja ketterän kehityksen kulmakivi. Ilman jatkuvaa testausta, nopeasti kehitettävät ja alati muuttuvat ohjelmistot väkisinkin hajoilevat. Vaikka olisi kuinka rautainen koodari, laajoissa usean ohjelmoijan projekteissa on jokaisen koodirivin läpikotainen tunteminen mahdotonta. Silloin yhden asian muuttaminen helposti rikkoo jotain yllättävää toisaalla.

… MUTTA HIEMAN HIDASTA JA KALLISTA

Harmillisesti testauksen automatisointi on ollut suhteellisen aikaa vievää ja siten kallista. Tämän kustannuserän myyminen varsinkin ei-teknisille asiakkaille on ollut hankalaa. Hyödyt eivät heti näy ja asiakas helposti näkee koko touhun vain hidasteena ja ylimääräisenä kulueränä.  Varsinkin projektin alussa kun projekti on vielä pieni, ilman testejä pärjätään mainiosti. Sitten kun ongelmat viimein realisoituvat, deadlinet lähestyvät kohisten ja ohjelmisto on kasvanut niin laajaksi, että testipatteriston lisäys on jo myöhäistä.
Onneksi meidän asiakkaissa useimmat ovat valveutuneita ja ymmärtävät ketterän kehityksen ja testauksen mittavat hyödyt. Varsinkin isommissa usean kehittäjän projekteissa, olemme käyttäneet yksikkötestien, integraatiotestien ja selainpohjaisen testityökalun Seleniumin yhdistelmää. Nämäkään eivät aina ole ohituskaista ohjelmistonirvanaan.
Yksikkötesteillä saadaan testattua hyvin tarkasti yksittäiset ohjelmistokomponentit, mutta usein ongelmat eivät sijaitse yksittäisissä komponenteissa vaan niiden välisissä yhteyksissä. Integraatiotestit simuloivat ohjelmiston käyttöä laajemmin, mutta silti nykyohjelmistojen laajin osuus, käyttäjän selain, jää testaamatta kokonaan. Seleniumilla saadaan selainkin testattua, mutta testien teko ja varsinkin niiden automatisointi on hankalaa. Ja myönnettävä on, että testien kirjoittaminen vie yllättävän paljon aikaa ja vaivaa.

… VAAN NYT SE ONKIN NOPEAA JA HAUSKAA!

Nyt löysimmekin ratkaisun, joka poistaa testien kirjoittamisen ja automatisoidun ajamisen tuskan ja tekee siitä helppoa ja hauskaa. Testien koodaamisen sijaan Usetrace työkalulla testit tehdään sivustoa ja klikkailemalla. Samalla hoituu testien ajo kaikilla yleisillä selaimilla –  jopa IE9iä myöten. Testien teko on hyvin intuitiivista ja nopeaa. Lähes samalla vaivalla kun klikkailet ominaisuuden läpi omassa selaimessasi, saat klikkailtua testin Usetracen selaimella, jolloin se tallentuu kaikilla selaimilla ajettavaksi automatisoiduksi testiksi. Alla vähän esimerkkiä:

Tällaisen testin näyttäminen asiakkaalle helpottaa myös asiakasta näkemään konkreettisesti testauksen hyödyt. Kun asiakas näkee usean eri selaimen kliksuttelevan läpi oman sivustonsa, on testauksen hyödyt hyvin selvät. Tällaisen demonstraation jälkeen ei ole enää tarvinnut vängätä testien tarpeellisuudesta.

VARMUUTTA JA NOPEUTTA KEHITYKSEEN

Olemme projekteissamme kytkeneet Usetracen osaksi kehitysprosessiamme. Kun uusi versio ohjelmistosta viedään versiohallintaan, viedään se automaattisesti testipalvelimeemme pyörimään ja Usetrace käsketään yksinkertaisen rajapinnan kautta ajamaan testipatteristo läpi uudelle versiolle. Jos testeissä ilmenee ongelmia, saamme siitä heti tiedon kehittäjien keskustelukanavalle. Virheviesteissä on hyvin selkeästi näytetty kuva sivustosta virheen aikana ja kohta johon testi pysähtyi. Sen avulla kehittäjä huomaa nopeasti missä virhe piilee ja saa korjauksen tehtyä ennen kuin koodia hyväksytään edes pääkehityshaaraan. Tuotantosivustojen yllättävät hajoilut ovat historiaa.
Nopean ja automatisoidun palautteen avulla voimme varmuudella muuttaa isojakin kokonaisuuksia verkkopalvelussa. Tiedämme, että testit takaavat toimintojen toimimisen läpi järjestelmän. Myös testien päivittäminen ja ylläpito on hyvin nopeaa muutosten sattuessa. Aiemmin, kun suuri osa koodista oli yksikkötestejä, isojen muutosten tekeminen vaati valtavan testien uudelleenkirjoitustyön. Tämä johti usein siihen että huonot arkkitehtiratkaisut jätettiin muuttamatta, koska muutos olisi ollut liian vaivalloista. Nyt testien ollessa korkeammalla tasolla, alla oleva arkkitehtuuri voi vapaasti muuttua. Testit pitävät huolen siitä että kaikki toimii loppukäyttäjälle yhä kuten pitää.

KÄYTTÖÖN KAIKKIIN PROJEKTEIHIN

Usetrace on tuonut kehitykseemme selkeästi lisää nopeutta ja varmuutta vanhaan nähden. Sen vuoksi aiommekin ottaa työkalun käyttöön kaikissa uusissa projekteissamme ja myös monessa vanhassa. Tässä vaiheessa testaaminen on niin vaivatonta ja mukavaa, ettei asiaa tarvitse edes turhaan pohtia – tietyn kenkävalmistajan sanoin: Just Do It!