SlideShare a Scribd company logo
Strategie Automatyzacji Testów
Wiktor Żołnowski
www.agileszkolenia.pl
facebook.com/CodeSprinters
Waterfall vs Agile
Automatyzacja Testów w projektach typu “green field”
● Piramida Testów
● Continuous Integration
● Test-Driven Development
● Behavior-Driven Development
● Continuous Delivery
Testy End-to-end - ~10%
•Testy funkcjonalne - ~20%
•Testy Jednostkowe - ~70%
Piramida Testów
Continuous Integration
Continuous Integration - Praktyki
● Repozytorium Kodu
● Automatyczny Build
● Każda zmiana jest testowana w środowisku testowym
● Build powinien być samo-testujący się
● Build powinien być szybki
● Środowisko testowe odpowiada środowisku produkcyjnemu
● Łatwy dostęp do wyników testów oraz ostatniej działającej
wersji
● Każdy widzi wyniki
● Automatyczny deployment
Continuous Integration – Repozytorium kodu
● Wszystkie artefakty są wersjonowane w repozytorium kodu
● Zmiany są commitowane i integrowane jak najczęściej –
przynajmniej raz dziennie
● Ilość rozgałęzień w repozytorium powinna być zredukowana do
minimum – zmiany powinny być ciągle integrowane.
Continuous Integration – Automatyczny Build
● Powinna być możliwość zbudowania całego systemu za pomocą
jednej komendy.
● Narzędzia takie jak make, ant, maven, nuget, rake, DEB, RPM,
MSI mogą okazać się pomocne.
● Automatyzacja budowania oprogramowania powinna zawierać w
sobie instalację tego oprogramowania we wspólnym środowisku
testowym
Continuous Integration – Testy Automatyczne
● Każda zmiana powinna być przetestowana za pomocą
automatycznych testów.
● Serwer Continuous Integration powinien budować aplikacje,
instalować ją w środowisku testowym oraz uruchamiać testy.
Continuous Integration – Szybki Build
Continuous Integration – Łatwy dostęp do ostatniej
działąjącej wersji
Continuous Integration
Test-Driven Development
Test First Development
Testowanie to forma dostarczania
informacji zwrotnej na temat tego czy i
jak testowane oprogramowanie działa.
Im szybciej i częściej dostarczana jest
informacja o działaniu aplikacji tym
bardziej jest ona wartościowa.
TFD polega na utworzeniu pętli
dostarczającej częstą i trafną informację
dla jak najmniejszych wprowadzanych
zmian.
Pętla Test First
1. Napisz test
2. Uruchom test
3. Wprowadź zmianę
4. Uruchom testy
Test F.I.R.S.T
FAST: Testy powinny być szybkie.
INDEPENDENT: Testy powinny być niezależne.
REPEATABLE: Testy powinny być powtarzalne.
SELF VALIDATING: Testy powinny dawać jednoznaczną
odpowiedź na temat tego czy oprogramowanie działa.
TIMELY: Testy powinny być pisane w odpowiednim
momencie.
Fast
Co to znaczy, że test jest szybki?
Jeśli testy są zbyt wolne to nie są
uruchamiane wystarczająco
często.
Independent
Kolejność uruchamiania testów nie
powinna mieć znaczenia.
Powinna być możliwość
uruchomienia każdego testu w
odizolowaniu od pozostałych.
Jeśli jeden test nie przejdzie wyniki
pozostałych nie powinny być od
tego zależne.
Repeatable
Bez zmian w funkcjonalności testy
zawsze powinny dawać takie same
wyniki.
Testy powinny być niezależne od
środowiska na którym są
uruchamiane.
Koniec z tekstami:
"A u mnie działa".
Self Validating
Testy dostarczają informacji
zwrotnej czyli jednoznacznej
odpowiedzi na temat tego czy i jak
działa wytwarzane
oprogramowanie.
Informacja o statusie testów nie
powinna wymagać żadnej
ingerencji testera czy developera.
Timely
Testy powinny być pisane przed
kodem produkcyjnym.
Odkładanie pisania testów na "po
kodzie produkcyjnym" nie ma sensu
gdyż wtedy testy już nie są przeważnie
nam potrzebne.
Pisanie testów po kodzie powoduje, że
rosną koszty ich wytworzenia i
utrzymania.
Test-Driven Development
Oprócz testów do naszej pętli
dodajemy jeszcze projektowanie
architektury.
TDD = TFD + Refactoring
TDD opiera się na wytwarzaniu oprogramowania w bardzo
małych krokach.
W jednym kroku piszemy jeden test i jedną małą
funkcjonalność.
Nie dotykamy kodu funkcjonalności, gdy nie mamy
napisanego testu, który nie przechodzi.
Pętla TDD
Dyscyplina
Zgodnie z definicją wszystko wydaje się być proste.
W praktyce okazuje się, że potrzebna jest bardzo duża dyscyplina
by przestrzegać powyższych zasad.
Nad własną dyscypliną trzeba wytrwale pracować.
Dwie podstawowe zasady
Piszemy kod nowej funkcjonalności tylko gdy testy nie przechodzą.
Usuwamy wszystkie duplikacje na które natrafimy.
Efekt
Każdy pisze testy, gdyż nie ma czasu na czekanie aż ktoś inny zrobi to za
nas.
Kod tworzony jest na podstawie świadomie podjętych decyzji zasilonych
informacją z testów.
Każdy nawet najmniejszy element aplikacji jest przemyślany i
odpowiednio zaprojektowany.
Szybka informacja zwrotna podczas wprowadzania bardzo małych zmian
pozwala na łatwe wykrywanie błędów.
Architektura wyłania się dzięki bardzo małym krokom i ciągłemu
refactoringowi...
TDD jest przede wszystkim techniką
tworzenia specyfikacji i architektury
wyłaniającej się.
Testy są efektem ubocznym.
Testy powstałe przy użyciu TDD to nie
wszystko.
Dobrze napisane testy są wykonywalną
dokumentacją kodu
Czym jest TDD
Wymagania i specyfikacja– czyli to, co testujemy
1. Jaki mamy cel biznesowy?
2. Co chce osiągnąć interesariusz?
3. Jakie możliwości powinien dostarczać nasz produkt by osiągnąć
cel interesariusza?
4. Jak ta funkcjonalność ma wyglądać?
5. Jak ta funkcjonalność ma zostać zaimplementowana?
Behavior Driven Development
Behavior Driven Development – User Stories
In order to <goal>
As a <stakeholde>
I want <action>
Behavior Driven Development – User Stories
In order to log in into application
As a user
I want log in to application
Behavior Driven Development – User Stories
In order to provide limited access to sensitive user data
As a registered user
I would like to have possibility of authentication
In order to have possibility to send SPAM to users
As a business owner
I would like to have possibility to ask users for their email address
Behavior Driven Development – User Stories
In order to...
As a...
I would like to...
Behavior Driven Development – Scenariusze
//GIVEN
...kontekst...
//WHEN
...akcja...
//THEN
...walidacja...
Page Object Pattern + BDD
A teraz... Kodzik...
Continuous Delivery
Automatyzacja Testów w projektach typu “legacy”
● Legacy Code
● Odwrócona Piramida Testów
● Refaktoring
Testy End-to-end
Testy Funkcjonalne/Integracyje
Testy Jednostkowe
Jak wygląda oprogramowanie idealne?
Testy End-to-end
Testy Funkcjonalne/Integracyje
Testy Jednostkowe
Dlaczego więc wygląda to tak?
Testy End-to-end
Dług techniczny...
Testy End-to-end
Dług techniczny...
Dlaczego automatyzujemy testy?
Bezpieczeństwo...
Odwaga...
Testy End-to-end
Testy Funkcjonalne/Integracyje
Testy Jednostkowe
Testy End-to-end
Testy Funkcjonalne/Integracyje
Testy Jednostkowe
Tak, jasne...
Czasami piramida testów wygląda jakoś tak...
Testy End-to-end
Testy funkcjonalne/integracyjne
Testy Jednostkowe
Teraz mamy odwagę!
Czas...
Problemy z utrzymaniem...
Debugowanie...
Odwracamy piramidę
•Piszemy testy end-to-end
tylko po to, by umożliwić
refaktoryzację kodu na
niższych poziomach.
•Tworzymy testy
jednostkowe
•Usuwamy testy end-to-
end!
Strategie automatyzacji testow
Zadowolony developer
Strategie automatyzacji testow
Wiktor Żołnowski
www.agileszkolenia.pl
http://blog.testowka.pl
facebook.com/CodeSprinters
wiktor.zolnowski@gmail.com

More Related Content

PDF
Non-Functional testing
Kanoah
 
PDF
Función del analizador léxico.pdf presentacion
EmanuelMuoz11
 
PPTX
Cucumber BDD
Pravin Dsilva
 
PPTX
User interfaces for mobile applications
K Senthil Kumar
 
PPTX
Std 10 computer chapter 10 introduction to c language (part1)
Nuzhat Memon
 
PPTX
The Myths and Facts Surrounding Software Testing
Software Testing Solution
 
PPSX
Test Complete
RomSoft SRL
 
PPTX
Compiler
Achyuth Dorasala
 
Non-Functional testing
Kanoah
 
Función del analizador léxico.pdf presentacion
EmanuelMuoz11
 
Cucumber BDD
Pravin Dsilva
 
User interfaces for mobile applications
K Senthil Kumar
 
Std 10 computer chapter 10 introduction to c language (part1)
Nuzhat Memon
 
The Myths and Facts Surrounding Software Testing
Software Testing Solution
 
Test Complete
RomSoft SRL
 

What's hot (20)

PPTX
Basics in software testing
TOPS Technologies
 
PPTX
Introduction to Kotlin for Android developers
Mohamed Wael
 
PDF
Intro to programming and how to start that career
Tarek Alabd
 
PPTX
Flutter talkshow
Nhan Cao
 
PDF
Wzorce projektowe w automatyzacji testów aplikacji webowych
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
PPTX
Regression testing
Harsh verma
 
PPTX
INTRODUCTION TO FLUTTER BASICS.pptx
20TUCS033DHAMODHARAK
 
PPTX
Firefox os ppt
Sourav Halder
 
PDF
ISTQB Performance Tester Sample Questions' Answers
Neeraj Kumar Singh
 
PDF
Unit and integration Testing
David Berliner
 
PPT
Software Testing
Mousmi Pawar
 
PDF
An introduction to Google test framework
Abner Chih Yi Huang
 
PDF
flutter.school #HelloWorld
Frederik Schweiger
 
PPTX
Software Testing: History, Trends, Perspectives - a Brief Overview
Softheme
 
PPTX
What is Flutter
Malan Amarasinghe
 
PPT
Day 4: Android: UI Widgets
Ahsanul Karim
 
PPTX
Automation Tools Overview
Murageppa-QA
 
PPTX
Programming language
Shuja Qais
 
PPT
Test link
DialogWebdesign
 
PPTX
Seven testing principles
Vaibhav Dash
 
Basics in software testing
TOPS Technologies
 
Introduction to Kotlin for Android developers
Mohamed Wael
 
Intro to programming and how to start that career
Tarek Alabd
 
Flutter talkshow
Nhan Cao
 
Wzorce projektowe w automatyzacji testów aplikacji webowych
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
Regression testing
Harsh verma
 
INTRODUCTION TO FLUTTER BASICS.pptx
20TUCS033DHAMODHARAK
 
Firefox os ppt
Sourav Halder
 
ISTQB Performance Tester Sample Questions' Answers
Neeraj Kumar Singh
 
Unit and integration Testing
David Berliner
 
Software Testing
Mousmi Pawar
 
An introduction to Google test framework
Abner Chih Yi Huang
 
flutter.school #HelloWorld
Frederik Schweiger
 
Software Testing: History, Trends, Perspectives - a Brief Overview
Softheme
 
What is Flutter
Malan Amarasinghe
 
Day 4: Android: UI Widgets
Ahsanul Karim
 
Automation Tools Overview
Murageppa-QA
 
Programming language
Shuja Qais
 
Test link
DialogWebdesign
 
Seven testing principles
Vaibhav Dash
 
Ad

Viewers also liked (20)

PDF
Ewa Bielska: Testowanie aplikacji mobilnych
Geek Girls Carrots Poznan
 
ODP
People are awesome - ALE 2014
Wiktor Żołnowski
 
ODP
Bdd and Agile Requirements
Wiktor Żołnowski
 
PDF
Ui testing with espresso
Droidcon Spain
 
POT
Fast deterministic screenshot tests for Android
Arnold Noronha
 
PDF
Android Espresso
Armando Picón Z.
 
PPTX
Tech Talk #5 : Android Automation Test with Espresso - Trần Văn Toàn
Nexus FrontierTech
 
PDF
Espresso testing
vodqancr
 
PPTX
Testing android apps with espresso
Édipo Souza
 
ODP
Stickies on the wall will not help you if you are building crappy software
Wiktor Żołnowski
 
PPT
A little bird told me... about a good page in your user guide
Sarah Maddox
 
ODP
Abe 2012
Wiktor Żołnowski
 
ODP
Continuous Delivery - kolejny krok na drodze do Agile - Quality Excites 2014
Wiktor Żołnowski
 
PDF
Frameworki agilowe w obszarze testow - Monika Braun
Women in Technology Poland
 
ODP
Sqa days2013
Wiktor Żołnowski
 
ODP
Xp days ukraine 2012
Wiktor Żołnowski
 
PDF
Monika Braun - Agile Test Team
kraqa
 
ODP
Bdd and Agile Requirements Boiling Frogs 2016
Wiktor Żołnowski
 
PDF
Bogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowania
Geek Girls Carrots Poznan
 
PPTX
selenium grid & docker
Łukasz Rosłonek
 
Ewa Bielska: Testowanie aplikacji mobilnych
Geek Girls Carrots Poznan
 
People are awesome - ALE 2014
Wiktor Żołnowski
 
Bdd and Agile Requirements
Wiktor Żołnowski
 
Ui testing with espresso
Droidcon Spain
 
Fast deterministic screenshot tests for Android
Arnold Noronha
 
Android Espresso
Armando Picón Z.
 
Tech Talk #5 : Android Automation Test with Espresso - Trần Văn Toàn
Nexus FrontierTech
 
Espresso testing
vodqancr
 
Testing android apps with espresso
Édipo Souza
 
Stickies on the wall will not help you if you are building crappy software
Wiktor Żołnowski
 
A little bird told me... about a good page in your user guide
Sarah Maddox
 
Continuous Delivery - kolejny krok na drodze do Agile - Quality Excites 2014
Wiktor Żołnowski
 
Frameworki agilowe w obszarze testow - Monika Braun
Women in Technology Poland
 
Sqa days2013
Wiktor Żołnowski
 
Xp days ukraine 2012
Wiktor Żołnowski
 
Monika Braun - Agile Test Team
kraqa
 
Bdd and Agile Requirements Boiling Frogs 2016
Wiktor Żołnowski
 
Bogna Majchrzak, Magda Traciłowska - Tester jako strażnik jakości oprogramowania
Geek Girls Carrots Poznan
 
selenium grid & docker
Łukasz Rosłonek
 
Ad

Similar to Strategie automatyzacji testow (20)

PPTX
Testowanie automatyczne 2024 INCO Academy
Katarzyna Javaheri-Szpak
 
PPTX
Podstawy testowania oprogramowania INCO 2023.pptx
Katarzyna Javaheri-Szpak
 
PDF
university day 1
Sławomir Borowiec
 
PDF
Techniczna organizacja zespołu
intive
 
PPTX
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
SPARK MEDIA
 
ODP
Testy wydajnościowe - najlepsze praktyki - Kuba Gajda
Bartłomiej Cymanowski
 
PDF
Automatyzacja w praktyce. Praktyka automatyzacji
Radoslaw Smilgin
 
PPSX
MS - Wprowadzenie do testów jednostkowych
Marcin Samsonowski
 
PPTX
Kariera it Sopot
neoteric-eu
 
PDF
SkładQA 2018 - Daniel Dec
kraqa
 
ODP
Few Questions about Continuous Delivery
Wiktor Żołnowski
 
PDF
Produkcja aplikacji internetowych
Tomasz Borowski
 
PDF
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
kraqa
 
PDF
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
Future Processing
 
PDF
Agile & Scrum podstawy
Mateusz Żeromski
 
PDF
Matka, żona, i...testerka
testuj.pl
 
PPTX
Wstęp do Agile
Ryszard Krakowiak
 
PPT
Bezstratna kompresja listy przypadków testowych
Piotr Piotrowski
 
PPTX
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
Infoshare
 
PPTX
Skok na naderwanym bungee, czyli agile bez automatyzacji
Witold Bołt
 
Testowanie automatyczne 2024 INCO Academy
Katarzyna Javaheri-Szpak
 
Podstawy testowania oprogramowania INCO 2023.pptx
Katarzyna Javaheri-Szpak
 
university day 1
Sławomir Borowiec
 
Techniczna organizacja zespołu
intive
 
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
SPARK MEDIA
 
Testy wydajnościowe - najlepsze praktyki - Kuba Gajda
Bartłomiej Cymanowski
 
Automatyzacja w praktyce. Praktyka automatyzacji
Radoslaw Smilgin
 
MS - Wprowadzenie do testów jednostkowych
Marcin Samsonowski
 
Kariera it Sopot
neoteric-eu
 
SkładQA 2018 - Daniel Dec
kraqa
 
Few Questions about Continuous Delivery
Wiktor Żołnowski
 
Produkcja aplikacji internetowych
Tomasz Borowski
 
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
kraqa
 
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
Future Processing
 
Agile & Scrum podstawy
Mateusz Żeromski
 
Matka, żona, i...testerka
testuj.pl
 
Wstęp do Agile
Ryszard Krakowiak
 
Bezstratna kompresja listy przypadków testowych
Piotr Piotrowski
 
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
Infoshare
 
Skok na naderwanym bungee, czyli agile bez automatyzacji
Witold Bołt
 

Strategie automatyzacji testow