SlideShare a Scribd company logo
Framework testowy dla
aplikacji mobilnej iOS - czy
warto było zbudować
własny framework?
MATEUSZ NICPOŃ
Spis treści
Prolog
Made with by PGS Software ·
O aplikacji
5
Made with by PGS Software · 6
Standardowy test
1. Przygotowanie danych testowych
2. Wysłanie danych testowych na serwer MOCK
3. Wykonanie testu na urządzeniu
Made with by PGS Software · 7
2 lata temu
1. Ponad 600 scenariuszy biznesowych.
2. Ilość ciągle rośnie.
3. Automatycznych testów funkcjonalnych brak.
4. Nacisk na częstsze releasy.
5. Pojawia się promyk nadziei…
Made with by PGS Software · 8
Cele frameworku
Pogrupowane testy
Urządzenia
Nightly builds lub On demand
Raporty
Automatyzacja
Łatwość
Czarnoskrzynkowe
Implementacja
Rozdział 1
Zobaczmy co się stanie…
Made with by PGS Software · 10
Zadania
Wybór rozwiązania
Konfiguracja środowiska
Implementacja podstawowych modułów frameworku wraz z pierwszymi scenariuszami
testowymi
Wstępna analiza raportów
Made with by PGS Software · 11
Nasz “przyjaciel” iOS
Zamknięty system
Accessibility
Zamknięte IDE
Made with by PGS Software · 12
Nasz wybraniec
Swift lub Objective C
Czarnoskrzynkowe API
Update Xcode to nowe poprawki oraz
funkcjonalności
WWDC w czerwcu 2015
Xcode 7 jesienią 2015
Testy UI zintegrowane z projektem
XCTest - User Interface Tests
Made with by PGS Software · 13
The first rule of UI Tests Club is…
DRY
YAGNI
Atomiczne testy
Code review
Swift Coding Standards
Page Object Pattern
SOLID
KISS
Made with by PGS Software · 14
The second rule of UI Tests Club is…
Transparentność
Workflow (Jira – Stash – Git)
Śledzenie progresu oraz pokrycia dla PO
Made with by PGS Software · 15
Komponenty frameworku
Modele danych testowych
Wspólne kroki testowe
Reużywalne elementy do formatowaniem
danych
Reużywalne rozszerzenia do klas XCTest
TestLaunchBuilder
Odzielone klasy Page
Odzielone grupy testów
Moduł z danymi testowymi
Rozdział 2
No dobra, nie jest tak źle!
Made with by PGS Software · 17
Jest progres!
Implementacja kolejnych scenariuszy
Jenkins + fastlane
Rodzi się pomysł na raport idealny…
Made with by PGS Software · 18
Test numer 129
Made with by PGS Software · 19
Rzut okiem na raport:
Error Domain=IDEPseudoTerminalDomain
Code=1 "(null)”
?!?!
Ale u mnie działa…
Made with by PGS Software · 20
He is a hero every team deserves…
Wpis Bartka Jandy na tech blogu
PGS Software
Made with by PGS Software · 21
Im dalej w las…
Błąd w metodzie terminate().
Błąd związany z nie działającym autoscrollem.
Czekanie na dokończenie animacji jest automatyczne…
... ale tylko przed wykonaniem akcji na elemencie.
Można wybrać testy jakich się nie chce uruchomić...
Beta Xcode i iOS.
Made with by PGS Software · 22
Tysiąc commitów później - teraźniejszość
4 testerów implementuje kolejne
scenariusze
Udział developerów
zminimalizowany
Testy można uruchamiać per moduł
Zespół oraz PO zadowoleni :-)
40% (iPad) oraz 45% (iPhone)
Główne gałęzie (develop, release)
Framework jest stabilny
Epilog
Made with by PGS Software · 24
Czego nie zrobiliśmy?
Brak implementacji testów dla
bieżących historyjek
Pokrycie tylko 45 % 
Zależność od serwera MOCK
Specjalne ścieżki
Scenariusze pozytywne
Made with by PGS Software · 25
Co zadziałało?
Ustalenie i egzekwowanie zasad
pracy (planowanie, implementacja)
Analiza i szybka naprawa
napotkanych błędów w frameworku
lub failujących testach
Udział developerów i wspólna
kooperacja
Zdefiniowanie co chcemy osiągnąć
oraz jakie testy automatyzować
Made with by PGS Software · 26
Co pozostało?
AutoMate https://github.com/PGSSoft/AutoMate
GoldenRose https://github.com/PGSSoft/GoldenRose
Made with by PGS Software · 27
Podsumowując
Czy było warto budować własny
framework?
Dzięki!
MATEUSZ NICPOŃ
This is the end, beautiful friend…

More Related Content

What's hot

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.
 
Po co tyle testowac
Po co tyle testowacPo co tyle testowac
Po co tyle testowac
Piotr Majewski
 
Im wcześniej, tym lepiej – jak uczenie maszynowe i dobre praktyki tworzenia k...
Im wcześniej, tym lepiej – jak uczenie maszynowe i dobre praktyki tworzenia k...Im wcześniej, tym lepiej – jak uczenie maszynowe i dobre praktyki tworzenia k...
Im wcześniej, tym lepiej – jak uczenie maszynowe i dobre praktyki tworzenia k...
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
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.
Future Processing
 
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
 
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
 
Unit testing w praktyce... czyli właściwie jak?
Unit testing w praktyce... czyli właściwie jak?Unit testing w praktyce... czyli właściwie jak?
Unit testing w praktyce... czyli właściwie jak?
Bartłomiej Cymanowski
 
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
Trójmiejska Grupa Testerska
 
Jak nie zwariować z tymi pakietami
Jak nie  zwariować z tymi pakietamiJak nie  zwariować z tymi pakietami
Jak nie zwariować z tymi pakietamiArek Bee.
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testow
Wiktor Żołnowski
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Marcin Daczkowski
 
Dodatkowe narzędzia do testów wydajnościowych
Dodatkowe narzędzia do testów wydajnościowychDodatkowe narzędzia do testów wydajnościowych
Dodatkowe narzędzia do testów wydajnościowych
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I NarzędziaCiągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
Paweł Harajda
 
Ewa Bielska: Testowanie aplikacji mobilnych
Ewa Bielska: Testowanie aplikacji mobilnychEwa Bielska: Testowanie aplikacji mobilnych
Ewa Bielska: Testowanie aplikacji mobilnych
Geek Girls Carrots Poznan
 
Poznańska grupa .Net spotkanie VI - Test Driven Development
Poznańska grupa .Net spotkanie VI - Test Driven DevelopmentPoznańska grupa .Net spotkanie VI - Test Driven Development
Poznańska grupa .Net spotkanie VI - Test Driven Developmentbartlomiej.szafko
 

What's hot (15)

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?"
 
Po co tyle testowac
Po co tyle testowacPo co tyle testowac
Po co tyle testowac
 
Im wcześniej, tym lepiej – jak uczenie maszynowe i dobre praktyki tworzenia k...
Im wcześniej, tym lepiej – jak uczenie maszynowe i dobre praktyki tworzenia k...Im wcześniej, tym lepiej – jak uczenie maszynowe i dobre praktyki tworzenia k...
Im wcześniej, tym lepiej – jak uczenie maszynowe i dobre praktyki tworzenia k...
 
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.
 
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
 
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.
 
Unit testing w praktyce... czyli właściwie jak?
Unit testing w praktyce... czyli właściwie jak?Unit testing w praktyce... czyli właściwie jak?
Unit testing w praktyce... czyli właściwie jak?
 
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
TGT#15 - Testowanie w metodykach zwinnych czyli skąd testerzy wiedzą więcej o...
 
Jak nie zwariować z tymi pakietami
Jak nie  zwariować z tymi pakietamiJak nie  zwariować z tymi pakietami
Jak nie zwariować z tymi pakietami
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testow
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Dodatkowe narzędzia do testów wydajnościowych
Dodatkowe narzędzia do testów wydajnościowychDodatkowe narzędzia do testów wydajnościowych
Dodatkowe narzędzia do testów wydajnościowych
 
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I NarzędziaCiągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
 
Ewa Bielska: Testowanie aplikacji mobilnych
Ewa Bielska: Testowanie aplikacji mobilnychEwa Bielska: Testowanie aplikacji mobilnych
Ewa Bielska: Testowanie aplikacji mobilnych
 
Poznańska grupa .Net spotkanie VI - Test Driven Development
Poznańska grupa .Net spotkanie VI - Test Driven DevelopmentPoznańska grupa .Net spotkanie VI - Test Driven Development
Poznańska grupa .Net spotkanie VI - Test Driven Development
 

Similar to [TestWarez 2017] Framework testowy aplikacji mobilnej dla systemu iOS - czy warto było zbudować własny framework?

Praktyki techniczne
Praktyki technicznePraktyki techniczne
Praktyki techniczne
Michał Parkoła
 
Testy jednostkowe - PHPUnit
Testy jednostkowe - PHPUnitTesty jednostkowe - PHPUnit
Testy jednostkowe - PHPUnit
PHPstokPHPstok
 
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Mateusz Paprocki, PMP
 
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
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
qbeuek
 
Techniczna organizacja zespołu
Techniczna organizacja zespołuTechniczna organizacja zespołu
Techniczna organizacja zespołu
intive
 
university day 1
university day 1university day 1
university day 1
Sławomir Borowiec
 
Praktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlPraktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPl
Sebastian Marek
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecie
Grzegorz Godlewski
 
Ionic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutIonic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minut
Tomasz Borowski
 
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
Future Processing
 
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
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
Wojciech Kaniuka
 
Kopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVM
Kopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVMKopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVM
Kopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVM
Artur Skowroński
 
Jak migrować kod legacy do Symfony? Tips & tricks
Jak migrować kod legacy do Symfony? Tips & tricksJak migrować kod legacy do Symfony? Tips & tricks
Jak migrować kod legacy do Symfony? Tips & tricks
XSolve
 
Narzędzia: Scrum. Czy gamedev jest agile?
Narzędzia: Scrum. Czy gamedev jest agile?Narzędzia: Scrum. Czy gamedev jest agile?
Narzędzia: Scrum. Czy gamedev jest agile?
GameDesire Company
 
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacjiInfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
JIT Solutions
 
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...Infoshare
 
Skok na naderwanym bungee, czyli agile bez automatyzacji
Skok na naderwanym bungee, czyli agile bez automatyzacjiSkok na naderwanym bungee, czyli agile bez automatyzacji
Skok na naderwanym bungee, czyli agile bez automatyzacji
Witold Bołt
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
DreamLab
 

Similar to [TestWarez 2017] Framework testowy aplikacji mobilnej dla systemu iOS - czy warto było zbudować własny framework? (20)

Praktyki techniczne
Praktyki technicznePraktyki techniczne
Praktyki techniczne
 
Testy jednostkowe - PHPUnit
Testy jednostkowe - PHPUnitTesty jednostkowe - PHPUnit
Testy jednostkowe - PHPUnit
 
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
 
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
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Techniczna organizacja zespołu
Techniczna organizacja zespołuTechniczna organizacja zespołu
Techniczna organizacja zespołu
 
university day 1
university day 1university day 1
university day 1
 
Praktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlPraktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPl
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecie
 
Ionic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutIonic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minut
 
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
 
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
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
 
Kopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVM
Kopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVMKopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVM
Kopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVM
 
Jak migrować kod legacy do Symfony? Tips & tricks
Jak migrować kod legacy do Symfony? Tips & tricksJak migrować kod legacy do Symfony? Tips & tricks
Jak migrować kod legacy do Symfony? Tips & tricks
 
Narzędzia: Scrum. Czy gamedev jest agile?
Narzędzia: Scrum. Czy gamedev jest agile?Narzędzia: Scrum. Czy gamedev jest agile?
Narzędzia: Scrum. Czy gamedev jest agile?
 
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacjiInfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
 
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
 
Skok na naderwanym bungee, czyli agile bez automatyzacji
Skok na naderwanym bungee, czyli agile bez automatyzacjiSkok na naderwanym bungee, czyli agile bez automatyzacji
Skok na naderwanym bungee, czyli agile bez automatyzacji
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
 

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

Star Trek: BDD Enterprise
Star Trek: BDD EnterpriseStar Trek: BDD Enterprise
Model based testing as a BA tool
Model based testing as a BA toolModel based testing as a BA tool
Communication - Language of Leader
Communication - Language of LeaderCommunication - 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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
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  )
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
Cosmic truths about software requirements
Cosmic truths about software requirementsCosmic truths about software requirements
Cosmic truths about software requirements
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
Zagraj w zaangażowanie
Zagraj w zaangażowanieZagraj 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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
Agile business analyst
Agile business analystAgile 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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
7 Skills for highly effective teams
7 Skills for highly effective teams7 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 ...
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
[TestWarez 2017] Przychodzi tester na rozmowę...
[TestWarez 2017] Przychodzi tester na rozmowę...[TestWarez 2017] Przychodzi tester na rozmowę...
[TestWarez 2017] Przychodzi tester na rozmowę...
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
[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
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
[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
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] Framework testowy aplikacji mobilnej dla systemu iOS - czy warto było zbudować własny framework?

  • 1.
  • 2. Framework testowy dla aplikacji mobilnej iOS - czy warto było zbudować własny framework? MATEUSZ NICPOŃ
  • 5. Made with by PGS Software · O aplikacji 5
  • 6. Made with by PGS Software · 6 Standardowy test 1. Przygotowanie danych testowych 2. Wysłanie danych testowych na serwer MOCK 3. Wykonanie testu na urządzeniu
  • 7. Made with by PGS Software · 7 2 lata temu 1. Ponad 600 scenariuszy biznesowych. 2. Ilość ciągle rośnie. 3. Automatycznych testów funkcjonalnych brak. 4. Nacisk na częstsze releasy. 5. Pojawia się promyk nadziei…
  • 8. Made with by PGS Software · 8 Cele frameworku Pogrupowane testy Urządzenia Nightly builds lub On demand Raporty Automatyzacja Łatwość Czarnoskrzynkowe Implementacja
  • 9. Rozdział 1 Zobaczmy co się stanie…
  • 10. Made with by PGS Software · 10 Zadania Wybór rozwiązania Konfiguracja środowiska Implementacja podstawowych modułów frameworku wraz z pierwszymi scenariuszami testowymi Wstępna analiza raportów
  • 11. Made with by PGS Software · 11 Nasz “przyjaciel” iOS Zamknięty system Accessibility Zamknięte IDE
  • 12. Made with by PGS Software · 12 Nasz wybraniec Swift lub Objective C Czarnoskrzynkowe API Update Xcode to nowe poprawki oraz funkcjonalności WWDC w czerwcu 2015 Xcode 7 jesienią 2015 Testy UI zintegrowane z projektem XCTest - User Interface Tests
  • 13. Made with by PGS Software · 13 The first rule of UI Tests Club is… DRY YAGNI Atomiczne testy Code review Swift Coding Standards Page Object Pattern SOLID KISS
  • 14. Made with by PGS Software · 14 The second rule of UI Tests Club is… Transparentność Workflow (Jira – Stash – Git) Śledzenie progresu oraz pokrycia dla PO
  • 15. Made with by PGS Software · 15 Komponenty frameworku Modele danych testowych Wspólne kroki testowe Reużywalne elementy do formatowaniem danych Reużywalne rozszerzenia do klas XCTest TestLaunchBuilder Odzielone klasy Page Odzielone grupy testów Moduł z danymi testowymi
  • 16. Rozdział 2 No dobra, nie jest tak źle!
  • 17. Made with by PGS Software · 17 Jest progres! Implementacja kolejnych scenariuszy Jenkins + fastlane Rodzi się pomysł na raport idealny…
  • 18. Made with by PGS Software · 18 Test numer 129
  • 19. Made with by PGS Software · 19 Rzut okiem na raport: Error Domain=IDEPseudoTerminalDomain Code=1 "(null)” ?!?! Ale u mnie działa…
  • 20. Made with by PGS Software · 20 He is a hero every team deserves… Wpis Bartka Jandy na tech blogu PGS Software
  • 21. Made with by PGS Software · 21 Im dalej w las… Błąd w metodzie terminate(). Błąd związany z nie działającym autoscrollem. Czekanie na dokończenie animacji jest automatyczne… ... ale tylko przed wykonaniem akcji na elemencie. Można wybrać testy jakich się nie chce uruchomić... Beta Xcode i iOS.
  • 22. Made with by PGS Software · 22 Tysiąc commitów później - teraźniejszość 4 testerów implementuje kolejne scenariusze Udział developerów zminimalizowany Testy można uruchamiać per moduł Zespół oraz PO zadowoleni :-) 40% (iPad) oraz 45% (iPhone) Główne gałęzie (develop, release) Framework jest stabilny
  • 24. Made with by PGS Software · 24 Czego nie zrobiliśmy? Brak implementacji testów dla bieżących historyjek Pokrycie tylko 45 %  Zależność od serwera MOCK Specjalne ścieżki Scenariusze pozytywne
  • 25. Made with by PGS Software · 25 Co zadziałało? Ustalenie i egzekwowanie zasad pracy (planowanie, implementacja) Analiza i szybka naprawa napotkanych błędów w frameworku lub failujących testach Udział developerów i wspólna kooperacja Zdefiniowanie co chcemy osiągnąć oraz jakie testy automatyzować
  • 26. Made with by PGS Software · 26 Co pozostało? AutoMate https://github.com/PGSSoft/AutoMate GoldenRose https://github.com/PGSSoft/GoldenRose
  • 27. Made with by PGS Software · 27 Podsumowując Czy było warto budować własny framework?
  • 28. Dzięki! MATEUSZ NICPOŃ This is the end, beautiful friend…