10 przykładów Automatyzacji Marketingu w eCommerce - Grzegorz Błażewicz
Strategie automatyzacji testow
-
Upload
wiktor-zolnowski -
Category
Education
-
view
835 -
download
0
Transcript of Strategie automatyzacji testow
Strategie Automatyzacji Testw
Wiktor onowski www.agileszkolenia.plfacebook.com/CodeSprinters
Waterfall vs Agile
Automatyzacja Testw w projektach typu green field
Piramida Testw
Continuous Integration
Test-Driven Development
Behavior-Driven Development
Continuous Delivery
Testy End-to-end -~10%
Testy funkcjonalne - ~20%
Testy Jednostkowe - ~70%
Piramida Testw
Continuous Integration
Continuous Integration - Praktyki
Repozytorium Kodu
Automatyczny Build
Kada zmiana jest testowana w rodowisku testowym
Build powinien by samo-testujcy si
Build powinien by szybki
rodowisko testowe odpowiada rodowisku produkcyjnemu
atwy dostp do wynikw testw oraz ostatniej dziaajcej wersji
Kady widzi wyniki
Automatyczny deployment
Continuous Integration Repozytorium kodu
Wszystkie artefakty s wersjonowane w repozytorium kodu
Zmiany s commitowane i integrowane jak najczciej przynajmniej raz dziennie
Ilo rozgazie w repozytorium powinna by zredukowana do minimum zmiany powinny by cigle integrowane.
Continuous Integration Automatyczny Build
Powinna by moliwo zbudowania caego systemu za pomoc jednej komendy.
Narzdzia 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 wsplnym rodowisku testowym
Continuous Integration Testy Automatyczne
Kada zmiana powinna by przetestowana za pomoc automatycznych testw.
Serwer Continuous Integration powinien budowa aplikacje, instalowa j w rodowisku testowym oraz uruchamia testy.
Continuous Integration Szybki Build
Continuous Integration atwy dostp do ostatniej dziajcej wersji
Continuous Integration
Test-Driven Development
Test First Development
Testowanie to forma dostarczania informacji zwrotnej na temat tego czy i jak testowane oprogramowanie dziaa.
Im szybciej i czciej dostarczana jest informacja o dziaaniu aplikacji tym bardziej jest ona wartociowa.
TFD polega na utworzeniu ptli dostarczajcej czst i trafn informacj dla jak najmniejszych wprowadzanych zmian.
Ptla Test First
Napisz test
Uruchom test
Wprowad zmian
Uruchom testy
Test F.I.R.S.T
FAST: Testy powinny by szybkie.INDEPENDENT: Testy powinny by niezalene.REPEATABLE: Testy powinny by powtarzalne.SELF VALIDATING: Testy powinny dawa jednoznaczn odpowied na temat tego czy oprogramowanie dziaa.TIMELY: Testy powinny by pisane w odpowiednim momencie.
Fast
Co to znaczy, e test jest szybki?
Jeli testy s zbyt wolne to nie s uruchamiane wystarczajco czsto.
Independent
Kolejno uruchamiania testw nie powinna mie znaczenia.
Powinna by moliwo uruchomienia kadego testu w odizolowaniu od pozostaych.
Jeli jeden test nie przejdzie wyniki pozostaych nie powinny by od tego zalene.
Repeatable
Bez zmian w funkcjonalnoci testy zawsze powinny dawa takie same wyniki.
Testy powinny by niezalene od rodowiska na ktrym s uruchamiane.
Koniec z tekstami:"A u mnie dziaa".
Self Validating
Testy dostarczaj informacji zwrotnej czylijednoznacznej odpowiedzi na temat tego czy i jak dziaa wytwarzane oprogramowanie.
Informacja o statusie testw nie powinna wymaga adnej ingerencji testera czy developera.
Timely
Testy powinny by pisane przed kodem produkcyjnym.
Odkadanie pisania testw na "po kodzie produkcyjnym" nie ma sensu gdy wtedy testy ju nie s przewanie nam potrzebne.
Pisanie testw po kodzie powoduje, e rosn koszty ich wytworzenia i utrzymania.
Test-Driven Development
Oprcz testw do naszej ptli dodajemy jeszcze projektowanie architektury.
TDD = TFD + Refactoring
TDD opiera si na wytwarzaniu oprogramowania w bardzo maych krokach.
W jednym kroku piszemyjedentest ijednma funkcjonalno.
Nie dotykamy kodu funkcjonalnoci, gdy nie mamy napisanego testu, ktrynieprzechodzi.
Ptla TDD
Dyscyplina
Zgodnie z definicj wszystko wydaje si by proste.
W praktyce okazuje si, e potrzebna jest bardzo dua dyscyplina by przestrzega powyszych zasad.
Nad wasn dyscyplin trzeba wytrwale pracowa.
Dwie podstawowe zasady
Piszemy kod nowej funkcjonalnoci tylko gdy testynie przechodz.
Usuwamywszystkieduplikacje na ktre natrafimy.
Efekt
Kady pisze testy, gdy nie ma czasu na czekanie a kto inny zrobi to za nas.
Kod tworzony jest na podstawie wiadomie podjtych decyzji zasilonych informacj z testw.
Kady nawet najmniejszy element aplikacji jest przemylany i odpowiednio zaprojektowany.
Szybka informacja zwrotna podczas wprowadzania bardzo maych zmian pozwala na atwe wykrywanie bdw.
Architektura wyania si dziki bardzo maym krokom i cigemu refactoringowi...
TDD jest przede wszystkim technik tworzenia specyfikacji i architektury wyaniajcej si.
Testy s efektem ubocznym.
Testy powstae przy uyciu 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 osign interesariusz?
3. Jakie moliwoci powinien dostarcza nasz produkt by osign cel interesariusza?
4. Jak ta funkcjonalno ma wyglda?
5. Jak ta funkcjonalno ma zosta zaimplementowana?
Behavior Driven Development
Behavior Driven Development User Stories
In order to As a I want
Behavior Driven Development User Stories
In order to log in into applicationAs a userI want log in to application
Behavior Driven Development User Stories
In order to provide limited access to sensitive user dataAs a registered userI would like to have possibility of authentication
In order to have possibility to send SPAM to usersAs 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 Testw w projektach typu legacy
Legacy Code
Odwrcona Piramida Testw
Refaktoring
Testy End-to-end
Testy Funkcjonalne/Integracyje
Testy Jednostkowe
Jak wyglda oprogramowanie idealne?
Testy End-to-end
Testy Funkcjonalne/Integracyje
Testy Jednostkowe
Dlaczego wic wyglda to tak?
Testy End-to-end
Dug techniczny...
Testy End-to-end
Dug techniczny...
Dlaczego automatyzujemy testy?
Bezpieczestwo...
Odwaga...
Testy End-to-end
Testy Funkcjonalne/Integracyje
Testy Jednostkowe
Testy End-to-end
Testy Funkcjonalne/Integracyje
Testy Jednostkowe
Tak, jasne...
Czasami piramida testw wyglda 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 umoliwi refaktoryzacj kodu na niszych poziomach.
Tworzymy testy jednostkowe
Usuwamy testy end-to-end!
Zadowolony developer
Wiktor onowskiwww.agileszkolenia.plhttp://blog.testowka.plfacebook.com/[email protected]
Click to edit the title text formatClick to edit Master title style
4/4/14
Kliknij, aby edytowa format tekstu tytuu
Kliknij, aby edytowa format tekstu konspektuDrugi poziom konspektuTrzeci poziom konspektuCzwarty poziom konspektuPity poziom konspektuSzsty poziom konspektuSidmy poziom konspektusmy poziom konspektuDziewity poziom konspektu
Kliknij, aby edytowa format tekstu konspektuDrugi poziom konspektuTrzeci poziom konspektuCzwarty poziom konspektuPity poziom konspektuSzsty poziom konspektuSidmy poziom konspektusmy poziom konspektuDziewity poziom konspektu
Click to edit the title text formatClick to edit Master title style
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Seventh Outline LevelClick to edit Master text stylesSecond level
Third level
Fourth level
Fifth level
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Seventh Outline LevelClick to edit Master text stylesSecond level
Third level
Fourth level
Fifth level
4/4/14
Click to edit the title text formatClick to edit Master title style
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Seventh Outline LevelClick to edit Master text stylesSecond level
Third level
Fourth level
Fifth level
4/4/14
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Seventh Outline LevelClick to edit Master text stylesSecond level
Third level
Fourth level
Fifth level
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Seventh Outline LevelClick to edit Master text styles
4/4/14
Click to edit the title text formatClick to edit Master title style