Den gränsöverskridande kanelbullens lov.

Martin Karsberg berättar om vikten av informella möten och ger ett underhållande exempel när det fungerar som bäst.

En av de faktorer som gör en bra testare måste vara ögat för att se förbättrings potential i det egna arbetet så väl som i test objektet. Här kommer ett exempel som jag var med om för ett par år sedan.

Jag blev inkastad i ett projekt mitt i en iteration för att tiden innan leverans var knapp. Känner ni igen er? Vi testade leveransen manuellt och nästan alla var nöjda. Efter iteration leverans var det dags för det obligatoriska kaffet med tillhörande kanelbulle och jag kom i samspråk med en av utvecklarna i projektet. Vi tyckte båda att detta scenario borde gå att undvika. Att vi borde kunna få bort en del av de manuella testerna, automatisera så att vi kan fokusera mer tid på mer komplexa scenarion. Så under samtalet och kanelbulle mumsandet utarbetades en enkel form av automatiska tester som skulle kunna göra livet för alla lättare.

På ”osanktionerad” tid så gjordes en grov prototyp, det funkade!

Som testare fick jag med mig projekt ledningen på att detta var nått att satsa på och tid avsattes för att göra detta fullt ut. Efter 3 dagar fanns nu en autotest svit och ett egen utvecklat autotest verktyg. Ytterligare 2 dagar behövdes för att trimma in det hela. Som mervärde gav det oss även möjlighet att skriva testfall som inte gick att utföra i det befintliga GUI:t eller med vanliga shell script. Med autotest miljön uppstod även en helt ny möjlighet att göra verkliga långtidstester.

Under den nästkommande iterationen utökades mängden tester och allt dokumenterades efter konstens alla regler. Men så kom dagen när frågan restes, den varje testare funderat på vid något tillfälle. Hur mycket täcker vi egentligen med dessa tester?

En ny kopp kaffe och ytterligare en kanelbulle så insåg min vän, utvecklaren, att det finns ju faktiskt inbyggt i utvecklingsmiljön möjlighet att titta på kodtäckning. Ja, det användes rent av på vissa ställen för att kontrollera resultatet av enhetstester. Sagt och gjort ytterligare ett testskott gjordes i lönndom.

Tänka sig att de tester vi hade automatiserade enbart täckte 52% av koden! Det måste ju gå att öka. Ett nytt samtal med projektledningen, denna gång gick det väldigt lätt att få loss lite tid för detta. Det hela hade ju redan betalat sig, så att säga. Ytterligare två dagar lades på detta. Och när de förbättrade testerna kördes så var vi uppe i rasande 67%. Efter ytterligare en analys runda samt komplettering med en handfull manuella testfall så var vi uppe i 79%. Nått vi tyckte var väldigt bra. De manuella testerna dokumenterades och finns nu som en del i den totala test mängden tester som körs när kodtäckning skall mätas. Vi slutade att göra denna analys vid varje leverans och övergick till att enbart göra det på begäran från projektledningen.

Det är här någonstans jag vill återknyta till det som nämndes i början av denna text, att man som testare ständigt bör söka att förbättra de befintliga metoderna. I detta exempel hade man kunnat luta sig tillbaka och sagt att detta är bra nu går vi och tar en slät kopp kaffe.

Vi tog dock en kanelbulle till.

För visst måste det gå att få ut mer av detta? Vi hade ju fått en underbar plattform att utgå från. Vi viste ganska exakt vilka delar av koden som testerna täckte och vi kunde få systemet att jobba när vi ville och hur hårt vi ville.

Det självklara var såklart att börja monitorerna vad som hände utanför test objektet. Så ytterligare en fika avklarades. Ytterliga ett par parametrar lades till autotesterna. Möjligheten att mäta systemresurser så som minnesallokering, cpu-last och nättrafik. Detta kombinerades med redan befintliga lång tids tester.

Och det är nog här någonstans de riktigt intressanta effekterna uppstod. Genom att kunna testa stora mängder funktionalitet kontinuerligt över lång tid kunde vi hitta flera områden som mådde bra av att ses över. Speciellt icke funktionella områden som ramlat utanför den traditionella kravställningen.

Så man kan säga att koffein och vetebullar smaksatta med kanel skapades förutsättningar för att växla tankar och idéer med personer utanför test organisationen. Det gav oss en insikt i hur vi kan ta nästa steg och konstruera mer effektiva och avancerade tester med förhållandevis små medel.

När bjöd du på kaffe och kanelbullar senast?

About Martin

Martin Karsberg Delsystemverifierare på SAAB EDS i Göteborg Hyffsat bred erfarenhet av test och verifiering av mjukvara. Jag har jobbat med de flesta typer av test, allt från enehtstest och kodteckning till acceptancetester sittandes i kundens knä. Jag har erfarenhet av applikationstest så väl som test av inbyggdasystem och ändå känner jag mig ofta som en novis och är glad att ständigt få lära mig nya saker.