SlideShare a Scribd company logo
1 of 25
Architektura testów
automatycznych
dla wielomodułowej
aplikacji webowej
Piotr Grzesiak
Toruń, 16 listopada 2017
Agenda
 zarysowanie problemu
 specyfikacja aplikacji,
 dodatkowe warunki,
 rozwiązanie,
 szablon testów automatycznych,
 zastosowanie Artifactory,
 mocne strony rozwiązania,
 słabe strony / napotkane problemy.
Specyfikacja aplikacji
 Wiele modułów:
 moduły pisane przez różne firmy,
 możliwość przekazywania modułów pomiędzy
firmami,
 każdy moduł musi mieć testy automatyczne,
Specyfikacja aplikacji
 Wiele modułów:
 na różnych środowiskach moduły mogą być w
różnych wersjach,
 jeden moduł który odpowiada za osadzanie
pozostałych modułów,
 konieczność pisania testów automatycznych
e2e.
Specyfikacja aplikacji
Warunki dodatkowe
 różny poziom automatyzacji w zespołach,
 skomplikowane procesy biznesowe w
niektórych modułach,
 docelowe wpięcie w proces CI,
 konieczność monitorowania wykonania testów.
Rozwiązanie
 Szablon testów automatycznych:
 Java,
 WebDriver,
 Maven (!),
 Junit,
 Page Object Pattern.
Rozwiązanie
 Szablon testów automatycznych:
 opakowanie akcji Webdrivera,
 parametryzacja wywołania testów,
 używanie suit testowych,
 użycie obiektów danych,
 komentarze w formacie javadoc dla
biznesowych metod w klasach stron,
 Page Object Pattern do kwadratu…
Użycie artifactory w projekcie
Artifactory – Repozytorium artefaktów.
Dwie podstawowe funkcje:
1. Jest źródłem artefaktów, np. bibliotek
potrzebnych do budowania projektu,
2. miejscem przechowywania artefaktów
powstałych w procesie budowania aplikacji.
Użycie artifactory w projekcie
Współdzielenie „silnika” testów
automatycznych
Współdzielenie klas stron Page
Object Pattern
Współdzielenie „silnika” testów
automatycznych
Biblioteka CORE:
- zależności do WebDriver’a, Junit’a,
WebDriverManger’a,
- AbstractPage, AbstractTest,
- Raportowanie do Zephyra (plugin Jiry),
- Klasy konfiguracyjne,
- pozostałe niezbędne zależności.
Współdzielenie „silnika” testów
automatycznych
<dependency>
<groupId>eu.firma.core</groupId>
<artifactId>UItests</artifactId>
<version>1.2.0</version>
</dependency>
Współdzielenie „silnika” testów
automatycznych
Klasy stron w projekcie dziedziczą po
AbstratcPage z biblioteki CORE:
import
eu.firma.core.webpages.AbstractPage;
public class LoginPage extends
AbstractPage{
Współdzielenie „silnika” testów
automatycznych
Klasy testów dziedziczą po AbstractTest z CORE
import tests.AbstractTest;
public class LoginTest extends
AbstractTest {
Współdzielenie klas stron Page
Object Pattern
 Unikalna nazwa projektu i wszystkich pakietów
<groupId>eu.trans.webmessenger</groupId>
 Wspólna nazwa modułu
<artifactId>webdriver-UI-
tests</artifactId>
 Wersja projektu testów odpowiadająca wersji modułu
aplikacji.
<version>0.0.1</version>
 Przechowywanie stron w projekcie w folderze
źródłowym: src/main/java
Współdzielenie klas stron Page
Object Pattern
 Wysyłanie stron do artifactory za pomocą
polecenia:
mvn deploy –DskipTests
Współdzielenie klas stron Page
Object Pattern
 Importowanie stron z artifactory:
<dependency>
<groupId>eu.firma.login</groupId>
<artifactId>UItests</artifactId>
<version>3.4.5</version>
</dependency>
Przykład 1
Test modułu frachtów:
1. Logowanie do systemu,
2. Nawigacja do strony frachtów,
3. Reszta testu.
Przykład 1
Test modułu frachtów:
import eu.firma.login.webpages.LoginPage;
import eu.firma.frame.webpages.FramePage;
1. Logowanie do systemu
FramePage framePage =
loginPage.login(user, password);
2. Nawigowanie do modułu frachtów
FreightsModule fm =
framePage.navigateToFreightsModule();
Przykład 2
Smoke testy używane do monitorowania
środowiska.
 Brak własnego AbstractPage
 AbstractTestLocal dziedziczy po AbstractTest
 Wywołuje tylko metody ze stron modułów.
Przykład 3
Automatyczne testy e2e (To-Do)
Wykorzystanie wyłącznie metod z innych
modułów do zautomatyzowania testów e2e
przez cały system.
Mocne strony
 ograniczenie duplikowania kodu,
 centralne zarządzanie całym framework’iem,
 utrzymywanie jedynie własnych metod,
 szybkie propagowanie zmian w projekcie,
 możliwość wersjonowania testów poprzez
POM
słabe strony / napotkane
problemy
 konieczne zaangażowanie wszystkich zespołów,
 niezbędna doskonała komunikacja,
 niezbędne szybkie reakcje zespołów,
Kłopoty z zależnościami -
JAR Hell
Q & A
Dziękuję
za uwagę

More Related Content

Similar to [TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplikacji webowej

Kariera it Sopot
Kariera it SopotKariera it Sopot
Kariera it Sopotneoteric-eu
 
Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Future Processing
 
Architektura aplikacji android
Architektura aplikacji androidArchitektura aplikacji android
Architektura aplikacji androidSages
 
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjachGoogle App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach3camp
 
AADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptAADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptJacek Okrojek
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.jsWojciech Kaniuka
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Bartlomiej Zass
 
Dostosowanie I Personalizacja Aplikacji Web
Dostosowanie I Personalizacja Aplikacji WebDostosowanie I Personalizacja Aplikacji Web
Dostosowanie I Personalizacja Aplikacji WebMaciej Zbrzezny
 
Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015Grzegorz Bartman
 
Najlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NETNajlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NETMarcin Daczkowski
 
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa ITSCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa ITRedge Technologies
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Dariusz Kacban
 
Wykorzystanie chmury Microsoft Azure w scenariuszach dev&test
Wykorzystanie chmury Microsoft Azure w scenariuszach dev&testWykorzystanie chmury Microsoft Azure w scenariuszach dev&test
Wykorzystanie chmury Microsoft Azure w scenariuszach dev&testJarek Sokolnicki
 
Środowisko testowe pod REST-a
Środowisko testowe pod REST-aŚrodowisko testowe pod REST-a
Środowisko testowe pod REST-aFuture Processing
 
Single Page Applications przy wykorzystaniu REST
Single Page Applications przy wykorzystaniu RESTSingle Page Applications przy wykorzystaniu REST
Single Page Applications przy wykorzystaniu REST3camp
 
Patronage 2016 Windows 10 Warsztaty
Patronage 2016 Windows 10 WarsztatyPatronage 2016 Windows 10 Warsztaty
Patronage 2016 Windows 10 Warsztatyintive
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 

Similar to [TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplikacji webowej (20)

Kariera it Sopot
Kariera it SopotKariera it Sopot
Kariera it Sopot
 
Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.
 
Architektura aplikacji android
Architektura aplikacji androidArchitektura aplikacji android
Architektura aplikacji android
 
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjachGoogle App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach
 
AADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptAADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScript
 
Olga Żądło - Robot Framework
Olga Żądło - Robot FrameworkOlga Żądło - Robot Framework
Olga Żądło - Robot Framework
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?
 
Dostosowanie I Personalizacja Aplikacji Web
Dostosowanie I Personalizacja Aplikacji WebDostosowanie I Personalizacja Aplikacji Web
Dostosowanie I Personalizacja Aplikacji Web
 
Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015
 
JavaEE + OSGi
JavaEE + OSGiJavaEE + OSGi
JavaEE + OSGi
 
Najlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NETNajlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NET
 
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa ITSCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
SCAP – standaryzacja formatów wymiany danych w zakresie bezpieczeństwa IT
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
 
Wykorzystanie chmury Microsoft Azure w scenariuszach dev&test
Wykorzystanie chmury Microsoft Azure w scenariuszach dev&testWykorzystanie chmury Microsoft Azure w scenariuszach dev&test
Wykorzystanie chmury Microsoft Azure w scenariuszach dev&test
 
Środowisko testowe pod REST-a
Środowisko testowe pod REST-aŚrodowisko testowe pod REST-a
Środowisko testowe pod REST-a
 
Single Page Applications przy wykorzystaniu REST
Single Page Applications przy wykorzystaniu RESTSingle Page Applications przy wykorzystaniu REST
Single Page Applications przy wykorzystaniu REST
 
Patronage 2016 Windows 10 Warsztaty
Patronage 2016 Windows 10 WarsztatyPatronage 2016 Windows 10 Warsztaty
Patronage 2016 Windows 10 Warsztaty
 
Grok Artykul
Grok ArtykulGrok Artykul
Grok Artykul
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 

More from Stowarzyszenie Jakości Systemów Informatycznych (SJSI)

More from Stowarzyszenie Jakości Systemów Informatycznych (SJSI) (20)

Star Trek: BDD Enterprise
Star Trek: BDD EnterpriseStar Trek: BDD Enterprise
Star Trek: BDD Enterprise
 
Model based testing as a BA tool
Model based testing as a BA toolModel based testing as a BA tool
Model based testing as a BA tool
 
Communication - Language of Leader
Communication - Language of LeaderCommunication - Language of Leader
Communication - Language of Leader
 
Miękkie umiejętności w pracy analityka biznesu
Miękkie umiejętności w pracy analityka biznesuMiękkie umiejętności w pracy analityka biznesu
Miękkie umiejętności w pracy analityka biznesu
 
Błędy w analizie z praktyki (nowe wydanie  )
Błędy w analizie z praktyki (nowe wydanie  )Błędy w analizie z praktyki (nowe wydanie  )
Błędy w analizie z praktyki (nowe wydanie  )
 
7 Skills for highly effective teams - workshop
7 Skills for highly effective teams - workshop7 Skills for highly effective teams - workshop
7 Skills for highly effective teams - workshop
 
Dancing with the devil - how to cooperate with a problematic customer
Dancing with the devil - how to cooperate with a problematic customerDancing with the devil - how to cooperate with a problematic customer
Dancing with the devil - how to cooperate with a problematic customer
 
Cosmic truths about software requirements
Cosmic truths about software requirementsCosmic truths about software requirements
Cosmic truths about software requirements
 
Zagraj w zaangażowanie
Zagraj w zaangażowanieZagraj w zaangażowanie
Zagraj w zaangażowanie
 
Analiza prawdziwie biznesowa - skąd biorą się projekty
Analiza prawdziwie biznesowa - skąd biorą się projektyAnaliza prawdziwie biznesowa - skąd biorą się projekty
Analiza prawdziwie biznesowa - skąd biorą się projekty
 
Internet of Things loves data - analysis of Industry 4.0
Internet of Things loves data - analysis of Industry 4.0Internet of Things loves data - analysis of Industry 4.0
Internet of Things loves data - analysis of Industry 4.0
 
Start with Accessibility: Why, How and What
Start with Accessibility: Why, How and WhatStart with Accessibility: Why, How and What
Start with Accessibility: Why, How and What
 
Agile business analyst
Agile business analystAgile business analyst
Agile business analyst
 
Analityk i architekt w czasach automatyzacji i robotyzacji biznesu
Analityk i architekt w czasach automatyzacji i robotyzacji biznesuAnalityk i architekt w czasach automatyzacji i robotyzacji biznesu
Analityk i architekt w czasach automatyzacji i robotyzacji biznesu
 
Jak sprzedać swój pomysł w 5 minut, czyli pitch deck dla BA
Jak sprzedać swój pomysł w 5 minut, czyli pitch deck dla BAJak sprzedać swój pomysł w 5 minut, czyli pitch deck dla BA
Jak sprzedać swój pomysł w 5 minut, czyli pitch deck dla BA
 
7 Skills for highly effective teams
7 Skills for highly effective teams7 Skills for highly effective teams
7 Skills for highly effective teams
 
[TestWarez 2017] Skomplikowane testowanie, skomplikowane terminy. Testowanie ...
[TestWarez 2017] Skomplikowane testowanie, skomplikowane terminy. Testowanie ...[TestWarez 2017] Skomplikowane testowanie, skomplikowane terminy. Testowanie ...
[TestWarez 2017] Skomplikowane testowanie, skomplikowane terminy. Testowanie ...
 
[TestWarez 2017] Przychodzi tester na rozmowę...
[TestWarez 2017] Przychodzi tester na rozmowę...[TestWarez 2017] Przychodzi tester na rozmowę...
[TestWarez 2017] Przychodzi tester na rozmowę...
 
[TestWarez 2017] A proper gun makes testing fun
[TestWarez 2017] A proper gun makes testing fun[TestWarez 2017] A proper gun makes testing fun
[TestWarez 2017] A proper gun makes testing fun
 
[TestWarez 2017] Zen testów wydajnościowych
[TestWarez 2017] Zen testów wydajnościowych[TestWarez 2017] Zen testów wydajnościowych
[TestWarez 2017] Zen testów wydajnościowych
 

[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplikacji webowej