TestCon Moscow 2018

TestCon Moscow 2018

Kävimme huhtikuussa TestCon Moscow 2018 -testauskonferenssissa kuuntelemassa huippupuhujien esityksiä testauksesta, DevOpsista ja hyvistä ohjelmointikäytännöistä. TestCon Moscow on suunnattu kaikille sujuvammasta ohjelmistokehityksestä ja laadunvarmistuksesta kiinnostuneille, joten se sopi meille comiqlaisille hyvin. Lähdimme konferenssiin kolmen miehen voimin kehittämään osaamistamme.

Konferenssissa oli monia mielenkiintoisia esityksiä, mutta mielestämme yksi parhaimmista aiheista oli Sandro Mancuson pitämä esitys legacy-koodin testauksesta ja refaktoroinnista. Sandron mukaan legacy-koodin yksikkötestaaminen kannattaa aloittaa koodin uloimmasta kontrollirakenteesta (if, when, jne.), josta sitten jatketaan askel ja testi kerrallaan koodin sisempiin rakenteisiin. Testien refaktoroinnin aikana kannattaa seurata, ettei niiden kattavuus olennaisesti heikkene.

Testien kirjoituksen jälkeen voidaan aloittaa legacy-koodin refaktorointi. Tämä kannattaa vastaavasti aloittaa koodin sisimmästä kontrollirakenteesta, missä asiat toimivat yksinkertaisimmillaan. Refaktorointi kannattaa aloittaa mieluummin pienillä muutoksilla kuin refaktoroida kaikki kerralla. Jokaisen pienen muutoksen jälkeen yksikkötestit kannattaa ajaa uudestaan, jotta varmistutaan ettei yksikään testi ole hajonnut. Mikäli yksikkötestit hajoavat, voidaan yksinkertaisesti palata askel taaksepäin, jolloin yksikkötestit toimivat taas.

Mikäli koodilla on suoria yhteyksiä esimerkiksi DAO-luokkaan, kannattaa näiden yhteyksien välille rakentaa erillinen kutsumetodi, joka toteuttaa saman asian. Tämän uuden metodin voi luokkaa testatessa ylikirjoittaa tai mockata helpommin. Kannattaa myös miettiä kuuluuko metodi ylipäänsä kyseiseen luokkaan vai jonnekin muualle. Lopputulemana yksikkötestien tulisi olla yhtenevät julkisten metodien käyttäjätarinoiden kanssa.

Sebastian, Johannes, Samuli