przyszłość ma na imię mobile – testowanie i automatyzacja testów aplikacji mobilnych (ios)
TRANSCRIPT
![Page 1: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/1.jpg)
Przyszłość ma na imię Mobile
Testy aplikacji mobilnych na platformę iOS
Ewa Bielska & Tomasz MnichTestWarez 2015
![Page 2: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/2.jpg)
Dlaczego mobile?
http://www.statista.com/statistics/271405/global-mobile-data-traffic-forecast/
![Page 3: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/3.jpg)
Cel prezentacji
Przedstawienie sprawdzonych rozwiązań z zakresu
automatyzacji testów aplikacji mobilnych na system iOS
![Page 4: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/4.jpg)
Agenda
1. Wymagania wobec narzędzi do testów2. Live testing przy użyciu narzędzi:
- KIF- Xcode UI Testing- Calabash- FBSnapshotTestCase
3. Podsumowanie
![Page 5: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/5.jpg)
Jakie narzędzie wybrać? 1/2
● testy na jedną / kilka platform
● język programowania
● niezawodność i szybkość biblioteki
● możliwość zrównoleglenia testów
![Page 6: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/6.jpg)
● wsparcie i rozwój biblioteki - open source
● testy na urządzeniach / symulatorach
● wsparcie dla Continuous Integration
Jakie narzędzie wybrać? 2/2
![Page 7: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/7.jpg)
KIF - Keep It Functional 1/2
● testuj jak użytkownik
● użycie atrybutów accessibility
● kod testów w natywnym języku aplikacji
![Page 8: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/8.jpg)
KIF - Keep It Functional 2/2
● rozszerzenie biblioteki XCTest
● środowisko: Xcode lub linia komend
● instalacja: cocoapods lub github
![Page 9: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/9.jpg)
KIF - demo
![Page 10: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/10.jpg)
KIF - podsumowanie
● osobny Xcode target na testy UI
● użycie klas KIFUITestCase i KIFUITestActor
● uruchamianie testów przez Test Navigator
● użycie accessibityLabel/Identifier
● Xcode Coverage + UI Testing
![Page 11: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/11.jpg)
XCode UI Testing - podsumowanie
● osobny Xcode target na testy UI
● użycie klas XCTestCase i XCUIApplication
● uruchamianie testów przez Test Navigator
● użycie accessibityLabel/Identifier lub hierarchii
● możliwość nagrywania
![Page 12: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/12.jpg)
Calabash iOS 1/2
● multi-platformowe narzędzie
● prosta integracja w projekcie - install gem
● open source
● specyfikacje przez przykłady
![Page 13: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/13.jpg)
Calabash iOS 2/2
● wsparcie aplikacji natywnych i hybrydowych
● uruchamianie testów na emulatorach & urządzeniach
● kod skryptów testowych w Ruby
● spójne API w iOS & Android w wersji Calabash 2.0
![Page 14: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/14.jpg)
Calabash iOS & Cucumber
● Gherkin - specyfikacja w naturalnym języku
Given, When, Then
● Cucumber - narzędzie uruchamiające testy
● Calabash - interfejs łączący Cucumber’a z
testowaną aplikacją na platformie iOS
![Page 15: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/15.jpg)
Calabash iOS - demo
![Page 16: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/16.jpg)
Calabash iOS - podsumowanie
● Multi-platformowe zastosowanie
● Bardzo prosta integracja w projekcie
● Duże wsparcie społeczności open source
● Stabilne i dojrzałe narzędzie
![Page 17: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/17.jpg)
FBSnapshotTestCase 1/2
● porównywanie obrazów
● obraz referencyjny zapisany w projekcie
● kod testów w natywnym języku aplikacji
![Page 18: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/18.jpg)
FBSnapshotTestCase 2/2
● rozszerzenie biblioteki XCTest
● środowisko: Xcode lub linia komend
● instalacja: cocoapods lub github
![Page 19: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/19.jpg)
FBSnapshotTestCase - demo
![Page 20: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/20.jpg)
FBSnapshotTestCase - podsumowanie
● Xcode target na testy jednostkowe
● użycie klasy FBSnapshotTestCase
● self.recordMode i FBSnapshotVerifyView
● użycie macro
● Xcode Coverage > suma testów UI i jednostkowych
![Page 21: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/21.jpg)
Zestawienie narzędziCalabash KIF FbSnapshot
TestCaseXcode7 UI
Testing
język programowania Ruby Obj-C / Swift Obj-C / Swift Obj-C / Swift
cross-platform
wsparcie webView + + +
zrównoleglenie testów
szybkość +
open source -
testy na urządzeniu
CI
![Page 22: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/22.jpg)
Dziękujemy!
![Page 23: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/23.jpg)
Q&A
![Page 24: Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mobilnych (iOS)](https://reader031.vdocuments.pub/reader031/viewer/2022030315/587ed5ad1a28abdb198b60c3/html5/thumbnails/24.jpg)
Bibliografia
● https://github.com/calabash/calabash-ios● http://groups.google.com/group/calabash-ios● http://calaba.sh/● https://cucumber.io/
● https://github.com/kif-framework/KIF● https://github.com/facebook/ios-snapshot-test-
case/tree/master/FBSnapshotTestCase● https://cocoapods.org
● https://github.com/bielski/TestwarezApp