Hvis du har så kan du må måske blive inspireret her.
Situationen var, at vi på dette projekt havde identificeret integrationspunkterne som de mest kritiske og vi havde reelt set kun mig som tester. Men ok – sådan er det vidst mange steder. Jeg havde i flere dage siddet og kigget mig fuldstændig blind i xml dokumenter, attributter og manglende elementer og værdier som ikke var lige inden for scope – og det var ved at drive mig til vanvid.
Det var ikke helt inden for scope at vi havde talt automatisering af disse test, men jeg måtte bevise overfor projektledelsen at det kunne betale sig. Så en dag hvor projektlederen havde ryggen til mig en hel dag, så tog jeg fat og fik automatiseret omkring 30 ud af de 200 af de unit test jeg sad og skulle køre manuelt. Med NUnit var det relativ nemt at kode de unit tests, for jeg var så dybt inde i hvordan testcasene var bygget op, at der kun var slaveprogrammering tilbage.
Projektledelsen var godt klar over at unit testen var vigtig og at den tog i omegnen af 4-5 dage at gennemføre manuelt, med stor risiko for at testeren var helt skeløjet efterfølgende.
Nu tog det under 2 min at køre de 30 unit test igennem......
Projektledelsen var super begejstret, så efter endnu 5 dage, så havde jeg automatiseret de resterende 170 unit tests. Nu tog testen ca. 10 min at gennemføre. Men det er også en horibel forskel fra 4-5 dage og til 10 min.
Så var jeg nu arbejdsløs? Næ, nu kunne jeg begynde mig at koncentrere mig at designe endnu dybere test cases og begynde at test de andre dele af systemet.
Gevinsten var rigtig stor for udvikleren som sad med integrationerne, for det som han oplevede var, at han kunne få lukket sine opgaver hurtigt. Udvikleren og jeg sad i tæt dialog, udvikleren kodede og jeg trykkede på knappen for at køre unit testen, udvikleren havde nu et svar 2 min efter på det interface og kunne rette ind straks. Unit testen kunne fortælle udvikleren helt præcis hvor der var fejl og selvfølgelig var der tiltider også fejl i testen, men det vigtigste var at der blev skabt en rigtig god dialog mellem udvikleren og projektet og integrationspunkterne blev nu konstant overvåget af unit testen.
Fordi unit testen var så nem at køre, og fordi udvikleren fik svar tilbage straks, så blev der ikke brugt tid på at rapportere defects. Kun i de tilfælde hvor udvikleren var på andre opgave, var vi nød til at dokumentere en fejl grundigt.
Det er svært at få dækket alle scenarier med test cases, så der var også situationer var systemet fejlede men unit testen lyste grønt. Så nu gik øvelsen ud på, at få unit testen til at lyse rødt – altså kode en unit test, som rapporterede en fejl netop i den nye situation. Herefter var der kun hårdt arbejde tilbage for udvikleren og et tryk på unit test knappen i ny og næ.
Alt i alt en ret stor succes for testen. Det endte med at ca. 350 unit test var automatiseret og de blev kørt på omkring 10-12 min. Jeg kan på det varmeste anbefale, at man koder sig ud af sådanne situationer, så man ikke brænder testerne helt af.

