SlideShare a Scribd company logo
1 of 17
BDD from scratch
I am Lelo
@l3l0
Hello!
> Invented by Dan North in 2006
> Should solve problem of
communication between developers
and business pepole base on
examples
Behavior Driven Development
> It evolved from the TDD
Behavior Driven Development
BDD and TDD
Behavior Driven Development
Potrzeba biznesowa: JAKO użytkownik z
rolą księgowego
CHCĘ zmienić status faktury na
zatwierdzoną oraz wysłać emaila
ŻEBY klient mógł dostać fakturę
First Attemp
Discuss and use business
language
Potrzeba biznesowa: JAKO Kontroler
Finansowy
CHCĘ aby po zatwierdzeniu faktury
została ona wysłana na zdefiowany e-
mail
ŻEBY klient mógł zapłacić za usługi
Better language
Scenariusz: Zatwierdzenie faktury
Kiedy zatwierdzę fakturę
Wtedy na maila klienta powinna
zostać wysłana faktura
Oraz faktura powinna zostać
oznaczona jako zaakceptowana
Scenarios
Scenariusz: Zatwierdzenie faktury
Zakładając że osobą kontaktową dla klienta "Cocoders Sp. z o.o."
jest "Leszek Prabucki" z mailem "l3l0@cocoders.com"
Oraz faktura "2015/P/0001-1" z następującymi danymi została
wystawiona dla klienta "Cocoders Sp. z o.o.":
| Nazwa nabywcy | Cocoders Sp z o.o. |
| NIP nabywcy | 9562307984 |
| Adres nabywcy | Królowej Jadwigi 1/3, Toruń |
| Nazwa usługi nr 1 | Rekrutacje |
| Ilość usługi nr 1 | 1 |
| Cena usługi nr 1 netto | 5000 |
| VAT od usługi nr 1 | 23% |
Kiedy zatwierdzę fakturę o numerze "2015/P/0001-1"
Wtedy na maila "l3l0@cocoders.com" powinna zostać wysłana faktura
Oraz faktura powinna trafić do puli faktur zatwierdzonych
Scenarios
use BehatBehatContextContext;
class AccountantContext implements Context
{
/**
* @When zatwierdzę fakturę o numerze :number
*/
public function zatwierdzeFaktureONumerze($number)
{
}
}
Design base on example
Living Documentation
QA role in BDD
BDD pitfalls
Thank You!
@l3l0

More Related Content

Viewers also liked

Юры Брэль, г. Рагачоў – Фотавыстава «Рагачоў – два бакі аднаго горада»
Юры Брэль, г. Рагачоў – Фотавыстава «Рагачоў – два бакі аднаго горада»Юры Брэль, г. Рагачоў – Фотавыстава «Рагачоў – два бакі аднаго горада»
Юры Брэль, г. Рагачоў – Фотавыстава «Рагачоў – два бакі аднаго горада»
budzma
 
Андрэй Шулаеў, Старшыня Праўлення МДФ "Крэўскі замак" – “Віртуальны (перасоўн...
Андрэй Шулаеў, Старшыня Праўлення МДФ "Крэўскі замак" – “Віртуальны (перасоўн...Андрэй Шулаеў, Старшыня Праўлення МДФ "Крэўскі замак" – “Віртуальны (перасоўн...
Андрэй Шулаеў, Старшыня Праўлення МДФ "Крэўскі замак" – “Віртуальны (перасоўн...
budzma
 
Lydia Folwell Resume
Lydia Folwell ResumeLydia Folwell Resume
Lydia Folwell Resume
Lydia Folwell
 

Viewers also liked (15)

Юры Брэль, г. Рагачоў – Фотавыстава «Рагачоў – два бакі аднаго горада»
Юры Брэль, г. Рагачоў – Фотавыстава «Рагачоў – два бакі аднаго горада»Юры Брэль, г. Рагачоў – Фотавыстава «Рагачоў – два бакі аднаго горада»
Юры Брэль, г. Рагачоў – Фотавыстава «Рагачоў – два бакі аднаго горада»
 
Андрэй Шулаеў, Старшыня Праўлення МДФ "Крэўскі замак" – “Віртуальны (перасоўн...
Андрэй Шулаеў, Старшыня Праўлення МДФ "Крэўскі замак" – “Віртуальны (перасоўн...Андрэй Шулаеў, Старшыня Праўлення МДФ "Крэўскі замак" – “Віртуальны (перасоўн...
Андрэй Шулаеў, Старшыня Праўлення МДФ "Крэўскі замак" – “Віртуальны (перасоўн...
 
scan 11 feb 2016
scan 11 feb 2016scan 11 feb 2016
scan 11 feb 2016
 
Diploma Colegio
Diploma ColegioDiploma Colegio
Diploma Colegio
 
Lydia Folwell Resume
Lydia Folwell ResumeLydia Folwell Resume
Lydia Folwell Resume
 
Lcp
LcpLcp
Lcp
 
MOMENTO INDIVIDUAL-Trabajo colaborativo: Diagnóstico de Suelos Corregimiento ...
MOMENTO INDIVIDUAL-Trabajo colaborativo: Diagnóstico de Suelos Corregimiento ...MOMENTO INDIVIDUAL-Trabajo colaborativo: Diagnóstico de Suelos Corregimiento ...
MOMENTO INDIVIDUAL-Trabajo colaborativo: Diagnóstico de Suelos Corregimiento ...
 
Life at FPI
Life at FPILife at FPI
Life at FPI
 
TGT#11 - Jak wykorzystać sztuczną inteligencję w testowaniu?​ - Anna Czyrko
TGT#11 - Jak wykorzystać sztuczną inteligencję w testowaniu?​ - Anna CzyrkoTGT#11 - Jak wykorzystać sztuczną inteligencję w testowaniu?​ - Anna Czyrko
TGT#11 - Jak wykorzystać sztuczną inteligencję w testowaniu?​ - Anna Czyrko
 
TGT#9 - Lessons learned in software testing - Olga Żądło
TGT#9 - Lessons learned in software testing - Olga ŻądłoTGT#9 - Lessons learned in software testing - Olga Żądło
TGT#9 - Lessons learned in software testing - Olga Żądło
 
TGT#12 - Testowanie gier – praca czy zabawa? - Piotr Januszko
TGT#12 - Testowanie gier – praca czy zabawa? - Piotr JanuszkoTGT#12 - Testowanie gier – praca czy zabawa? - Piotr Januszko
TGT#12 - Testowanie gier – praca czy zabawa? - Piotr Januszko
 
TGT#10 - IAST (Short talk) - Eugene Nosenko
TGT#10 - IAST (Short talk) - Eugene NosenkoTGT#10 - IAST (Short talk) - Eugene Nosenko
TGT#10 - IAST (Short talk) - Eugene Nosenko
 
TGT#13 - UI Tests Automation Framework in Evolve EDM – Case Study - Mateusz R...
TGT#13 - UI Tests Automation Framework in Evolve EDM – Case Study - Mateusz R...TGT#13 - UI Tests Automation Framework in Evolve EDM – Case Study - Mateusz R...
TGT#13 - UI Tests Automation Framework in Evolve EDM – Case Study - Mateusz R...
 
Question 6
Question 6Question 6
Question 6
 
TGT#9 - Protractor: Ng-przyjazne Selenium - Mateusz Jamiołkowski
TGT#9 - Protractor: Ng-przyjazne Selenium - Mateusz Jamiołkowski TGT#9 - Protractor: Ng-przyjazne Selenium - Mateusz Jamiołkowski
TGT#9 - Protractor: Ng-przyjazne Selenium - Mateusz Jamiołkowski
 

More from Trójmiejska Grupa Testerska

More from Trójmiejska Grupa Testerska (20)

Rafal prezentacja testowanie ai
Rafal prezentacja testowanie aiRafal prezentacja testowanie ai
Rafal prezentacja testowanie ai
 
Tgt 23 przemyslaw_pradzynski
Tgt 23 przemyslaw_pradzynskiTgt 23 przemyslaw_pradzynski
Tgt 23 przemyslaw_pradzynski
 
TGT#21 - Tester eksploracyjny, ostatni zawód na świecie. – Radosław Smilgin
TGT#21 - Tester eksploracyjny, ostatni zawód na świecie. – Radosław SmilginTGT#21 - Tester eksploracyjny, ostatni zawód na świecie. – Radosław Smilgin
TGT#21 - Tester eksploracyjny, ostatni zawód na świecie. – Radosław Smilgin
 
TGT#19 - Wszyscy jestesmy testerami - Michal Rabczuk
TGT#19 - Wszyscy jestesmy testerami - Michal RabczukTGT#19 - Wszyscy jestesmy testerami - Michal Rabczuk
TGT#19 - Wszyscy jestesmy testerami - Michal Rabczuk
 
TGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert CharewiczTGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert Charewicz
 
TGT#20 - Automated Tests Only For Testers - Kasper Kulikowski
TGT#20 - Automated Tests Only For Testers - Kasper KulikowskiTGT#20 - Automated Tests Only For Testers - Kasper Kulikowski
TGT#20 - Automated Tests Only For Testers - Kasper Kulikowski
 
TGT#20 - TGT in Numbers - Mateusz Radkiewicz
TGT#20 - TGT in Numbers - Mateusz RadkiewiczTGT#20 - TGT in Numbers - Mateusz Radkiewicz
TGT#20 - TGT in Numbers - Mateusz Radkiewicz
 
TGT#19 - 3 seconds or less - Piotr Liss
TGT#19 - 3 seconds or less - Piotr LissTGT#19 - 3 seconds or less - Piotr Liss
TGT#19 - 3 seconds or less - Piotr Liss
 
TGT#18 - End-to-end testing using Protractor - Jakub Raniszewski
TGT#18 - End-to-end testing using Protractor - Jakub RaniszewskiTGT#18 - End-to-end testing using Protractor - Jakub Raniszewski
TGT#18 - End-to-end testing using Protractor - Jakub Raniszewski
 
TGT#18 - BDD with The Three Amigos in API Testing - Julia Szarlej
TGT#18 - BDD with The Three Amigos in API Testing - Julia SzarlejTGT#18 - BDD with The Three Amigos in API Testing - Julia Szarlej
TGT#18 - BDD with The Three Amigos in API Testing - Julia Szarlej
 
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin KubeckiTGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
 
TGT#17 - RestApi testing tips and tricks: how to start testing api of your we...
TGT#17 - RestApi testing tips and tricks: how to start testing api of your we...TGT#17 - RestApi testing tips and tricks: how to start testing api of your we...
TGT#17 - RestApi testing tips and tricks: how to start testing api of your we...
 
TGT#16 - Pain of test automatization in PAAS/SAAS solutions - Krzysztof Lembi...
TGT#16 - Pain of test automatization in PAAS/SAAS solutions - Krzysztof Lembi...TGT#16 - Pain of test automatization in PAAS/SAAS solutions - Krzysztof Lembi...
TGT#16 - Pain of test automatization in PAAS/SAAS solutions - Krzysztof Lembi...
 
TGT#16 - Rozmowa techniczna (short talk) - Waldemar Mozoła
TGT#16 - Rozmowa techniczna (short talk) - Waldemar MozołaTGT#16 - Rozmowa techniczna (short talk) - Waldemar Mozoła
TGT#16 - Rozmowa techniczna (short talk) - Waldemar Mozoła
 
TGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
TGT#16 - Sztuka projektowania testów - Agnieszka GarwolińskaTGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
TGT#16 - Sztuka projektowania testów - Agnieszka Garwolińska
 
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
 
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
 
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
 
TG#13 - Nie samym Selenium człowiek żyje, czyli jak tworzyć stabilne testy fu...
TG#13 - Nie samym Selenium człowiek żyje, czyli jak tworzyć stabilne testy fu...TG#13 - Nie samym Selenium człowiek żyje, czyli jak tworzyć stabilne testy fu...
TG#13 - Nie samym Selenium człowiek żyje, czyli jak tworzyć stabilne testy fu...
 
TGT#12 - Używasz systemów kontroli wersji? No to Git. - Szymon Rękawek
TGT#12 - Używasz systemów kontroli wersji? No to Git. - Szymon RękawekTGT#12 - Używasz systemów kontroli wersji? No to Git. - Szymon Rękawek
TGT#12 - Używasz systemów kontroli wersji? No to Git. - Szymon Rękawek
 

TGT#8 - "Bdd from scratch" - Leszek Prabucki

  • 3. > Invented by Dan North in 2006 > Should solve problem of communication between developers and business pepole base on examples Behavior Driven Development
  • 4. > It evolved from the TDD Behavior Driven Development
  • 7.
  • 8. Potrzeba biznesowa: JAKO użytkownik z rolą księgowego CHCĘ zmienić status faktury na zatwierdzoną oraz wysłać emaila ŻEBY klient mógł dostać fakturę First Attemp
  • 9. Discuss and use business language
  • 10. Potrzeba biznesowa: JAKO Kontroler Finansowy CHCĘ aby po zatwierdzeniu faktury została ona wysłana na zdefiowany e- mail ŻEBY klient mógł zapłacić za usługi Better language
  • 11. Scenariusz: Zatwierdzenie faktury Kiedy zatwierdzę fakturę Wtedy na maila klienta powinna zostać wysłana faktura Oraz faktura powinna zostać oznaczona jako zaakceptowana Scenarios
  • 12. Scenariusz: Zatwierdzenie faktury Zakładając że osobą kontaktową dla klienta "Cocoders Sp. z o.o." jest "Leszek Prabucki" z mailem "l3l0@cocoders.com" Oraz faktura "2015/P/0001-1" z następującymi danymi została wystawiona dla klienta "Cocoders Sp. z o.o.": | Nazwa nabywcy | Cocoders Sp z o.o. | | NIP nabywcy | 9562307984 | | Adres nabywcy | Królowej Jadwigi 1/3, Toruń | | Nazwa usługi nr 1 | Rekrutacje | | Ilość usługi nr 1 | 1 | | Cena usługi nr 1 netto | 5000 | | VAT od usługi nr 1 | 23% | Kiedy zatwierdzę fakturę o numerze "2015/P/0001-1" Wtedy na maila "l3l0@cocoders.com" powinna zostać wysłana faktura Oraz faktura powinna trafić do puli faktur zatwierdzonych Scenarios
  • 13. use BehatBehatContextContext; class AccountantContext implements Context { /** * @When zatwierdzę fakturę o numerze :number */ public function zatwierdzeFaktureONumerze($number) { } } Design base on example
  • 15. QA role in BDD