SlideShare a Scribd company logo
Najlepsze praktyki testowania
aplikacji ASP.NET
Marcin Daczkowski
?
UI
Service
Unit
UI
„In short, tests that run end-to-end through the
UI are: brittle, expensive to write, and time
consuming to run.”
Martin Fowler
Agenda
Demo
• aplikacja sklepu
• podstawowa wersja testu
Jakie są korzyści?
• automatyczne testy regresywne
• reprodukcja scenariuszy podczas pracy nad
nowymi funkcjonalnościami
• testy na wielu przeglądarkach
• masowe sprawdzenia scenariuszy dla
różnych parametrów
Jak redukowad koszty?
• testuj tylko kluczowe scenariusze
• buduj testy stopniowo zaczynając od
„happy path”
• ogranicz asercje
• zacznij wcześnie
• postaw na zespół
Jak zmniejszyd złożonośd?
• twórz testy niezależne od sterownika
• preferuj selekcję po id > name > css > xpath
• oznaczaj elementy aby uprościd dostęp
• korzystaj z wzorca Page Object
– logiczny widok strony
– ukrywa użycie sterownika przed testem
– nie zawiera asercji
– fluent interface
Demo
• parametryzowany TestFixture
• stworzenie Page Object dla poprzedniego
testu
• PageFactory
Jak przyspieszyd testy?
• headless browser
• DriverService
• wysokopoziomowe mockowanie
• uruchamianie testów równolegle
Demo
• Phantom JS
• Driver Service
Zapraszam do dyskusji

More Related Content

What's hot

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?
tkryskiewicz
 
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
Krzysztof Synak
 
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
 
e2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końcee2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końce
The Software House
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?
Quick-Solution
 
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
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014
Tomasz Dziuda
 
Równoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiRównoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | Codesushi
Krzysztof (Chris) Ozog
 
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Tomasz Kopacz
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
Dariusz Jagieło
 
Projektowanie i implementacja usług sieciowych
Projektowanie i implementacja usług sieciowychProjektowanie i implementacja usług sieciowych
Projektowanie i implementacja usług sieciowych
University of Economics in Katowice
 
Wordpress i frameworki
Wordpress i frameworkiWordpress i frameworki
Wordpress i frameworki
Bartek Makowski
 
SPA i .Net Core
SPA i .Net CoreSPA i .Net Core
SPA i .Net Core
Łukasz Bargieł
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
Bart Zaremba
 
Niezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz SałachNiezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz Sałach
Bartosz Sałach
 
Application in Xamarin.Forms
Application in Xamarin.FormsApplication in Xamarin.Forms
Application in Xamarin.Forms
Maciej Kuchcik
 
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
HighSolutions Sp. z o.o.
 
Niezbednik administratora
Niezbednik administratoraNiezbednik administratora
Niezbednik administratoraBartosz Sałach
 
Dobre przepisy na cake php
Dobre przepisy na cake phpDobre przepisy na cake php
Dobre przepisy na cake php
Daniel Mendalka
 
Piszemy sklep java
Piszemy sklep javaPiszemy sklep java
Piszemy sklep java
Lukas Lesniewski
 

What's hot (20)

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?
 
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 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)
 
e2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końcee2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końce
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?
 
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.
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014
 
Równoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiRównoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | Codesushi
 
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
 
Projektowanie i implementacja usług sieciowych
Projektowanie i implementacja usług sieciowychProjektowanie i implementacja usług sieciowych
Projektowanie i implementacja usług sieciowych
 
Wordpress i frameworki
Wordpress i frameworkiWordpress i frameworki
Wordpress i frameworki
 
SPA i .Net Core
SPA i .Net CoreSPA i .Net Core
SPA i .Net Core
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
 
Niezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz SałachNiezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz Sałach
 
Application in Xamarin.Forms
Application in Xamarin.FormsApplication in Xamarin.Forms
Application in Xamarin.Forms
 
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
 
Niezbednik administratora
Niezbednik administratoraNiezbednik administratora
Niezbednik administratora
 
Dobre przepisy na cake php
Dobre przepisy na cake phpDobre przepisy na cake php
Dobre przepisy na cake php
 
Piszemy sklep java
Piszemy sklep javaPiszemy sklep java
Piszemy sklep java
 

Similar to Najlepsze praktyki testowania aplikacji ASP.NET

Testowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO AcademyTestowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO Academy
Katarzyna Javaheri-Szpak
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testow
Wiktor Żołnowski
 
Automatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacjiAutomatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacji
Radoslaw Smilgin
 
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
Automated Tests in Agile based on Serenity BDD - Michał Szybalski
Automated Tests in Agile based on Serenity BDD - Michał SzybalskiAutomated Tests in Agile based on Serenity BDD - Michał Szybalski
Automated Tests in Agile based on Serenity BDD - Michał Szybalski
ŁódQA
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
Katarzyna Javaheri-Szpak
 
Tech cafe Microservices
Tech cafe MicroservicesTech cafe Microservices
Tech cafe Microservices
Konrad Król
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Laravel Poland MeetUp
 
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
DreamLab
 
university day 1
university day 1university day 1
university day 1
Sławomir Borowiec
 
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
Jacek Okrojek
 
Spa i .net core
Spa i .net coreSpa i .net core
Spa i .net core
Vimanet
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
Tomasz Borowski
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
Wojciech Kaniuka
 
Techniczna organizacja zespołu
Techniczna organizacja zespołuTechniczna organizacja zespołu
Techniczna organizacja zespołu
intive
 
Praktyki techniczne
Praktyki technicznePraktyki techniczne
Praktyki techniczne
Michał Parkoła
 
Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6
The Software House
 
Testy funkcjonalne
Testy funkcjonalneTesty funkcjonalne
Testy funkcjonalne
PROSKAR
 
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
3camp
 
Testy wydajnościowe - najlepsze praktyki - Kuba Gajda
Testy wydajnościowe - najlepsze praktyki - Kuba GajdaTesty wydajnościowe - najlepsze praktyki - Kuba Gajda
Testy wydajnościowe - najlepsze praktyki - Kuba Gajda
Bartłomiej Cymanowski
 

Similar to Najlepsze praktyki testowania aplikacji ASP.NET (20)

Testowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO AcademyTestowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO Academy
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testow
 
Automatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacjiAutomatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacji
 
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
 
Automated Tests in Agile based on Serenity BDD - Michał Szybalski
Automated Tests in Agile based on Serenity BDD - Michał SzybalskiAutomated Tests in Agile based on Serenity BDD - Michał Szybalski
Automated Tests in Agile based on Serenity BDD - Michał Szybalski
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
Tech cafe Microservices
Tech cafe MicroservicesTech cafe Microservices
Tech cafe Microservices
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
 
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
 
university day 1
university day 1university day 1
university day 1
 
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
 
Spa i .net core
Spa i .net coreSpa i .net core
Spa i .net core
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
 
Techniczna organizacja zespołu
Techniczna organizacja zespołuTechniczna organizacja zespołu
Techniczna organizacja zespołu
 
Praktyki techniczne
Praktyki technicznePraktyki techniczne
Praktyki techniczne
 
Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6
 
Testy funkcjonalne
Testy funkcjonalneTesty funkcjonalne
Testy funkcjonalne
 
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
 
Testy wydajnościowe - najlepsze praktyki - Kuba Gajda
Testy wydajnościowe - najlepsze praktyki - Kuba GajdaTesty wydajnościowe - najlepsze praktyki - Kuba Gajda
Testy wydajnościowe - najlepsze praktyki - Kuba Gajda
 

Najlepsze praktyki testowania aplikacji ASP.NET

Editor's Notes

  1. Piramida testowania1) Różne rodzaje testów: jednostkowe, integracyjne, end-to-end2) Testy jednostkowe > Integracyjne > Powierzchniowe3) Celem testów jednostkowych nie jest znajdowanie błędów4)Poziomy piramidy niezależne od warstwy samej aplikacjiOdnośnikihttp://martinfowler.com/bliki/TestPyramid.htmlhttp://blog.stevensanderson.com/2009/08/24/writing-great-unit-tests-best-and-worst-practises/http://blog.stevensanderson.com/2009/11/04/selective-unit-testing-costs-and-benefits/http://stackoverflow.com/questions/710776/unit-testing-tsqlhttp://stackoverflow.com/questions/96066/automated-unit-testing-with-javascript