SlideShare ist ein Scribd-Unternehmen logo
© Zühlke 2015
Android Testing
Android Testing | Alexander Pacha 9. Oktober 2015 Folie 1
© Zühlke 2015
Testen von mobilen Anwendungen
Orientierung an normalem Testen
• Unit- und Integrationstests
• Separation of Concerns
• Testautomatisierung (CI)
Zusätzliche Herausforderungen
• Physisches Gerät vs. Emulator
• Verschiedene Formfaktoren
• Verschiedene OS-Versionen
• Bugs im OS und SDK
Android Testing | Alexander Pacha
Fragmentierung
 Testmatrix
9. Oktober 2015 Folie 2
© Zühlke 2015
Testpyramide
Unit-Tests
Integrations-Tests
Automatisierte UI-Tests
Manuelle Tests
Gewünschte
Anzahl der Tests
Android Testing | Alexander Pacha 9. Oktober 2015 Folie 3
© Zühlke 2015
Unit- und Integrationstests
Android Testing | Alexander Pacha
• JUnit4 (Android Testing Support Library)
• Mockito
Voraussetzungen:
• Verwendung von Interfaces und Dependency Injection
• Saubere Architektur (z.B. MVP)
9. Oktober 2015 Folie 4
© Zühlke 2015
Automatisierte UI-Tests
Tools, Frameworks und Services
Android Testing | Alexander Pacha
• Robotium: Erweiterung des Android Test Frameworks um
Anwendungsszenarien (leichter) zu testen
• Kostenlose Bibliothek
• Kommerziellen Robotium Recorder (~300€ / Jahr)
• Espresso
• Selendroid
• Appium
• Rannorex
Ergänzung:
• TestObject – Cloud-Service zum Testen auf realen physischen Geräten
9. Oktober 2015 Folie 5
© Zühlke 2015
Automatisierte UI-Tests
Testerstellung mit dem Robotium Recorder
Android Testing | Alexander Pacha
Testmatrix
9. Oktober 2015 Folie 6
© Zühlke 2015
Automatisierte UI-Tests
Der erzeugte Testcode
Android Testing | Alexander Pacha 9. Oktober 2015 Folie 7
© Zühlke 2015
Tipps
Android Testing | Alexander Pacha
• Auslagern von Businesslogik in separate Bibliothek sinnvoll
• Ermöglicht Tests ohne Gerät/Emulator
• Verwendung von MVVM/MVP-Pattern um Testbarkeit zu erhöhen
• Xamarin Android Player verwenden
• Sehr performant zum Entwickeln
• Erlaubt einfache Installation von Google Play Services
• Viele weitere Tools, die evaluiert und bei Bedarf eingesetzt werden
sollten:
• Z.B. Robolectric: http://robolectric.org
9. Oktober 2015 Folie 8
© Zühlke 2015
Zusammenfassung
• Unit- und Integrationstests sehr wichtig
• Saubere Architektur notwendig für Testbarkeit
• Automatisierte UI-Tests auf realen Geräten notwendig um folgende
Probleme und Bugs zu finden:
• Unterschiedliches Verhalten von manchen physischen Geräten (z.B.
90°-Rotation des Kamerabildes)
• Bugs im SDK
• Bugs in der Vendor-Customization
Testet hart, testet gründlich, testet automatisch
Android Testing | Alexander Pacha
Mobile Apps richtig testen
9. Oktober 2015 Folie 9
© Zühlke 2015
Links
Robotium Quellcode: https://github.com/robotiumtech/robotium
Robotium Dokumentation: https://github.com/RobotiumTech/robotium/wiki
Robotium Recorder Website: http://robotium.com/
Google „Android Test Support Library“: https://google.github.io/android-testing-support-library/
Testing Support Library Dokumentation: https://developer.android.com/tools/testing-support-
library/index.html
Android Testing Samples: https://github.com/googlesamples/android-testing
Android MVP: http://antonioleiva.com/mvp-android/
Robolectric: http://robolectric.org/
Android Architecture – The Clean Way? http://fernandocejas.com/2014/09/03/architecting-android-
the-clean-way/
Android CIs:
• http://greenhouseci.com/
• https://circleci.com
• Jenkins (http://www.vogella.com/tutorials/Jenkins/article.html#android_jenkinsbuild)
Android Testing | Alexander Pacha 9. Oktober 2015 Folie 10

Weitere ähnliche Inhalte

Ähnlich wie Android Testing

Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit RobotiumLightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Alexander Pacha
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Florian Wolters
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Christian Kunzmann
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
enpit GmbH & Co. KG
 
20150923 ausführbare spezifikation_automotiveforum
20150923 ausführbare spezifikation_automotiveforum20150923 ausführbare spezifikation_automotiveforum
20150923 ausführbare spezifikation_automotiveforum
Elmar Selbach
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
Marc Müller
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
QAware GmbH
 
DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013
Nico Orschel
 
Unit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 AnwendungUnit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 Anwendung
Ralf Eggert
 
Mobile testing @ XING - Ist der Release Train pünktlich
Mobile testing @ XING - Ist der Release Train pünktlichMobile testing @ XING - Ist der Release Train pünktlich
Mobile testing @ XING - Ist der Release Train pünktlich
Daniel Knott
 
Wirtschaftlich Software testen (ESE-Kongress 2012)
Wirtschaftlich Software testen (ESE-Kongress 2012)Wirtschaftlich Software testen (ESE-Kongress 2012)
Wirtschaftlich Software testen (ESE-Kongress 2012)
Matthias Kraaz
 
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht SpaßWhitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
Claudia Baur
 
Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)
CollabNet
 
Cross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenCross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile Anwendungen
Markus Eiglsperger
 
Einführung in die Mobile-Produktentwicklung: Konzeption, Design, Entwicklung,...
Einführung in die Mobile-Produktentwicklung: Konzeption, Design, Entwicklung,...Einführung in die Mobile-Produktentwicklung: Konzeption, Design, Entwicklung,...
Einführung in die Mobile-Produktentwicklung: Konzeption, Design, Entwicklung,...
Bokowsky + Laymann GmbH
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
GWAVA
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft AG
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
Nico Orschel
 
Test Management mit Visual Studio 2012 (Developer Week 2013)
Test Management mit Visual Studio 2012 (Developer Week 2013)Test Management mit Visual Studio 2012 (Developer Week 2013)
Test Management mit Visual Studio 2012 (Developer Week 2013)
Nico Orschel
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
Marc Müller
 

Ähnlich wie Android Testing (20)

Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit RobotiumLightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
Lightningtalk - Android UI-Testautomatisierung leicht gemacht mit Robotium
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
 
20150923 ausführbare spezifikation_automotiveforum
20150923 ausführbare spezifikation_automotiveforum20150923 ausführbare spezifikation_automotiveforum
20150923 ausführbare spezifikation_automotiveforum
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 
DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013
 
Unit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 AnwendungUnit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 Anwendung
 
Mobile testing @ XING - Ist der Release Train pünktlich
Mobile testing @ XING - Ist der Release Train pünktlichMobile testing @ XING - Ist der Release Train pünktlich
Mobile testing @ XING - Ist der Release Train pünktlich
 
Wirtschaftlich Software testen (ESE-Kongress 2012)
Wirtschaftlich Software testen (ESE-Kongress 2012)Wirtschaftlich Software testen (ESE-Kongress 2012)
Wirtschaftlich Software testen (ESE-Kongress 2012)
 
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht SpaßWhitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
 
Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)
 
Cross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenCross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile Anwendungen
 
Einführung in die Mobile-Produktentwicklung: Konzeption, Design, Entwicklung,...
Einführung in die Mobile-Produktentwicklung: Konzeption, Design, Entwicklung,...Einführung in die Mobile-Produktentwicklung: Konzeption, Design, Entwicklung,...
Einführung in die Mobile-Produktentwicklung: Konzeption, Design, Entwicklung,...
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
 
Test Management mit Visual Studio 2012 (Developer Week 2013)
Test Management mit Visual Studio 2012 (Developer Week 2013)Test Management mit Visual Studio 2012 (Developer Week 2013)
Test Management mit Visual Studio 2012 (Developer Week 2013)
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
 

Mehr von Alexander Pacha

1, 2, 3 build - continuous integration für mobile apps
1, 2, 3   build - continuous integration für mobile apps1, 2, 3   build - continuous integration für mobile apps
1, 2, 3 build - continuous integration für mobile apps
Alexander Pacha
 
1, 2, 3 build - continuous integration for mobile apps
1, 2, 3   build - continuous integration for mobile apps1, 2, 3   build - continuous integration for mobile apps
1, 2, 3 build - continuous integration for mobile apps
Alexander Pacha
 
Antlr4 get the right tool for the job
Antlr4   get the right tool for the jobAntlr4   get the right tool for the job
Antlr4 get the right tool for the job
Alexander Pacha
 
I like to move it, move it - What your Android device really feels
I like to move it, move it - What your Android device really feelsI like to move it, move it - What your Android device really feels
I like to move it, move it - What your Android device really feels
Alexander Pacha
 
C# - A Programmer's Dream Come True
C# - A Programmer's Dream Come TrueC# - A Programmer's Dream Come True
C# - A Programmer's Dream Come True
Alexander Pacha
 
Recherche präsentation
Recherche präsentationRecherche präsentation
Recherche präsentation
Alexander Pacha
 

Mehr von Alexander Pacha (6)

1, 2, 3 build - continuous integration für mobile apps
1, 2, 3   build - continuous integration für mobile apps1, 2, 3   build - continuous integration für mobile apps
1, 2, 3 build - continuous integration für mobile apps
 
1, 2, 3 build - continuous integration for mobile apps
1, 2, 3   build - continuous integration for mobile apps1, 2, 3   build - continuous integration for mobile apps
1, 2, 3 build - continuous integration for mobile apps
 
Antlr4 get the right tool for the job
Antlr4   get the right tool for the jobAntlr4   get the right tool for the job
Antlr4 get the right tool for the job
 
I like to move it, move it - What your Android device really feels
I like to move it, move it - What your Android device really feelsI like to move it, move it - What your Android device really feels
I like to move it, move it - What your Android device really feels
 
C# - A Programmer's Dream Come True
C# - A Programmer's Dream Come TrueC# - A Programmer's Dream Come True
C# - A Programmer's Dream Come True
 
Recherche präsentation
Recherche präsentationRecherche präsentation
Recherche präsentation
 

Android Testing

  • 1. © Zühlke 2015 Android Testing Android Testing | Alexander Pacha 9. Oktober 2015 Folie 1
  • 2. © Zühlke 2015 Testen von mobilen Anwendungen Orientierung an normalem Testen • Unit- und Integrationstests • Separation of Concerns • Testautomatisierung (CI) Zusätzliche Herausforderungen • Physisches Gerät vs. Emulator • Verschiedene Formfaktoren • Verschiedene OS-Versionen • Bugs im OS und SDK Android Testing | Alexander Pacha Fragmentierung  Testmatrix 9. Oktober 2015 Folie 2
  • 3. © Zühlke 2015 Testpyramide Unit-Tests Integrations-Tests Automatisierte UI-Tests Manuelle Tests Gewünschte Anzahl der Tests Android Testing | Alexander Pacha 9. Oktober 2015 Folie 3
  • 4. © Zühlke 2015 Unit- und Integrationstests Android Testing | Alexander Pacha • JUnit4 (Android Testing Support Library) • Mockito Voraussetzungen: • Verwendung von Interfaces und Dependency Injection • Saubere Architektur (z.B. MVP) 9. Oktober 2015 Folie 4
  • 5. © Zühlke 2015 Automatisierte UI-Tests Tools, Frameworks und Services Android Testing | Alexander Pacha • Robotium: Erweiterung des Android Test Frameworks um Anwendungsszenarien (leichter) zu testen • Kostenlose Bibliothek • Kommerziellen Robotium Recorder (~300€ / Jahr) • Espresso • Selendroid • Appium • Rannorex Ergänzung: • TestObject – Cloud-Service zum Testen auf realen physischen Geräten 9. Oktober 2015 Folie 5
  • 6. © Zühlke 2015 Automatisierte UI-Tests Testerstellung mit dem Robotium Recorder Android Testing | Alexander Pacha Testmatrix 9. Oktober 2015 Folie 6
  • 7. © Zühlke 2015 Automatisierte UI-Tests Der erzeugte Testcode Android Testing | Alexander Pacha 9. Oktober 2015 Folie 7
  • 8. © Zühlke 2015 Tipps Android Testing | Alexander Pacha • Auslagern von Businesslogik in separate Bibliothek sinnvoll • Ermöglicht Tests ohne Gerät/Emulator • Verwendung von MVVM/MVP-Pattern um Testbarkeit zu erhöhen • Xamarin Android Player verwenden • Sehr performant zum Entwickeln • Erlaubt einfache Installation von Google Play Services • Viele weitere Tools, die evaluiert und bei Bedarf eingesetzt werden sollten: • Z.B. Robolectric: http://robolectric.org 9. Oktober 2015 Folie 8
  • 9. © Zühlke 2015 Zusammenfassung • Unit- und Integrationstests sehr wichtig • Saubere Architektur notwendig für Testbarkeit • Automatisierte UI-Tests auf realen Geräten notwendig um folgende Probleme und Bugs zu finden: • Unterschiedliches Verhalten von manchen physischen Geräten (z.B. 90°-Rotation des Kamerabildes) • Bugs im SDK • Bugs in der Vendor-Customization Testet hart, testet gründlich, testet automatisch Android Testing | Alexander Pacha Mobile Apps richtig testen 9. Oktober 2015 Folie 9
  • 10. © Zühlke 2015 Links Robotium Quellcode: https://github.com/robotiumtech/robotium Robotium Dokumentation: https://github.com/RobotiumTech/robotium/wiki Robotium Recorder Website: http://robotium.com/ Google „Android Test Support Library“: https://google.github.io/android-testing-support-library/ Testing Support Library Dokumentation: https://developer.android.com/tools/testing-support- library/index.html Android Testing Samples: https://github.com/googlesamples/android-testing Android MVP: http://antonioleiva.com/mvp-android/ Robolectric: http://robolectric.org/ Android Architecture – The Clean Way? http://fernandocejas.com/2014/09/03/architecting-android- the-clean-way/ Android CIs: • http://greenhouseci.com/ • https://circleci.com • Jenkins (http://www.vogella.com/tutorials/Jenkins/article.html#android_jenkinsbuild) Android Testing | Alexander Pacha 9. Oktober 2015 Folie 10