
Pääsin tänään eroon puolikkaasta työläästä kurssista. Tai en tiedä kuinka työläs se toinen varsinainen tehtävä siinä on, tämä oli kaikkiaan noin 18 tunnin työn takana.
Kyseessä siis testauskurssin yksikkötestaus-osio. Testattiin Mozillan URL-parseria, sen muutamaa funktiota. Tarkoituksena oli (päällepäin) saada ohjelmavuo kulkemaan jokaisesta mahdollisesta koodissa olevasta ehdosta.
Meidän ratkaisu oli käyttää perustestejä ja sen lisäksi permutoida muuttujia (funktiot palauttavat tiettyjä arvoja muuttujiin jos niille annetaan sopivat parametrit). Tämä osuus 'räjähti käsiin'.
Vähän lukuja. Testataan 8:aa funktiota. Skripti joka generoi testit on 600 riviä pitkä, pythonia. Perustestejä joita varioidaan on 45. Generoituja testejä on yhteensä 7216. Generoidun koodin koko on 6Mt, siis 4:n korpun verran. Käännöksen jälkeen itse ohjelma joka suorittaa testit on 21Mt:n kokoinen. Koulun tarjolla oleva quota ei oletuksena riittänyt sen kääntämiseen niin että kaikki testit olisivat olleet kerralla mukana.
Näin jälkeenpäin ajateltuna muutama tarkemmin suunnattu testi hyvin
pienellä permutoinnilla olisi ajanut aivan samaa tarkoitusta, pienemmällä
vaivalla. Tässä tapauksessa itse testien kääntäminen muodostui
pullonkaulaksi, niiden ajaminen ei ollut kuin parin sekunnin homma.
Toisaalta tuo toteutustapa oli vaan niin pirun hauska.
Anselista oikealle