Shipit och autotester


Comments Off on Shipit och autotester

Hej!

Nu har det gått två veckor sedan Simon sist skrev ett blogginlägg. På dessa två veckor har väldigt mycket hunnit hända. Förutom det dagliga arbetet som består av manuellt testande har vi fått ett autotest som ska skrivas som en början på nästa del av testblocket. I de manuella testerna får man oftast leta runt och utforska för att se om funktionaliteten är den man förväntar sig. I autotesterna däremot kontrollerar man gärna sådant man vet, t.ex. utdata mot känd indata vilket inte borde förändras bara för att man patchar något annat. Helt enkelt, ett relativt snabbt sätt att kontrollera att saker fortfarande fungerar när man gör förändringar.

En rolig grej som Simon berättade om i sitt inlägg var att vi hade Shipit. Shipit är en händelse på Cinnober som pågick från 12:00 på torsdagen till 12:00 på fredagen där alla på företaget hade möjlighet att göra/bygga vad de ville. Jag och Simon gick med i ett projekt där man skulle bygga ett testverktyg för SWIFT meddelanden. SWIFT är ett protokoll som används av banker för att genomföra transaktioner. I det system vi jobbar i används det bland annat för att bokföra pengar och värdepapper som pant på den handel man utför. Kort sagt åker SWIFT-meddelanden lite fram och tillbaka och när man vill lägga in pant för att testa detta behövde testaren manuellt redigera meddelandena efter mallar. Det testverktyget gör är att automatisera processen att godkänna meddelanden och skicka in svar vilket sparar otroligt mycket tid när man testar.

Själva Shipit dagen var mycket rolig och vi satt sent på torsdagsnatten och kodade på vårat lilla projekt drivna i äkta lan-anda på pizza och andra godsaker. Typen av projekt var väldigt blandade, allt från testverktyg och tidsrapporteringsprogram till spel, finansiell teori och nätverksanslutna arduino med olika sensorer. Bredden och kvalitén på shipit projekten var fantastisk och det var riktigt kul att vara en del av. Lite olika priser delades ut och vi vann faktiskt ett pris för bästa projekt då det blev ett riktigt bra resultat och halva gruppen bestod av rena nykomlingar. Det var en fantastiskt kul dag (och natt) och jag ser fram emot nästa tillfälle!

Prisutdelning efter Shipit, notera de magnifika tröjorna dagen till ära!

Avslutningsvis har scrum-teamen i projektet blandats om och jag och Simon sitter inte längre i vår egna lilla traineehörna. Vi började jobba här  mitt i en sprint och vi får nu möjlighet att vara med från början när vi nu går in i en ny utvecklingsfas, vilket känns  riktigt bra.

Comments Off on Shipit och autotester





Bookmark and Share

Please leave a comment - click here!

Ny trainee på Cinnober, mitt i testblocket


Comments Off on Ny trainee på Cinnober, mitt i testblocket

Hej alla bloggläsare!

Johan Sundberg heter jag och har börjat som trainee här på Cinnober för sju veckor sedan nu. Jag har läst Civilingenjör, teknisk fysik vid Umeå Universitet och tog examen i januari. Traineeperioden på Cinnober är indelad i lite olika block och just nu är jag mitt uppe i testblocket som är 12 veckor långt. Blocket varvas med utbildning och praktiskt arbete i ett kundprojekt, jag tillsammans med min kompanjon Rasmus (den andra traineen som började samtidigt) är i projektet LME Clear (London Metal Exchange Clearing). LME är världens största börs för optioner och terminer för metaller och Cinnober levererar med det kundprojekt jag är med i mjukvaran till ett clearinghus som tillhör LME.

Testning som koncept var helt nytt för mig innan jag började jobba här, det jag kunde associera med testning innan var i princip kolla att din användare inte skriver in konstiga saker som input till ditt program, som är i princip så långt som mina kurser på universitetet tog detta. Området testning är väldigt stort men jag tänkte berätta lite kort om de tre huvudnivåer i systemet som man brukar dela in testningen i och vad jag har gjort senaste veckorna.

mikecohntestpyramid

(Bild tagen från https://vinodkumaar.wordpress.com/tag/functional-test/)

Det finns många olika tankar kring hur man ska testa men ganska generellt kan man sammanfatta de olika testnivåerna i systemet som i bilden ovan. Unit tester är tester som utvecklare skriver och körs direkt mot källkoden, t.ex tester som körs mot individuella metoder i klasser. Integration/functional testning testar en eller flera moduler i systemet. UI/system/exploratory nivån är högsta nivån där man testar hela systemet. Tanken med uppdelningen är att man ska hitta buggar snabbt och på rätt nivå, då blir det mycket enklare att hitta och rätta buggar.

En stor del av tiden på Cinnober hittils förutom att lära sig alla nya begrepp och nya rutiner osv har gått åt till att lära mig FIX protokollet och skriva tester mot det. FIX är en standard inom finansbranschen för att skicka information om t.ex transaktioner och mycket annat. LME Clearing systemet som jag hjälper till att utveckla tar emot matchade ordrar från London metal exchange och ska sedan lägga in dom i clearingsystemet. I det lagret vill vi vara säkra på att inga konstigheter skickas i FIX-meddelandet som t.ex konstiga ascii-tecken, nullsträngar osv då det har hänt att vi har fått in buggar på detta.

Det har blivit en del programmering och utvecklande av automatiska tester som skickar in alla möjliga konstiga FIX-meddelanden med ogiltiga fält osv för att kolla vad våran mottagande server svarar med. Dessa tester kan klassas in i kategorin integration/functional test i pyramiden ovan. Det fina med att utveckla automattester är att vi lägger in dom i en byggplattform som kör testerna automatiskt flera gånger per dag mot senaste versionen av källkoden, detta gör att man snabbt kan se om systemet beter sig annorlunda om man ändrar i koden nånstans. Denna metod är väldigt effektiv när man utvecklar kritiska system som t.ex börser där man lägger stor vikt vid att det inte ska finnas buggar som kan sänka mjukvaran.

Det var allt från mig den här gången, ha en toppendag!

Comments Off on Ny trainee på Cinnober, mitt i testblocket





Bookmark and Share

Please leave a comment - click here!