{"id":2982,"date":"2014-03-18T12:53:15","date_gmt":"2014-03-18T11:53:15","guid":{"rendered":"http:\/\/www.traineebloggen.se\/?p=2982"},"modified":"2014-12-09T13:11:42","modified_gmt":"2014-12-09T12:11:42","slug":"ny-trainee-pa-cinnober-mitt-i-testblocket","status":"publish","type":"post","link":"https:\/\/www.traineebloggen.se\/index.php\/2014\/03\/trainee\/ny-trainee-pa-cinnober-mitt-i-testblocket\/","title":{"rendered":"Ny trainee p\u00e5 Cinnober, mitt i testblocket"},"content":{"rendered":"<p>Hej alla bloggl\u00e4sare!<\/p>\n<p><span style=\"line-height: 1.5em\">Johan Sundberg heter jag och har b\u00f6rjat som trainee h\u00e4r p\u00e5 Cinnober f\u00f6r sju veckor sedan nu. Jag har l\u00e4st Civilingenj\u00f6r, teknisk fysik vid Ume\u00e5 Universitet och tog examen i januari. Traineeperioden p\u00e5 Cinnober \u00e4r indelad i lite olika block och just nu \u00e4r jag mitt uppe i testblocket som \u00e4r 12 veckor l\u00e5ngt. Blocket varvas med utbildning och praktiskt arbete i ett kundprojekt, jag tillsammans med min kompanjon Rasmus (den andra traineen som b\u00f6rjade samtidigt) \u00e4r i projektet LME Clear (London Metal Exchange Clearing). LME \u00e4r v\u00e4rldens st\u00f6rsta b\u00f6rs f\u00f6r optioner och terminer f\u00f6r metaller och Cinnober levererar med det kundprojekt jag \u00e4r med i mjukvaran till ett clearinghus som tillh\u00f6r LME.<\/span><\/p>\n<p>Testning som koncept var helt nytt f\u00f6r mig innan jag b\u00f6rjade jobba h\u00e4r, det jag kunde associera med testning innan var i princip kolla att din anv\u00e4ndare inte skriver in konstiga saker som input till ditt program, som \u00e4r i princip s\u00e5 l\u00e5ngt som mina kurser p\u00e5 universitetet tog detta. Omr\u00e5det testning \u00e4r v\u00e4ldigt stort men jag t\u00e4nkte ber\u00e4tta lite kort om de tre huvudniv\u00e5er i systemet som man brukar dela in testningen i och vad jag har gjort senaste veckorna.<\/p>\n<p><a href=\"http:\/\/www.traineebloggen.se\/wp-content\/uploads\/traineebloggen\/2014\/03\/mikecohntestpyramid.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-2983\" src=\"http:\/\/www.traineebloggen.se\/wp-content\/uploads\/traineebloggen\/2014\/03\/mikecohntestpyramid.png\" alt=\"mikecohntestpyramid\" width=\"454\" height=\"454\" \/><\/a><\/p>\n<p>(Bild tagen fr\u00e5n <a href=\"https:\/\/vinodkumaar.wordpress.com\/tag\/functional-test\/\">https:\/\/vinodkumaar.wordpress.com\/tag\/functional-test\/<\/a>)<\/p>\n<p>Det finns m\u00e5nga olika tankar kring hur man ska testa men ganska generellt kan man sammanfatta de olika testniv\u00e5erna i systemet som i bilden ovan. Unit tester \u00e4r tester som utvecklare skriver och k\u00f6rs direkt mot k\u00e4llkoden, t.ex tester som k\u00f6rs mot individuella metoder i klasser. Integration\/functional testning testar en eller flera moduler i systemet. UI\/system\/exploratory niv\u00e5n \u00e4r h\u00f6gsta niv\u00e5n d\u00e4r man testar hela systemet. Tanken med uppdelningen \u00e4r att man ska hitta buggar snabbt och p\u00e5 r\u00e4tt niv\u00e5, d\u00e5 blir det mycket enklare att hitta och r\u00e4tta buggar.<\/p>\n<p>En stor del av tiden p\u00e5 Cinnober hittils f\u00f6rutom att l\u00e4ra sig alla nya begrepp och nya rutiner osv har g\u00e5tt \u00e5t till att l\u00e4ra mig FIX protokollet och skriva tester mot det. FIX \u00e4r en standard inom finansbranschen f\u00f6r att skicka information om t.ex transaktioner och mycket annat. LME Clearing systemet som jag hj\u00e4lper till att utveckla tar emot matchade ordrar fr\u00e5n London metal exchange och ska sedan l\u00e4gga in dom i clearingsystemet. I det lagret vill vi vara s\u00e4kra p\u00e5 att inga konstigheter skickas i FIX-meddelandet som t.ex konstiga ascii-tecken, nullstr\u00e4ngar osv d\u00e5 det har h\u00e4nt att vi har f\u00e5tt in buggar p\u00e5 detta.<\/p>\n<p>Det har blivit en del programmering och utvecklande av automatiska tester som skickar in alla m\u00f6jliga konstiga FIX-meddelanden med ogiltiga f\u00e4lt osv f\u00f6r att kolla vad v\u00e5ran mottagande server svarar med. Dessa tester kan klassas in i kategorin integration\/functional test i pyramiden ovan. Det fina med att utveckla automattester \u00e4r att vi l\u00e4gger in dom i en byggplattform som k\u00f6r testerna automatiskt flera g\u00e5nger per dag mot senaste versionen av k\u00e4llkoden, detta g\u00f6r att man snabbt kan se om systemet beter sig annorlunda om man \u00e4ndrar i koden n\u00e5nstans. Denna metod \u00e4r v\u00e4ldigt effektiv n\u00e4r man utvecklar kritiska system som t.ex b\u00f6rser d\u00e4r man l\u00e4gger stor vikt vid att det inte ska finnas buggar som kan s\u00e4nka mjukvaran.<\/p>\n<p>Det var allt fr\u00e5n mig den h\u00e4r g\u00e5ngen, ha en toppendag!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hej alla bloggl\u00e4sare! Johan Sundberg heter jag och har b\u00f6rjat som trainee h\u00e4r p\u00e5 Cinnober f\u00f6r sju veckor sedan nu. Jag har l\u00e4st Civilingenj\u00f6r, teknisk fysik vid Ume\u00e5 Universitet och tog examen i januari. Traineeperioden p\u00e5 Cinnober \u00e4r indelad i lite olika block och just nu \u00e4r jag mitt uppe i testblocket som \u00e4r 12 [&hellip;]<\/p>\n","protected":false},"author":83,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[394],"tags":[395,187,401,30,323,400],"_links":{"self":[{"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/posts\/2982"}],"collection":[{"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/users\/83"}],"replies":[{"embeddable":true,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/comments?post=2982"}],"version-history":[{"count":3,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/posts\/2982\/revisions"}],"predecessor-version":[{"id":3056,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/posts\/2982\/revisions\/3056"}],"wp:attachment":[{"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/media?parent=2982"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/categories?post=2982"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/tags?post=2982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}