SlideShare una empresa de Scribd logo
1 de 48
Klient
0 Korporacja specjalizująca się w tworzeniu

oprogramowania dla użytkowników transportu
publicznego i prywatnego
0 Bogaty portfel projektów, od aplikacji internetowych
po aplikacje na urządzenia mobilne, webowe i
natywne
Problem
0Częste release jak poradzić sobie z

zapewnieniem jakości dla kolejnych wersji
oprogramowania ułatwiającego korzystanie z
komunikacji miejskiej w Wielkiej Brytanii?

0Wiele klientów dedykowane rozwiązania pod
wybrane obszary Wielkiej Brytanii o zbliżonej
funkcjonalności

0Wiele aplikacji wachlarz implementacji... od

aplikacji internetowych po aplikacje internetowe
mobilne oraz natywne mobilne
Rozwiązanie
0Automatyzacja testowania bo przecież warto
zlecić maszynie mało rozwijające, nużące i
powtarzalne zadania i skupić się na ciekawszych
problemach
Poziomy testów
Warstwy problemu
Implementacja
Narzędzia
Architektura
Opis
przypadku

Warstwa
pośrednia
Wywołania
API
Opis Przypadku
Warstwa Pośrednia
Wywołania API
Ograniczenia
0 Co z osobami, które nie mają doświadczenia w

programowaniu... Czy oni mogą tworzyć
automatyczne skrypty?

0 Przy dobrej architekturze mogą tworzyć

automatyczne przypadki testowe, skorzystać ze
stworzonych kroków testowych
Techniki i Dobre Praktyki
Page Objects
0 Niech nasza strona bedzie zbudowana z

komponentów, obiektów, specjalizujących się w
wybranych funkcjach

HomePage
*SearchPane
- (void) search(String term)
*ResultsPane
- (Collection<SearchResult>)
getResults()
Page Factory
0 Zamiast ręcznie wyszukiwać elementy użyj czytelnych anotacji

@FindBy(how = How.NAME, using = "q")
private WebElement searchBox;
0 Skorzystaj z opóźnionego wyszukiwania przy AJAX

ElementLocatorFactory finder = new
AjaxElementLocatorFactory(
this.driver, TIMEOUT);
PageFactory.initElements(finder, this);
Loadable Components
0 Niech twoje narzędzie samo zarządza wczytywaniem odpowiednich

PageObjects i sprawdzaniem ich poprawności

@Override
protected void load() {
driver.get("http://code.google.com/p/selenium/issues/en
try");
}
@Override
protected void isLoaded() throws Error {
String url = driver.getCurrentUrl();
assertTrue("Not on the issue entry page: " + url,
url.endsWith("/entry"));
}
Data Driven Testing
0 Generuj nowe dane testowe z różnych podzbiorów,

testuj swoje oprogramowanie zbiorami rozmytymi,
nie popadaj w rutynę! Staraj sie tworzyć unikalne
zbiory testowe, by jeszcze bardziej uniezależnić swoje
testy.
Wstrzykiwanie kontekstu
0 Korzystaj z narzędzi umożliwiających zarządzanie

kontekstem poprzez wstrzykiwanie. Wstrzykuj
inormacje o środowisku testowym, wstrzykuj
informacje o testowanym serwisie, dane testowe,
reguły tworzenia obiektów, etc.
Set up & Tear down
0 Korzystaj z Set up i Tear down do generacji

unikalnych danych testowych i tworzenia
odpowiedniej konfiguracji bazy danych i innych
zależności, dzięki czemu będziesz w stanie tworzyć
testy niezależne, które będziesz w stanie uruchomić
jednocześnie na wielu maszynach.
Środowisko
Rozproszone

Stabilne

Zróżnicowane

Kompletne
Środowisko Rozproszone
Rozproszony Web
Rozproszony Web
0 WebDriver Grid2
Konfiguracja mastera
java -jar selenium-server-standalone-2.14.0.jar role hub
Konfiguracja slave
java -jar selenium-server-standalone-2.14.0.jar role node -hub
http://localhost:4444/grid/register
Nawiązanie połączenia
WebDriver driver = new RemoteWebDriver(new
URL("http://localhost:4444/wd/hub"), capability);
Rozproszony Mobile Web
Rozproszony Mobile Web
0 WebDriver Android

Instalacja i inicjalizacja
adb -s <serialId> -e install -r
server.apk

android-

adb -s <serialId> shell am start -a
android.intent.action.MAIN -n
org.openqa.selenium.android.app/.MainActivi
ty
adb -s <serialId> forward tcp:8080 tcp:8080
Rozproszony Native Mobile
Rozproszony Native Mobile
0 Jenkins Master-Slave
1. Przyłączanie Slave
2. Konfiguracja Środowiska Developerskiego
3. Stworzenie Joba na Jenkinsie wywoływanego na

konkretnym Slave
4. Oskryptowanie Joba o tworzenie instancji emulatora
i zbieranie wyników testów z emulatora
Środowisko Zróżnicowane
Urządzenia

Przeglądarki

Konfiguracje
testowe

Rozdzielczości

Systemy
operacyjne
Zróżnicowany Web
Internet
Explorer
8

Chrome
Firefox

Przeglądarki

Opera

Internet
Explorer
9
Zróżnicowany Web
0 Popularność przeglądarek...

Chrome
44.06%
Internet Explorer
22.08%
Firefox
18.17%
Zróżnicowany Web
Mac OS X
Lion

Windows
Vista
Windows
7

Systemy
operacyjne

Windows
XP

Ubuntu
12.04
Zróżnicowany Web
0 Popularność systemów operacyjnych...

Windows 7
44.72%
Windows XP
38.31%
Zróżnicowany Mobile Web
Emulat
ory

iPhone
Android

Urządzenia
Black
Berry

Rzeczywi
ste
Zróżnicowany Mobile Web
iPhone
5.X

Android
2.3.X
Android
2.2

Wersje
Oprogramowania

Android
4.0.X

Android
3.X
Zróżnicowany Native Mobile
Rootowane
Urządzenia
Emulatory

Android
Zróżnicowany Native Mobile
Android
2.3.X
Android
2.2

Wersje

Oprogramowania

Android
4.0.X

Android
3.X
Zróżnicowany Native Mobile
0 Popularność wersji systemu Android...

4.2.x
1.6%

Jelly Bean

4.1.x Jelly Bean
14.9%

4.0.x Ice Cream Sandwich
28.6%
Środowisko Stabilne
Stabilne Środowisko
0 Przydatne narzędzia
0 PsExec – zdalna kontrola nad maszynami z systemem
Windows z poziomu linii poleceń
0 Ssh – zdalna kontrola nad maszynami z systemem Linux z
poziomu linii poleceń
0 CCleaner – czyszczenie cache i historii aplikacji, przeglądarek,
systemu operacyjnego
0 VMRun – zdalna kontrola nad maszynami VMWare,
restartowanie, przywracanie obrazów, z poziomu linii poleceń
0 Adb – kontrola nad emulatorami Androida z poziomu linii
poleceń
Zarządzanie
Zarządzanie Przypadkami
Testowymi
0 Scenariusze w BDD - Cucumber

Feature: As a user I want to find places and nearby stops
@web @mobile
Scenario Outline: As a user I want to places matching my
choice
Given I navigated to the home page
When I search for <place> from the home page
Then the following list of matched places is returned
| name
| postcode
|
| <first-name>
| <first-postcode>
|
| <second-name>
| <second-postcode>
|
| <third-name>
| <third-postcode>
|
| <fourth-name>
| <fourth-postcode>
|
Zarządzanie Przypadkami
Testowymi
0 TestLink
Zarządzanie Przypadkami
Testowymi
0 Behave for JIRA
Zarządzanie Konfiguracjami
Testowymi
0 Narzędzia
0 Maven
0 PicoContainer
0 Jenkins
0 Technika
0 Parametryzowanie
0 Wstrzykiwanie
0 Rezultat
0 Możliwość definiowania konfiguracji testowej w pliku XML
0 Możliwość uruchamiania testów dla odpowiedniej konfiguracji z
poziomu lini poleceń
0 Rozszerzalność konfiguracji
0 Definicje uruchomień dla różnych konfiguracji
Zarządzanie Harmonogramem
Testów
0 Narzędzia
0 Jenkins

0 Technika
0 Nasłuchiwanie na wykonanie projektu nadrzędnego
0 Wykonywanie z zadaną częstotliwością
0 Rezultat
0 Okresowa kontrola jakości projektu
Zarządzanie Rezultatami
Testów
0 Raporty
Zarządzanie Rezultatami
Testów
0 Zrzuty ekranów
@After
public void closeDriver(ScenarioResult scenario) {
if (scenario.isFailed()) {
captureScreenshot();
}

{

if (!takenScreenshots.isEmpty()) {
for (byte[] screenshot : takenScreenshots) {
try {
scenario.embed(screenshot, IMAGE_PNG);
} catch (WebDriverException somePlatformsDontSupportScreenshots)
System.err.println(somePlatformsDontSupportScreenshots
.getMessage());
}
}
}

}

Más contenido relacionado

Destacado

Destacado (20)

ŁódQA - Session based testing
ŁódQA - Session based testingŁódQA - Session based testing
ŁódQA - Session based testing
 
Automatyzacja Testowania Web20
Automatyzacja Testowania Web20Automatyzacja Testowania Web20
Automatyzacja Testowania Web20
 
Behaviour Driven Development
Behaviour Driven DevelopmentBehaviour Driven Development
Behaviour Driven Development
 
DailyArt – jak zaprojektować aplikację mobilną kochaną przez ludzi?/WUD Siles...
DailyArt – jak zaprojektować aplikację mobilną kochaną przez ludzi?/WUD Siles...DailyArt – jak zaprojektować aplikację mobilną kochaną przez ludzi?/WUD Siles...
DailyArt – jak zaprojektować aplikację mobilną kochaną przez ludzi?/WUD Siles...
 
Koncert życzeń + niekończące się zmiany w koncepcji = katastrofa? Jak to posk...
Koncert życzeń + niekończące się zmiany w koncepcji = katastrofa? Jak to posk...Koncert życzeń + niekończące się zmiany w koncepcji = katastrofa? Jak to posk...
Koncert życzeń + niekończące się zmiany w koncepcji = katastrofa? Jak to posk...
 
Czy warstwa sprzętowa wyklucza testy automatyczne?
Czy warstwa sprzętowa wyklucza testy automatyczne?Czy warstwa sprzętowa wyklucza testy automatyczne?
Czy warstwa sprzętowa wyklucza testy automatyczne?
 
Jak aspekty uporządkują twój kod.
Jak aspekty uporządkują twój kod.Jak aspekty uporządkują twój kod.
Jak aspekty uporządkują twój kod.
 
Jakość jest w nas
Jakość jest w nasJakość jest w nas
Jakość jest w nas
 
Biznes nie dorósł do Agile.
Biznes nie dorósł do Agile.Biznes nie dorósł do Agile.
Biznes nie dorósł do Agile.
 
Wydajne API dla aplikacji mobilnych
Wydajne API dla aplikacji mobilnychWydajne API dla aplikacji mobilnych
Wydajne API dla aplikacji mobilnych
 
Nie rozwiązuj w testach jednostkowych problemów z testowanym kodem.
Nie rozwiązuj w testach jednostkowych problemów z testowanym kodem.Nie rozwiązuj w testach jednostkowych problemów z testowanym kodem.
Nie rozwiązuj w testach jednostkowych problemów z testowanym kodem.
 
Bilans korzyści i kosztów z automatyzacji.
Bilans korzyści i kosztów z automatyzacji.Bilans korzyści i kosztów z automatyzacji.
Bilans korzyści i kosztów z automatyzacji.
 
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktyka
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktykaMichał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktyka
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktyka
 
Wyboista droga do dobrego kodu. ...
Wyboista droga do dobrego kodu.                                              ...Wyboista droga do dobrego kodu.                                              ...
Wyboista droga do dobrego kodu. ...
 
[FDD 2016] Krzysztof Bartnicki - Wszechświat kontra programista systemów wbud...
[FDD 2016] Krzysztof Bartnicki - Wszechświat kontra programista systemów wbud...[FDD 2016] Krzysztof Bartnicki - Wszechświat kontra programista systemów wbud...
[FDD 2016] Krzysztof Bartnicki - Wszechświat kontra programista systemów wbud...
 
Testy to za mało – czyli słów kilka o jakości w oprogramowaniu: czym jest, ja...
Testy to za mało – czyli słów kilka o jakości w oprogramowaniu: czym jest, ja...Testy to za mało – czyli słów kilka o jakości w oprogramowaniu: czym jest, ja...
Testy to za mało – czyli słów kilka o jakości w oprogramowaniu: czym jest, ja...
 
Kim jest Agile Coach?
Kim jest Agile Coach?Kim jest Agile Coach?
Kim jest Agile Coach?
 
[QE 2015] Jarosław Pałka - Systematyczny architekt na drodze ku planowanemu p...
[QE 2015] Jarosław Pałka - Systematyczny architekt na drodze ku planowanemu p...[QE 2015] Jarosław Pałka - Systematyczny architekt na drodze ku planowanemu p...
[QE 2015] Jarosław Pałka - Systematyczny architekt na drodze ku planowanemu p...
 
TDD – w poszukiwaniu źródeł jakości.
TDD – w poszukiwaniu źródeł jakości.TDD – w poszukiwaniu źródeł jakości.
TDD – w poszukiwaniu źródeł jakości.
 
[QE 2015] Mateusz Kocielski - W każdym programie jest jeszcze jeden błąd
[QE 2015] Mateusz Kocielski - W każdym programie jest jeszcze jeden błąd[QE 2015] Mateusz Kocielski - W każdym programie jest jeszcze jeden błąd
[QE 2015] Mateusz Kocielski - W każdym programie jest jeszcze jeden błąd
 

Similar a Testy akceptacyjne w pigułce.

Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Lukasz Kaluzny
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHP
Wydawnictwo Helion
 
ASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowychASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowych
Wydawnictwo Helion
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie II
Wydawnictwo Helion
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetowe
Wydawnictwo Helion
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Biznes 2.0
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Webhosting.pl
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązania
Wydawnictwo Helion
 

Similar a Testy akceptacyjne w pigułce. (20)

Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.
 
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?
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHP
 
Co z czym i do czego w Microsoft Azure - poznajemy usługi
Co z czym i do czego w Microsoft Azure - poznajemy usługiCo z czym i do czego w Microsoft Azure - poznajemy usługi
Co z czym i do czego w Microsoft Azure - poznajemy usługi
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
ASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowychASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowych
 
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
 
Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólna
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie II
 
Patronage 2016 Windows 10 Warsztaty
Patronage 2016 Windows 10 WarsztatyPatronage 2016 Windows 10 Warsztaty
Patronage 2016 Windows 10 Warsztaty
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetowe
 
Środowisko PWA
Środowisko PWAŚrodowisko PWA
Środowisko PWA
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązania
 
Continuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowychContinuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowych
 

Más de Future Processing

Más de Future Processing (20)

DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_Inżynieria oprogramowania to proces uczenia się.pdfDPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
 
DPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdfDPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdf
 
DPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdfDPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdf
 
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
 
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
 
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
 
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
 
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
 
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
 
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
 
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
 
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
 
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
 
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
 
[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation
 
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
 
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
 

Testy akceptacyjne w pigułce.

Notas del editor

  1. Pokazać pare przykładowych stron, aplikacji na androida, pokazać funkcjonalnośc aplikacji.
  2. Pokazać przykłady aplikacji tworzonych dla web, web mobile i native z jednego portfela.
  3. Zazanczyć, że każda z warstw jest bardzo ważna i rozpatrywanie ich oddzielnie może powodować problemu we wdrażaniu automatyzacji.
  4. Zaznaczyć, że jak w przypadku warstw problemu również należy implementować skrypty zwracając uwagę na wszystkie trzy czynniki.Zaznaczyć, że dobry software tester powinien być również dobrym developerem, gdyż jakość tworzonych skryptów i ich wdrażanie oraz maintenance zależy od jakości jego kodu.
  5. Pokazać przykładowe testy napisane z wykorzystaniem API WebDriver i Robotium.Wskazać wspólne cechy, wskazać różnice.Opisać proces instalacji narzędzi oraz wykonywania testów.
  6. Wspomnieć, że przykładowe rozwiązanie problemu zostanie przedstawione w dalszej części prezentacji.
  7. Narzędzia są niczym bez zastosowania dobrych praktyk tworzenia skryptów automatyzujacych testowanie.Pokazać przykładowe fragmenty kodu bez wykorzystania technik i dobrych praktyk oraz z ich zastosowaniem.Zaprezentować Page Objects i Page Factory, wspomnieć o Data Driven Testing oraz poinformować, że przykad tej techniki będzie pokazany w późniejszej cześci wykładu.Wskazać argumenty za stosowanie dobrych praktyk, rozszerzalność, czytelność, łatwość zmiany, etc.Przygotowywanie danych testowych pod wilowatkowe wywolanie, korzystanie z set up i tear down, tworzenie wlasnych zbiorow danych testowych, niezaleznych testow.
  8. Wszystki trzy składniki tworzą kompletne środowisko.Środowiska powinny być tworzone pod produkty, na podstawie ich specyfikacji.
  9. Omówić zagadnienie rozproszenia na przykładzie komunikacji Master – Slave.
  10. Rozproszenie z wykorzystaniem WebDriver Grida.Pokazać przy pomocy dwu maszyn wirtualnych jak proste jest zestawienie grida.Pokazać jak proste jest połączenie do grida, wybranie przeglądark i odpalenie testu.Pokazać grid firmowy.Wspomnieć, że na jednym slave może być dostępnych wiele przeglądarek oraz, że możliwy jest wybór na której przeglądarce, wraz z wersją, chcemy uruchomić test, poinformować, że idea będzie przedstawiona przy omawianiu zagadnienia zarządzania.
  11. Jenkins jest masterem... ale troszke innym, gdyż nie rozdziela zadań tak jak w przypadku grida.Pokazać jak instaluje się webdriver na emulatorach i urzadzeniach rzeczywistych.Uświadomić róninice pomiędzy webdriver grid a testowaniem webmobile z użyciem iponedriver, czy androidriver.Wspomnieć, że na jednym slave może być dostępnych wiele emulatorów oraz, że możliwy jest wybór na którym emulatorze chcemy uruchomić test, poinformować, że idea będzie przedstawiona przy omawianiu zagadnienia zarządzania.Wspomnięć, że tak samo jak emulatora do slave mogą zostać przyłączone rzeczywiste urządzenia na których mogą być uruchamiane testy.
  12. Rozproszenie za pomocą jenkins master-slave.Pokazać jak proste jest przyłączenie slave do mastera w jenkinsie.Pokazać jak sie definiuje, który job ma być wykorzystywany na jakim slave.Wskazać różnice tego rozwiązania z innymi.Wspomnieć, że na jednym slave może być dostępnych wiele emulatorów oraz, że możliwy jest wybór na którym emulatorze chcemy uruchomić test, poinformować, że idea będzie przedstawiona przy omawianiu zagadnienia zarządzania.Wspomnięć, że tak samo jak emulatora do slave mogą zostać przyłączone rzeczywiste urządzenia na których mogą być uruchamiane testy.
  13. Omówić co tak na prawdę znaczy zróżnicowane, że chodzi o ilość dostępnych, różnych konfiguracji testowych.Wspomnieć w jaki sposób zdefiniować konfiguracje testowe w środowisku, na podstawie dokumentacji projektu, statystyk użytkowania urządzeń, przeglądarek, systemów operacyjnych, czy rzeczywistych statystyk użytkowania aplikacji.
  14. Wspomnięć o różnych przeglądarkach, wersjach przeglądarek, popularyzcji IE w korporacjach, szczególnie niższych wersji ze względu na politykę bezpieczeństa i podejście do tworzenia dedykowanego oprogramowania.
  15. Wspomieć o dostępnych systemach operacyjnych, o tym, że powinny być dzielone na rodziny (rodzina systemów windows), że nie powinniśmy testować np. przeglądarki chrome dla wielu systemów operacyjnych rodziny windows (sandbox).
  16. Wspomnieć o różnych dostępnych rodzinach urządzeń mobilnych, o tym, że testować możemy emulatory i urządzenia rzeczywiste.Poinformować, że chociaż jest dostępny webdriver dla blackberry, jest on jednak bardzo niestabilny i nie będzie omawiany.Poopowiadać troche o developmencie na BlackBerry.
  17. Wspomnieć o różnych systemach operacyjnych na urządzeniach mobilnych.Wspomnięc również o konieczności testowania różnych rożdzielczości, landscape, portrait.
  18. Zaznaczyć, że prezentacja będzie omawiała jedynie testowanie Native Mobile pod Androidem.Chociaż można testować na urządzeniach, to lepiej żeby byłu zrootowane, tj. z dostępem do ciemnych zakamarków pamięci, by odzyskać wyniki testów.
  19. Wspomnięć o konieczności testowania aplikacji na różnych wersjach androida, back capability.
  20. Co to znaczy środowisko stabilne? Takie, które dla każdego przebiegu testów będzie zachowywało się tak samo, nie będzie podatne na zmiany wynikające z czynników zewnętrznych (aktualizacji), jak i przez same testy (zapisywanie informacji w cache, historii, etc.).
  21. Wspomnięć o napotkanych problemach i w jaki sposób je rozwiązano.Wspomnieć o pre, post stepach w Jenkinsie, o dodatkowym serwerze zarządzającym stanem slave i masterem.
  22. Najważniejsza kwestia.Sama implementacja i środowisko jest nieważne, jeżeli nie będziemy w stanie odpowiednio wszystkim zarządzać, otrzymywać odpowiednie rezultaty.Wspomnieć, że często do automatyzacji nie podchodzi się jak do projektu, pomijając kwestie zarządzania, przez co automatyzacja może zakończyć się klęską.
  23. Co tak na prawdę definiuje gdzie jakie testy zostaną uruchomione.Wspomnieć, że automatyzacja to nie tylko automatyzacja przypadków testowych ale również całego procesu.Pokazać na przykładzie jak łatwo definiować kontekst testu, konfigurację testową na jakiej ma zostać wykonany.
  24. Wspomnieć, że nie zawsze wykonywanie testów po każdej zmianie jest optymalne.Testy akceptacyjne po GUI są relatywnie wolne.Wspomnieć o różnych typach testów aumatycznych, jednostkowe, integracyjne, systemowe, akceptacyjne, w jakich częstotliwościach powinny być wykonywane.Wspomnieć o problemie zatykania kolejek uruchomieniowych przez testy automatyczne, o problemie jednoczesnego uruchomienia, ustalenia dobrego harmonogramu.