TESZT & TEA BUDAPEST AGILE MEETUP Pénzügyi számítások automatizált agilis tesztelése: Excel vagy Given-When-Then? Vagy mindkettő? NAGY GÁSPÁR TechTalk developer coach Budapest, 2014 február 6. SpecFlow nyílt forráskódú.net agilis tesztelési eszköz Agile Hungary - alelnök ELTE PhD Viselkedés-alapú szoftverfejlesztés (BDD) gn@techtalk.at http://gasparnagy.com twitter: @gasparnagy COPYRIGHT 2014, TECHTALK - WWW.TECHTALK.HU
2 we do working software (and have fun)
2009 COPYRIGHT 2014, TECHTALK - WWW.TECHTALK.HU
2014 downloads: >80 000 job adverts: >100 COPYRIGHT 2014, TECHTALK - WWW.TECHTALK.HU
Pénzügyi számítások automatizált agilis tesztelése HÁTTÉRTÖRTÉNET PÉNZÜGYI SZÁMÍTÁSOK SPECIFIKÁLÁSA GHERKINBEN ÉS EXCELBEN A SPECRUN-EXCEL PLUGIN KONKLÚZIÓ 5
Pénzügyi számítások automatizált agilis tesztelése HÁTTÉRTÖRTÉNET PÉNZÜGYI SZÁMÍTÁSOK SPECIFIKÁLÁSA GHERKINBEN ÉS EXCELBEN A SPECRUN-EXCEL PLUGIN KONKLÚZIÓ 6
Hogy kezdődött? A mi projektjeink (közepes méretű enterprise alkalmazások) általában a workflow-ra fókuszálnak 2013-tól egy nagy projekten kezdtünk dolgozni, ami a csődbe ment vállalatok végelszámolásával foglalkozik A projekt keretein belül egy könyvelési és adószámítási rendszert is implementálni kellett A speciális szabályok miatt, ez végül komoly kihívást jelentett 7
The SpecFlow Workflow Answers.feature Feature: Ordering answers Scenario: The answer with the highest vote gets to the top Given there is a question What s your favorite color? with the answers Answer Vote red 1 green 1 converts to tests When you upvote answer green Then the answer green should be on top QuestionSteps.cs invokes test automation code [When( you upvote answer (.*) )] public void WhenYouUpvote(string answer) { } questioncontroller.upvote(answer); 8
Pénzügyi számítások automatizált agilis tesztelése HÁTTÉRTÖRTÉNET PÉNZÜGYI SZÁMÍTÁSOK SPECIFIKÁLÁSA GHERKINBEN ÉS EXCELBEN A SPECRUN-EXCEL PLUGIN KONKLÚZIÓ 9
Kalkulációs forgatókönyvek tulajdonságai Feature: Shipping cost calculation Scenario: Calculate shipping costs Given I have 2 books in my basket And my shipping address is in Europe When I start the checkout process Then the shipping costs should be EUR 9 Minimális workflow A lényeg az inputoutput párokban van Gherkinben ezeket leginkább forgatókönyv vázlat (scenario outline) példákkal adjuk meg 10
Kalkulációs forgatókönyvek tulajdonságai Feature: Shipping cost calculation Scenario Outline: Calculate shipping costs Given I have <books> books in my basket And my shipping address is in <region> When I start the checkout process Then the shipping costs should be EUR <cost> Examples: cost = books * 2 + 5 new shipping cost input rules affect this output part case books region cost single book to EU 1 Europe 7 two books to EU 2 Europe 9 single book to US 1 US 12 Segédszámítások szükségesek az input-output párok megértéséhez A változások leginkább a példákat érintik 11
Kalkulációs forgatókönyvek problémái Üzleti felhasználhatóság Ilyen problémákra az üzleti élet szakemberei Excelt használnak (domain specific language DSL) A Gherkin formátum az Excel fájlok alapján készül, többszöri transzformáció során emiatt nem válhat elsődleges információforrássá Segédszámításokra van szükség ahhoz, hogy a leírt példákat ellenőrizni lehessen egy szövegfájl alapján ez különösen nehéz 12
13 Excel példa, amit az ügyfél használ
Kalkulációs forgatókönyvek problémái A számítási formula specifikálása Az input-output párok szükségesek az automatizált ellenőrzéshez A formula szövegesen van megadva, vagy még úgy sem Scenario: Calculate shipping costs as books * item-cost + region-cost Given I have 2 books in my basket And my shipping address is in Europe When I start the checkout process Then the shipping costs should be EUR 9 14
Miért pont Excel? Az Excel két párhuzamos világban gondolkodik: formulák absztrakt specifikáció értékek példák És ez pont az, amit a Specification by Examples módszer javasol! 15
Pénzügyi számítások automatizált agilis tesztelése HÁTTÉRTÖRTÉNET PÉNZÜGYI SZÁMÍTÁSOK SPECIFIKÁLÁSA GHERKINBEN ÉS EXCELBEN A SPECRUN-EXCEL PLUGIN KONKLÚZIÓ 16
A SpecRun-Excel Plugin Az Excel és a Gherkin kifejezőerejét kombinálja Ez alapvetően egy SpecFlow (SpecRun) plugin ami SpecFlow 1.9-el működik Egyszerűen telepíthető NuGet csomagként Lehetőséget ad arra, hogy a meglévő specifikációnkat Excel alapú példákkal egészítsük ki Tartalmaz egy konzolos konvertert is, amivel más Gherkin alapú eszközökhöz is használható (Cucumber, Behat, stb.) Jelenleg béta fázisban van több projekten teszteljük, illetve várjuk a külső visszajelzéseket 17
Excel Feature Fájlok Segítségükkel egy teljesen új módon adhatjuk meg az automatizálható specifikációt, anélkül, hogy a Gherkin alapú automatizálási rétegen módosítani kelljen Excel Workbook (Excel file) Worksheet Cell ranges Formulas Helper calculations (rows, cells, sheets) Title, keywords, category Gherkin Feature Scenario or Scenario Outline Table args, scenario outline examples Part of step text or tables Not shown Feature title, tags, language 18
További ötletek: Excel mágia A formázással, színezéssel tovább növelhetjük példák olvashatóságát Intellisense/Completion kulcsszavakra Nevesített formulák ( Named formulas ) segítségével a számítások még jobban elkülöníthetőek Egyéb Excel mágiák, például a forgatókönyv vázlatok (scenario outline) jobb megértéséhez 20
Pénzügyi számítások automatizált agilis tesztelése HÁTTÉRTÖRTÉNET PÉNZÜGYI SZÁMÍTÁSOK SPECIFIKÁLÁSA GHERKINBEN ÉS EXCELBEN A SPECRUN-EXCEL PLUGIN KONKLÚZIÓ 23
Konklúzió Excel egy hasznos eszköz kalkulációs feladatok specifikálására A megrendelő amúgy is ezt használja Le lehet írni az absztrakt követelményt (formulák) és a példákat is A SpecRun-Excel Plugin jelenleg béta fázisban van, de használható Bármilyen visszajelzést szívesen veszek! gaspar.nagy@techtalk.at 24
Kérdések?? GÁSPÁR NAGY gn@techtalk.at http://gasparnagy.com 25
Köszönöm a figyelmet! NAGY GÁSPÁR gn@techtalk.at http://gasparnagy.com twitter: @gasparnagy Budapest, 2014 február 6. COPYRIGHT 2014, TECHTALK - WWW.TECHTALK.HU