Sissejuhatuse asemel
Kõik sai alguse sellest, kui ühel ilusal päeval rändasin Suurbritanniasse ja sattusin poolkogemata tööle pisikesse startupi nimega Picklive. Seal kasutati minu jaoks tol hetkel (ja tänaseni) väga uudseid ja põnevaid vahendeid lisaks juba tuntud asjadele – Ruby on Rails, XMPP, JavaScript, agiilne metoodika jne. Alustasin ka seal tegelikult testimisest, aga üsna pea selgus, et sellest jääb väheks. Seega asusin tasapisi ka parandama vigu, mis leidsin. Märkamatult kirjutasin juba lisaks päris uut funktsionaalsust.
Mis tegelikult mu mõtteviisi tarkvara arendamise ja testimise kohta muutis, oli hetk, kui otsustasime võtta kasutusele Behavior-Driven Development (BDD) metoodika ning selle elluviimise vahendiks sai valitud Cucumber. Kuigi BDD’d saab defineerida mitmeti, on minu arust pädevaim Dan North’i antud kirjeldus:
BDD is a second-generation, outside–in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.
BDD definitsiooni järgi tekib tarkvara väljast sisse – esmalt defineeritakse tulemus, mida soovime saavutada, seejärel kirjeldatakse käitumine, mis meid soovitud tulemuseni viib ja alles siis kirjutatakse tegelik programmikood, mis teeb seda, mida me tahame, et ta teeks. Tulemuse definitsioon ja käitumise kirjeldused on esitatud inimloetava tekstina.
Continue reading “Behavior Driven Development ja Cucumber ehk ilusam tarkvara valutu(ma)lt”