Automated Tests in Agile based on Serenity BDD - Michał Szybalski

30

Transcript of Automated Tests in Agile based on Serenity BDD - Michał Szybalski

Page 1: Automated Tests in Agile based on Serenity BDD - Michał Szybalski
Page 2: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

Automated Tests in Agile

based on Serenity BDD

Michał Szybalski

Page 3: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

3

Agenda

1. Fundamenty BDD2. Selenium WebDriver3. Serenity BDD - Automated Acceptance

Testing with Style4. Demo Test Example5. Q&A

Page 4: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

4

Fundamenty BDD

Page 5: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

5

Behavior-Driven Development (BDD ) jest zwinna techniką wytwarzania oprogramowania w oparciu o konkretną strukturę formułowania wymagań. Polega na tworzeniu oprogramowania przez opisywanie jego zachowania, z perspektywy jego udziałowcow.

Page 6: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

6

Page 7: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

7

Założenia1. ustalenie celow wszystkich zainteresowanych

stron potrzebnych do realizacji wizji2. zaangażowanie stackholderow w proces

tworzenia oprogramowania3. stworzenie przykładow opisujących sposob

działania aplikacji4. automatyzacja wyżej wymienionych

przykładow i możliwość jej poźniejszego wykorzystania w regresji

5. wykorzystanie mockow w celu umożliwienia symulacji oprogramowania z modułami, ktore nie zostały jeszcze stworzone

Page 8: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

8

3 Zasady BDD

1. Enough is enough2. Deliver stakeholder value3. It`s all about behaviour

Page 9: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

9

BDD or Traditional

Page 10: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

10

BDD or Traditional

Page 11: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

11

BDD vs TDDTDD means writing a test that fails because the specified functionality doesn't exist, then writing the simplest code that can make the test pass – development practise

BDD means creating an executable specification that fails because the feature doesn't exist, then writing the simplest code that can make the spec pass – team methology

Page 12: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

12

Selenium WebDriver

Page 13: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

13

Selenium - zestaw narzędzi do automatyzacji przeglądarek internetowych na wielu platformach

WebDriver – koncepcja sterownikow, ktora umożliwia bezpośrednią komunikację i kontrolę przeglądarek internetowych

Page 14: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

14

Selenium WebDriver

Selenium 1.0 WebDriver

MERGE

SELENIUM WEBDRIVER

Selenium IDESelenium RCSelenium Grid

Page 15: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

15

Page Object Pattern

Page Object Pattern – technika strukturyzaji kodu testu, ktora:

• Promuje re-użycie i redykcje duplikatow w kodzie• Czyni testy bardziej czytelnymi• Usprawnia zarządzanie testami

Page 16: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

16

Ogolne podejście

Page 17: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

17

Użycie Page Object

Page 18: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

18

Użycie Page Object

Page 19: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

19

Page 20: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

20

Serenity BDD

Serenity BDD – biblioteka open source, pomagająca tworzyć automatyczne testy akceptacyjne i regresji

Serenity informuje nie tylko jakie testy zostały wykonane, ale co ważniejsze, jakie wymagania zostały przetestowane.

Page 21: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

21

Głowne cechy

o elastyczniejsze testyo łatwiejsze zarządzanie testamio przejrzyste raporty z testowo mapowanie testow na wymaganiao mierzy jak wiele cech aplikacji jest

faktycznie testowana

Page 22: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

22

Cykl życia Serenity BDD

Page 23: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

23

Definiowanie wymagań

Wyrażane jako User Stories z kryteriami akceptacji, ktore pomagają opisać wymagania – to właśnie je automatyzujemy!

Page 24: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

24

Mapowanie wymagań

Mapowanie wymagań na kryteria akceptacji za pomocą narzędzi BDD – jBehave, cucumber.

Page 25: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

25

Implementacja testu

Implementacja testow automatycznych w oparciu o Selenium WebDriver

Page 26: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

26

Raport z testow

Page 27: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

27

Raport z pokrycia testow

Page 28: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

28

Demo Example

Page 29: Automated Tests in Agile based on Serenity BDD - Michał Szybalski

29

1.Introducing BDD - Dan North https://dannorth.net/introducing-bdd/

2.BDD in Action – John Ferguson Smart, 2015

3.http://behaviour-driven.org4.http://www.thucydides.info/

Page 30: Automated Tests in Agile based on Serenity BDD - Michał Szybalski