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
4
Fundamenty BDD
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.
6
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
8
3 Zasady BDD
1. Enough is enough2. Deliver stakeholder value3. It`s all about behaviour
9
BDD or Traditional
10
BDD or Traditional
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
12
Selenium WebDriver
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
14
Selenium WebDriver
Selenium 1.0 WebDriver
MERGE
SELENIUM WEBDRIVER
Selenium IDESelenium RCSelenium Grid
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
16
Ogolne podejście
17
Użycie Page Object
18
Użycie Page Object
19
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.
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
22
Cykl życia Serenity BDD
23
Definiowanie wymagań
Wyrażane jako User Stories z kryteriami akceptacji, ktore pomagają opisać wymagania – to właśnie je automatyzujemy!
24
Mapowanie wymagań
Mapowanie wymagań na kryteria akceptacji za pomocą narzędzi BDD – jBehave, cucumber.
25
Implementacja testu
Implementacja testow automatycznych w oparciu o Selenium WebDriver
26
Raport z testow
27
Raport z pokrycia testow
28
Demo Example
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/