Käitumisel põhinev arendus
Käitumisel põhinev arendus (ingl. behavior-driven development, lühendatult BDD) on tarkvaraarenduse meetod, mis on välja arenenud testimisel põhinevast arendusest.[1][2][3] Käitumisel põhinev arendus kombineerib testimisel põhineva arenduse üldiseid tehnikaid ja põhimõtted. Selle eesmärk on pakkuda arendustiimile ja juhtivtiimile jagatud tööriista tarkvara arendamisel.[1][4]
Käitumisel põhineva arenduse osana kasutatakse tavalise lause konstruktsiooni, mis väljendab käitumist või tulemust.
Ajalugu
[muuda | muuda lähteteksti]Käitumisel põhinev arendus on testimisel põhineva arenduse laiendus .[1] Selleks kasutatakse lihtsat valdkonnaspetsiifilist keelt, mis omakorda genereerib tavalised laused testideks.
BDD kesksed küsimused on järgnevad.
- Kust alustada testimist?
- Mida testida ja mida mitte?
- Kui palju testida ühe korraga?
- Kuidas aru saada, miks test ebaõnnestub?
Paljud inimesed on aastate jooksul BDD raamistikku arendanud, lõpuks kujunes sellest suhtlemis- ja koostööraamistik tarkvaraprojektis arendajatele, testijatele ja tehnilise taustata inimestele (nt kliendid, äripartnerid).[5]
BDD põhimõtted
[muuda | muuda lähteteksti]Käitumisel põhinev testimine kasutab käitumise väljendamiseks poolformaalset vormingut, mis on võetud kasutusloost (ingl user story). BDD eeldab, et analüütikud ja arendajad teevad koostööd. Nende ülesanne on kirjutada käitumisel põhinevad laused vastavasse dokumenti.[6]
Struktuur
[muuda | muuda lähteteksti]Pealkiri: Omadus peaks olema selge ja kõigile arusaadav.
- Sündmustik
- Lühike, sissejuhatav osa.
- Kes on loo põhitegelane (klient, kasutaja, administraator jne)?
- Mida ta tahab teha?
- Miks ta seda teha tahab?
- Stsenaarium
- Kirjeldus stsenaariumist.
- Vajaliku konditsiooni spetsifikatsioon stsenaariumi alguses.
- Stsenaariumi algatav tegevus.
- Oodatav tulemus.
Omadus: Tagastatud kaubad lähevad lattu Mina poe omanikuna Tahan hoida laol toimuval silma peal Selleks tuleb tagastatud tooted lisada lattu. Stsenaarium: Tagasimakstud tooted peaksid olema laos Antud klient ostis kampsuni Ja lattu jäi 10 kampsunit Kui üks klient tagastab kampsuni Siis laos peaks olema 11 kampsunit Stsenaarium: Väljavahetatud tooted peaks olema laos Antud klient ostis enne lühikesed püksid Ja nüüd on kolm paari lühikesi pükse laos Ja nüüd on neli paari pikki pükse laos Kui klient tahab lühikesed püksid pikkade vastu vahetada Siis nüüd peaks olema neli paari lühikesi pükse laos Ja kolm paari pikki pükse
Formaat on Gherkini keele järgi.
Näide esimese stsenaariumi järgi testimiseks Javas.[7]
@Antud("klient ostis kampsuni") public void klient_ostis_kampsuni() { //vastav kood } @Ja("lattu jäi 10 kampsunit") public void lattu_jäi_10_kampsunit() { //vastav kood } @Kui("üks klient tagastab kampsuni") public void üks_klient_tagastab_kampsuni() { //vastav kood } @Siis("laos peaks olema 11 kampsunit") public void laos_peaks_olema_11_kampsunit() { //vastav kood }
Omaduse fail juhtumitega.[7]
Raamstsenaarium: Kurgi söömine Antud alguses on <kurke> kurki Kui ma söön <söön> kurki ära Siis peaks alles jääma <alles> kurki Juhtumid: | kurke | söön | alles | | 12 | 5 | 7 | | 20 | 5 | 15 |
Viited
[muuda | muuda lähteteksti]- ↑ 1,0 1,1 1,2 "Behaviour-Driven Development". Originaali arhiivikoopia seisuga 1.09.2015. Vaadatud 6.12.2018.
{{netiviide}}
:|arhiivimisurl=
ja|archiveurl=
dubleerivad üksteist (juhend) - ↑ Haring, Ronald. de Ruiter, Robert (toim). "Behavior Driven development: Beter dan Test Driven Development". Java Magazine (hollandi). Veen Magazines. Lk 14–17. ISSN 1571-6236.
{{netiviide}}
: parameeter|vaadatud=
nõuab parameetrit|url=
(juhend); puuduv või tühi|url=
(juhend) - ↑ Solis, Carlos; Wang, Xiaofeng. "A Study of the Characteristics of Behaviour Driven Development". Software Engineering and Advanced Applications (SEAA), 2011 37th EUROMICRO Conference on. Lk 383–387. DOI:10.1109/SEAA.2011.76. Vaadatud 6.12.2018.
- ↑ Bellware, Scott. "Behavior-Driven Development". Code Magazine. Vaadatud 6.12.2018.
- ↑ http://forums.pragprog.com/forums/95/topics/3035 The RSpec Book – Question about Chapter 11: Writing software that matters | Kasutatud=6.12.2018
- ↑ North, Dan. "What's in a Story?". Dan North. Vaadatud 6.12.2018.
- ↑ 7,0 7,1 "Gherkin". Originaali arhiivikoopia seisuga 16.12.2018. Vaadatud 6.12.2018.