mobile testing @ xing - ist der release train pünktlich
TRANSCRIPT
Sergej Mudruk
Team Lead QA
Daniel Knott
Senior Software Test Engineer
@dnlknttwww.adventuresinqa.com
2
XING AG
• Gegründet 2003 als OpenBC• Seit 2006 XING AG
• > 15 Mio. Mitglieder weltweit• die meisten in der DACH Region
• > 50% Mobile Traffic• App Releases jede 2 Wochen
3
Bedeutung
• iPhone-Einführung im 2007• Verbraucher zunehmend mobil• Apps immer noch nicht
selbstverständlich• Weitere rapide „Mobilisierung“ der
Entwicklung
4
Release-Prozess
• 1 mobiles Entwicklungsteam pro Plattform (iOS/ Android)
• Features-Anforderungen von Domain-Teams
• Zentrale Priorisierung und Entwicklung
• Team-Kooperation Backend / Mobile
• Releases – unregelmäßig / nach Bedarf
• ca. 1 Mal im Monat
• Kein Koordinationsbedarf
7
Team-Aufbau / Plattform Team
• Feature-bezogene Änderungen
- Patterns- Maintenance- Zentrale Komponenten
• Nicht zugeordnete
Komponenten
• Vorantreiben der Innovationen
16
Team-Aufbau / Framework Team
• Infrastrukturelle Änderungen- Bibliotheken- Zentrale Komponenten
• Deployment
• CI-Infrastruktur (Jenkins)
• Tools:- Development- Automatisierung
• Crash Reports (Evaluierung)
17
Release-Train
• 2 zentrale Sub-Teams pro Plattform
• Features in den jeweiligen Domain-Teams
• Team-Kooperation DSTs / mobile Teams
• Vorgaben / Patterns
• Einheitlicher Release-Train-Prozess
20
21
Entwicklung asynchron
Feature Freeze
Public Release
Pre-Release / Beta-Test
1,5 Wochen
Sprintende 1,5 Wochen
insg. 4 Wochen
Wie stellt man die App Qualität sicher ?
• Abgeschlossenes Testen der neuen Features• manuell• Automatisierte Tests
• Erfolgreiche manuelle Regressionstests• Testautomatisierung• Frühe Fehlererkennung
22
Regressionstests
• jedes „unleashed“ Team• eigener Bereich– einzeln und integriert
• zentrales Team• generelle Koordination• allgemeines Testen (Tracking, Update, etc.)• Bereiche in der Teamverantwortung
23
Testautomatisierung - Android
• Unit Tests• Statische Code Analyse• UI Tests- „Espresso for
Android“• Simulatoren / echte Geräte• tägliche Builds• tägliche Deployments
24
Frühe Fehlererkennung - Android
• „Beta Tests“ - Phase- 1 Woche- Google Play Store Tools- User melden sich an
• „Staged rollout“- 20%- 50%- 100%
25
Testautomatisierung - iOS
• Unit Tests + FB Snapshot-Tests
• UI Tests – KIF• mehrere Testsuiten• iOS Simulatoren• 2 Test Systeme• tägliche Builds• automatisches Deployment
29
Frühe Fehlererkennung - iOS
• Pre-release Phase- 1,5 Wochen- XING-intern- jeder Mitarbeiter mit iOS
30
Erfahrungen
• Skalierung funktioniert
• keine zusätzlichen Tools benötigt
• versetzte Releases Android / iOS
• Knowhow Erweiterung benötigt
• zentrales Team koordiniert
• strikt sein
37