SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Android Testautomatisierung
mit dem Framework
Robotium
Daniel Knott
XING AG
@dnlkntt
http://www.adventuresinqa.com
Daniel Knott
Manager Quality Assurance
@dnlkntt
daniel.knott@xing.com
Daniel Knott hat einen technischen Hintergrund in verschiedenen Programmiersprachen und Quality Assurance
Tools. Nach seiner Ausbildung bei der IBM Deutschland GmbH studierte er an der Fachhochschule Wiesbaden
Informatik mit dem Schwerpunkt Softwarequalitätssicherung. Seit 2010 arbeitet Daniel Knott als Manager Quality
Assurance bei der XING AG. In verschiedenen Projekten (XING Suche, XING Empfehlungen) war er verantwortlich
für das Testmanagement, für die Ausführung der Testfälle sowie für die Testautomatisierung.
Zur Zeit arbeitet Daniel Knott im XING mobile Team. Dort ist er verantwortlich für das Testmanagement aller Mobilen
Apps der XING AG, dazu gehören iPhone, Android, touch.xing.com, Windows Phone 7 und die Blackberry App.
Neben dem Testmanagement betreut Daniel die Testautomatisierung der iPhone und Android App. Zusätzlich zu
seiner Tätigkeit bei der XING AG ist Daniel ein Sprecher auf agilen Konferenzen.
Sein XING Profil https://www.xing.com/profile/Daniel_Knott.
Sein Blog http://www.adventuresinqa.com
1.  XING AG
2.  Warum Testautomatisierung?
3.  Robotium
4.  Code / Live Demo
5.  Vor -und Nachteile
6.  Best Practices
Inhaltsverzeichnis
3Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
4Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
XING AG
 Gegründet 2003 als OpenBC
 Seit 2006 XING AG
 > 11.7 Mio. Mitglieder
 ~25% Mobiler Traffic
XING AG
5Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
6Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Releases im Jahr
50
XING AG
7Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
XING AG
8Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Warum
Testautomatisierung?
Warum Testautomatisierung?
9Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Warum Testautomatisierung?
10Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
App	
  lässt	
  sich	
  nicht	
  installieren	
  
Layout-­‐Probleme	
  
Probleme	
  mit	
  Landscape	
  /	
  Portrait	
  Mode	
  
Falsche	
  Übersetzung	
  
Fehlende	
  Ressourcen	
  
Keine	
  Verbindung	
  zum	
  Backend	
  
11Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Warum Testautomatisierung?
12Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Warum Testautomatisierung?
13Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Robotium
Robotium – Allgemeines
14Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Black	
  Box	
  Test	
  Tool	
  
Basiert	
  auf	
  Java	
  und	
  JUnit	
  3	
  
Support	
  von	
  Android	
  1.6	
  –	
  4.x	
  
Simuliert	
  User-­‐InterakQonen	
  
Einfacher	
  AuSau	
  
Device	
  &	
  Simulator	
  
Testet	
  APK	
  Files	
  
Robotium – Methoden
15Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
It‘s likeSelenium,
but for
AndroidTM
clickOnButton(text)
clickOnText(text)
clickOnImage(id)
clickInList(line)
searchText(text)
enterText(id, text)
waitForActivity(name, timeout)
waitForView(view)
16Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Code-Beispiele
Code – Login
17Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
	
  public	
  void	
  testLoginFailed()	
  throws	
  Exception	
  {	
  
	
  solo.enterText(0,	
  “wrongusername”);	
  
	
  solo.enterText(1,	
  “wrongpassword”);	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_login));	
  
	
  solo.waitForActivity("com.xing.android.activities.SpinnerLoginActivity",	
  2000);	
  
	
  	
  	
  	
  assertTrue("ERROR:	
  Error	
  message	
  is	
  not	
  shown",	
  	
  
	
  	
  	
  	
  verifyTextIsPresent(solo.getString(	
  
	
  	
  	
  	
  	
  	
  	
  com.xing.android.R.string.dialog_error_body)));	
  
	
  	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.dialog_button));	
  
	
  }	
  
Code – Login
18Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
	
  public	
  void	
  testLoginFailed()	
  throws	
  Exception	
  {	
  
	
  solo.enterText(0,	
  “wrongusername”);	
  
	
  solo.enterText(1,	
  “wrongpassword”);	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_login));	
  
	
  solo.waitForActivity("com.xing.android.activities.SpinnerLoginActivity",	
  2000);	
  
	
  	
  	
  	
  assertTrue("ERROR:	
  Error	
  message	
  is	
  not	
  shown",	
  	
  
	
  	
  	
  	
  verifyTextIsPresent(solo.getString(	
  
	
  	
  	
  	
  	
  	
  	
  com.xing.android.R.string.dialog_error_body)));	
  
	
  	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.dialog_button));	
  
	
  }	
  
Code – Login
19Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
	
  public	
  void	
  testLoginFailed()	
  throws	
  Exception	
  {	
  
	
  solo.enterText(0,	
  “wrongusername”);	
  
	
  solo.enterText(1,	
  “wrongpassword”);	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_login));	
  
	
  solo.waitForActivity("com.xing.android.activities.SpinnerLoginActivity",	
  2000);	
  
	
  	
  	
  	
  assertTrue("ERROR:	
  Error	
  message	
  is	
  not	
  shown",	
  	
  
	
  	
  	
  	
  verifyTextIsPresent(solo.getString(	
  
	
  	
  	
  	
  	
  	
  	
  com.xing.android.R.string.dialog_error_body)));	
  
	
  	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.dialog_button));	
  
	
  }	
  
Code – Login
20Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
	
  public	
  void	
  testLoginFailed()	
  throws	
  Exception	
  {	
  
	
  solo.enterText(0,	
  “wrongusername”);	
  
	
  solo.enterText(1,	
  “wrongpassword”);	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_login));	
  
	
  solo.waitForActivity("com.xing.android.activities.SpinnerLoginActivity",	
  2000);	
  
	
  	
  	
  	
  assertTrue("ERROR:	
  Error	
  message	
  is	
  not	
  shown",	
  	
  
	
  	
  	
  	
  verifyTextIsPresent(solo.getString(	
  
	
  	
  	
  	
  	
  	
  	
  com.xing.android.R.string.dialog_error_body)));	
  
	
  	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.dialog_button));	
  
	
  }	
  
Code – Login
21Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Code – Status Update
22Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
	
  public	
  void	
  testStatusUpdate()	
  throws	
  Exception	
  {	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_news));	
  
	
  solo.enterText(0,	
  “bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”);	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_send));	
  
	
  solo.clickOnMenuItem(solo.getString(com.xing.android.R.string.menu_refresh));	
  
	
  assertTrue("ERROR:	
  Update	
  is	
  not	
  shown",	
  	
  
	
  	
  	
  	
  	
   	
  searchText(“bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”));	
  
	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_delete));	
  
	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_yes));	
  
	
  	
  	
  assertFalse("ERROR:	
  Update	
  is	
  still	
  shown",	
  	
  
	
  	
   	
  searchText(“bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”));	
  
	
  }	
  
23Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
	
  public	
  void	
  testStatusUpdate()	
  throws	
  Exception	
  {	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_news));	
  
	
  solo.enterText(0,	
  “bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”);	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_send));	
  
	
  solo.clickOnMenuItem(solo.getString(com.xing.android.R.string.menu_refresh));	
  
	
  assertTrue("ERROR:	
  Update	
  is	
  not	
  shown",	
  	
  
	
  	
  	
  	
  	
   	
  searchText(“bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”));	
  
	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_delete));	
  
	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_yes));	
  
	
  	
  	
  assertFalse("ERROR:	
  Update	
  is	
  still	
  shown",	
  	
  
	
  	
   	
  searchText(“bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”));	
  
	
  }	
  
Code – Status Update
24Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
	
  public	
  void	
  testStatusUpdate()	
  throws	
  Exception	
  {	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_news));	
  
	
  solo.enterText(0,	
  “bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”);	
  
	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_send));	
  
	
  solo.clickOnMenuItem(solo.getString(com.xing.android.R.string.menu_refresh));	
  
	
  assertTrue("ERROR:	
  Update	
  is	
  not	
  shown",	
  	
  
	
  	
  	
  	
  	
   	
  searchText(“bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”));	
  
	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_delete));	
  
	
  	
  solo.clickOnButton(solo.getString(com.xing.android.R.string.button_yes));	
  
	
  	
  	
  assertFalse("ERROR:	
  Update	
  is	
  still	
  shown",	
  	
  
	
  	
   	
  searchText(“bin	
  auf	
  der	
  Mobile	
  Developer	
  Conference”));	
  
	
  }	
  
Code – Status Update
25Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Code – Status Update
26Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Vor -und Nachteile
Vorteile
27Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Testen auf echter Hardware
Verschiedene Versionen testen
Einfacher Aufbau
App Source Code nicht notwendig
Integration in CI Server (Jenkins)
Open Source
Starke Community
Nachteile
28Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Ausführungszeit sehr langsam
Kein Web-View- oder Flash-Support
Keine Screenshotfunktion
Kein Multi Device Support
Kein Zugriff auf andere APKs
Reaktion auf Anrufe, SMS, Tweets
Kamera, Sensoren, Bluetooth
29Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Best
Practices
Best Practices
30Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Gerootete Geräte meiden
Testcode und Entwicklungscode in gleicher Sprache
Sicherung aller Tests in einer Versionskontrolle
Tools kombinieren
Continuous Integration Server nutzen
Android Simulator meiden
In allen Netzen Testen
Die Kunden kennen!
Das professionelle Netzwerk
www.xing.com
Vielen Dank
für Ihre
Aufmerksamkeit
31Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
Daniel Knott
Manager Quality Assurance
daniel.knott@xing.com
@dnlkntt
http://www.adventuresinqa.com/
Links & Referenzen
32Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
•  Robotium
http://code.google.com/p/robotium/
•  Android Logo
http://www.android.com/media/wallpaper/gif/android_logo.gif
•  Twitter Logo https://si0.twimg.com/a/1318896278/images/logos/twitter_newbird_white.png
•  Businesswoman
http://www.istockphoto.com/stock-photo-16742115-businesswoman-holding-a-blank-
sign-isolated.php
•  Letters, by davide vizzini limbtehttp://www.flickr.com/photos/limbte/4007115435/
•  Robotium Logo
http://f.hatena.ne.jp/images/fotolife/r/re_shikajiro/20110601/20110601224550.jpg
•  Samsung Logo
http://samsung.de/webdownloads/pressedownloads/samsung_standard_brandline_c.jpg
•  HTC Logo http://fs02.androidpit.info/userfiles/44704/image/Bilder/HTC/HTC_Logo.jpg
33Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
•  LG Logo
http://upload.wikimedia.org/wikipedia/de/f/f1/LG-Logo.svg
•  Sony Ericsson Logo
http://www.xginsider.com/wp-content/uploads/2010/09/Sony-Ericsson-Logo.jpg
•  Motorola Logo
http://www.android-hilfe.de/attachments/android-news/42706d1310665896-motorola-atrix-
ab-sofort-deutschland-erhaeltlich-ohne-lapdock-logo-motorola.jpg]
•  Huawei Logo
http://www.android.com/media/wallpaper/gif/android_logo.gif
•  Iqnite Logo
http://www.bredex.de/web/tl_files/BredexDateien/pictures/events/
iqnite_Logo_Deutschland2012_rgb.jpg
•  Google Play Logo
http://www.android.com/images/brand/android_app_on_play_logo_small.png
•  Apple App Store Logo http://www.inext.me/wp-content/uploads/2011/09/
app-store_logo.png
•  Windows Market Place Logo http://modmyi.com/attachments/forums/iphone-4-
new-skins-themes-launches/483774d1290368882-release-windows-phone-7-hd-market-
place-2x.png
Links & Referenzen

Más contenido relacionado

Ähnlich wie Mobile Testautomatisierung mit Robotium

UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...Nico Orschel
 
Collaboration Days 2011 - Mobile Anwendungen für SharePoint mit HTML5
Collaboration Days 2011 - Mobile Anwendungen für SharePoint mit HTML5Collaboration Days 2011 - Mobile Anwendungen für SharePoint mit HTML5
Collaboration Days 2011 - Mobile Anwendungen für SharePoint mit HTML5Christian Heindel
 
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
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitNico Orschel
 
Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009greenrobot
 
Niemals nach Mitternacht füttern - Grüne Roboter überall!
Niemals nach Mitternacht füttern - Grüne Roboter überall!Niemals nach Mitternacht füttern - Grüne Roboter überall!
Niemals nach Mitternacht füttern - Grüne Roboter überall!inovex GmbH
 
Dominik Helleberg Widgets Wjax
Dominik Helleberg Widgets WjaxDominik Helleberg Widgets Wjax
Dominik Helleberg Widgets WjaxDominik Helleberg
 
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)André Krämer
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)Robin Sedlaczek
 
Sencha Touch & PhoneGap
Sencha Touch & PhoneGapSencha Touch & PhoneGap
Sencha Touch & PhoneGapStefan Kolb
 
Erstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-AppsErstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-AppsRalf Lütke
 
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Nico Orschel
 
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...Michael Maretzke
 
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis Intland Software GmbH
 
Wearables, Smartphones & Co. im Unternehmenseinsatz
Wearables, Smartphones & Co. im UnternehmenseinsatzWearables, Smartphones & Co. im Unternehmenseinsatz
Wearables, Smartphones & Co. im UnternehmenseinsatzChristian Sauter
 
Multiscreen Experience Design (September 2012, MuC UP12)
Multiscreen Experience Design (September 2012, MuC UP12)Multiscreen Experience Design (September 2012, MuC UP12)
Multiscreen Experience Design (September 2012, MuC UP12)Wolfram Nagel
 
Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Jürg Stuker
 

Ähnlich wie Mobile Testautomatisierung mit Robotium (20)

UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
 
Collaboration Days 2011 - Mobile Anwendungen für SharePoint mit HTML5
Collaboration Days 2011 - Mobile Anwendungen für SharePoint mit HTML5Collaboration Days 2011 - Mobile Anwendungen für SharePoint mit HTML5
Collaboration Days 2011 - Mobile Anwendungen für SharePoint mit HTML5
 
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...
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Codeception VisualCeption
Codeception VisualCeptionCodeception VisualCeption
Codeception VisualCeption
 
Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009
 
Niemals nach Mitternacht füttern - Grüne Roboter überall!
Niemals nach Mitternacht füttern - Grüne Roboter überall!Niemals nach Mitternacht füttern - Grüne Roboter überall!
Niemals nach Mitternacht füttern - Grüne Roboter überall!
 
Dominik Helleberg Widgets Wjax
Dominik Helleberg Widgets WjaxDominik Helleberg Widgets Wjax
Dominik Helleberg Widgets Wjax
 
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)
 
Sencha Touch & PhoneGap
Sencha Touch & PhoneGapSencha Touch & PhoneGap
Sencha Touch & PhoneGap
 
Mobile Applikationen: Entwicklung, Rollout, Wartung - Tipps und Tricks für di...
Mobile Applikationen: Entwicklung, Rollout, Wartung - Tipps und Tricks für di...Mobile Applikationen: Entwicklung, Rollout, Wartung - Tipps und Tricks für di...
Mobile Applikationen: Entwicklung, Rollout, Wartung - Tipps und Tricks für di...
 
Die Android Plattform
Die Android PlattformDie Android Plattform
Die Android Plattform
 
Erstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-AppsErstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-Apps
 
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
 
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
 
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
 
Wearables, Smartphones & Co. im Unternehmenseinsatz
Wearables, Smartphones & Co. im UnternehmenseinsatzWearables, Smartphones & Co. im Unternehmenseinsatz
Wearables, Smartphones & Co. im Unternehmenseinsatz
 
Multiscreen Experience Design (September 2012, MuC UP12)
Multiscreen Experience Design (September 2012, MuC UP12)Multiscreen Experience Design (September 2012, MuC UP12)
Multiscreen Experience Design (September 2012, MuC UP12)
 
Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Top 10 Internet Trends 2007
Top 10 Internet Trends 2007
 

Mehr von Daniel Knott

How To Grow Your Testing Team Members
How To Grow Your Testing Team MembersHow To Grow Your Testing Team Members
How To Grow Your Testing Team MembersDaniel Knott
 
Softskills Software Testers
Softskills Software TestersSoftskills Software Testers
Softskills Software TestersDaniel Knott
 
From Testing to Product Management
From Testing to Product ManagementFrom Testing to Product Management
From Testing to Product ManagementDaniel Knott
 
Mobile App Testing ScanAgile 2012
Mobile App Testing ScanAgile 2012Mobile App Testing ScanAgile 2012
Mobile App Testing ScanAgile 2012Daniel Knott
 
Challenges in mobile test automation - 2011
Challenges in mobile test automation - 2011Challenges in mobile test automation - 2011
Challenges in mobile test automation - 2011Daniel Knott
 
How to scale mobile testing across several teams
How to scale mobile testing across several teamsHow to scale mobile testing across several teams
How to scale mobile testing across several teamsDaniel Knott
 
10 Mobile App Testing Mistakes To Avoid by Daniel Knott
10 Mobile App Testing Mistakes To Avoid by Daniel Knott10 Mobile App Testing Mistakes To Avoid by Daniel Knott
10 Mobile App Testing Mistakes To Avoid by Daniel KnottDaniel Knott
 
How to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several TeamsHow to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several TeamsDaniel Knott
 
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ünktlichDaniel Knott
 
Mobile testing @ stughh
Mobile testing @ stughhMobile testing @ stughh
Mobile testing @ stughhDaniel Knott
 
8 Jahre Agiles Testen - Was kommt jetzt?
8 Jahre Agiles Testen - Was kommt jetzt?8 Jahre Agiles Testen - Was kommt jetzt?
8 Jahre Agiles Testen - Was kommt jetzt?Daniel Knott
 
Hands-On Mobile App Testing
Hands-On Mobile App TestingHands-On Mobile App Testing
Hands-On Mobile App TestingDaniel Knott
 
How to Break your App - Workshop - Testbash 2015
How to Break your App - Workshop - Testbash 2015How to Break your App - Workshop - Testbash 2015
How to Break your App - Workshop - Testbash 2015Daniel Knott
 
How to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App TestingHow to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App TestingDaniel Knott
 
Best Practices in Mobile App Testing @STUGRM
Best Practices in Mobile App Testing @STUGRMBest Practices in Mobile App Testing @STUGRM
Best Practices in Mobile App Testing @STUGRMDaniel Knott
 

Mehr von Daniel Knott (16)

Remote Leadership
Remote LeadershipRemote Leadership
Remote Leadership
 
How To Grow Your Testing Team Members
How To Grow Your Testing Team MembersHow To Grow Your Testing Team Members
How To Grow Your Testing Team Members
 
Softskills Software Testers
Softskills Software TestersSoftskills Software Testers
Softskills Software Testers
 
From Testing to Product Management
From Testing to Product ManagementFrom Testing to Product Management
From Testing to Product Management
 
Mobile App Testing ScanAgile 2012
Mobile App Testing ScanAgile 2012Mobile App Testing ScanAgile 2012
Mobile App Testing ScanAgile 2012
 
Challenges in mobile test automation - 2011
Challenges in mobile test automation - 2011Challenges in mobile test automation - 2011
Challenges in mobile test automation - 2011
 
How to scale mobile testing across several teams
How to scale mobile testing across several teamsHow to scale mobile testing across several teams
How to scale mobile testing across several teams
 
10 Mobile App Testing Mistakes To Avoid by Daniel Knott
10 Mobile App Testing Mistakes To Avoid by Daniel Knott10 Mobile App Testing Mistakes To Avoid by Daniel Knott
10 Mobile App Testing Mistakes To Avoid by Daniel Knott
 
How to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several TeamsHow to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several Teams
 
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
 
Mobile testing @ stughh
Mobile testing @ stughhMobile testing @ stughh
Mobile testing @ stughh
 
8 Jahre Agiles Testen - Was kommt jetzt?
8 Jahre Agiles Testen - Was kommt jetzt?8 Jahre Agiles Testen - Was kommt jetzt?
8 Jahre Agiles Testen - Was kommt jetzt?
 
Hands-On Mobile App Testing
Hands-On Mobile App TestingHands-On Mobile App Testing
Hands-On Mobile App Testing
 
How to Break your App - Workshop - Testbash 2015
How to Break your App - Workshop - Testbash 2015How to Break your App - Workshop - Testbash 2015
How to Break your App - Workshop - Testbash 2015
 
How to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App TestingHow to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App Testing
 
Best Practices in Mobile App Testing @STUGRM
Best Practices in Mobile App Testing @STUGRMBest Practices in Mobile App Testing @STUGRM
Best Practices in Mobile App Testing @STUGRM
 

Mobile Testautomatisierung mit Robotium

  • 1. Android Testautomatisierung mit dem Framework Robotium Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com
  • 2. Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen technischen Hintergrund in verschiedenen Programmiersprachen und Quality Assurance Tools. Nach seiner Ausbildung bei der IBM Deutschland GmbH studierte er an der Fachhochschule Wiesbaden Informatik mit dem Schwerpunkt Softwarequalitätssicherung. Seit 2010 arbeitet Daniel Knott als Manager Quality Assurance bei der XING AG. In verschiedenen Projekten (XING Suche, XING Empfehlungen) war er verantwortlich für das Testmanagement, für die Ausführung der Testfälle sowie für die Testautomatisierung. Zur Zeit arbeitet Daniel Knott im XING mobile Team. Dort ist er verantwortlich für das Testmanagement aller Mobilen Apps der XING AG, dazu gehören iPhone, Android, touch.xing.com, Windows Phone 7 und die Blackberry App. Neben dem Testmanagement betreut Daniel die Testautomatisierung der iPhone und Android App. Zusätzlich zu seiner Tätigkeit bei der XING AG ist Daniel ein Sprecher auf agilen Konferenzen. Sein XING Profil https://www.xing.com/profile/Daniel_Knott. Sein Blog http://www.adventuresinqa.com
  • 3. 1.  XING AG 2.  Warum Testautomatisierung? 3.  Robotium 4.  Code / Live Demo 5.  Vor -und Nachteile 6.  Best Practices Inhaltsverzeichnis 3Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
  • 4. 4Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 XING AG  Gegründet 2003 als OpenBC  Seit 2006 XING AG  > 11.7 Mio. Mitglieder  ~25% Mobiler Traffic
  • 5. XING AG 5Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
  • 6. 6Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Releases im Jahr 50 XING AG
  • 7. 7Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 XING AG
  • 8. 8Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Warum Testautomatisierung?
  • 9. Warum Testautomatisierung? 9Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
  • 10. Warum Testautomatisierung? 10Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 App  lässt  sich  nicht  installieren   Layout-­‐Probleme   Probleme  mit  Landscape  /  Portrait  Mode   Falsche  Übersetzung   Fehlende  Ressourcen   Keine  Verbindung  zum  Backend  
  • 11. 11Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Warum Testautomatisierung?
  • 12. 12Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Warum Testautomatisierung?
  • 13. 13Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Robotium
  • 14. Robotium – Allgemeines 14Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Black  Box  Test  Tool   Basiert  auf  Java  und  JUnit  3   Support  von  Android  1.6  –  4.x   Simuliert  User-­‐InterakQonen   Einfacher  AuSau   Device  &  Simulator   Testet  APK  Files  
  • 15. Robotium – Methoden 15Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 It‘s likeSelenium, but for AndroidTM clickOnButton(text) clickOnText(text) clickOnImage(id) clickInList(line) searchText(text) enterText(id, text) waitForActivity(name, timeout) waitForView(view)
  • 16. 16Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Code-Beispiele
  • 17. Code – Login 17Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012  public  void  testLoginFailed()  throws  Exception  {    solo.enterText(0,  “wrongusername”);    solo.enterText(1,  “wrongpassword”);    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_login));    solo.waitForActivity("com.xing.android.activities.SpinnerLoginActivity",  2000);          assertTrue("ERROR:  Error  message  is  not  shown",            verifyTextIsPresent(solo.getString(                com.xing.android.R.string.dialog_error_body)));        solo.clickOnButton(solo.getString(com.xing.android.R.string.dialog_button));    }  
  • 18. Code – Login 18Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012  public  void  testLoginFailed()  throws  Exception  {    solo.enterText(0,  “wrongusername”);    solo.enterText(1,  “wrongpassword”);    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_login));    solo.waitForActivity("com.xing.android.activities.SpinnerLoginActivity",  2000);          assertTrue("ERROR:  Error  message  is  not  shown",            verifyTextIsPresent(solo.getString(                com.xing.android.R.string.dialog_error_body)));        solo.clickOnButton(solo.getString(com.xing.android.R.string.dialog_button));    }  
  • 19. Code – Login 19Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012  public  void  testLoginFailed()  throws  Exception  {    solo.enterText(0,  “wrongusername”);    solo.enterText(1,  “wrongpassword”);    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_login));    solo.waitForActivity("com.xing.android.activities.SpinnerLoginActivity",  2000);          assertTrue("ERROR:  Error  message  is  not  shown",            verifyTextIsPresent(solo.getString(                com.xing.android.R.string.dialog_error_body)));        solo.clickOnButton(solo.getString(com.xing.android.R.string.dialog_button));    }  
  • 20. Code – Login 20Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012  public  void  testLoginFailed()  throws  Exception  {    solo.enterText(0,  “wrongusername”);    solo.enterText(1,  “wrongpassword”);    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_login));    solo.waitForActivity("com.xing.android.activities.SpinnerLoginActivity",  2000);          assertTrue("ERROR:  Error  message  is  not  shown",            verifyTextIsPresent(solo.getString(                com.xing.android.R.string.dialog_error_body)));        solo.clickOnButton(solo.getString(com.xing.android.R.string.dialog_button));    }  
  • 21. Code – Login 21Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012
  • 22. Code – Status Update 22Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012  public  void  testStatusUpdate()  throws  Exception  {    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_news));    solo.enterText(0,  “bin  auf  der  Mobile  Developer  Conference”);    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_send));    solo.clickOnMenuItem(solo.getString(com.xing.android.R.string.menu_refresh));    assertTrue("ERROR:  Update  is  not  shown",                searchText(“bin  auf  der  Mobile  Developer  Conference”));      solo.clickOnButton(solo.getString(com.xing.android.R.string.button_delete));      solo.clickOnButton(solo.getString(com.xing.android.R.string.button_yes));        assertFalse("ERROR:  Update  is  still  shown",          searchText(“bin  auf  der  Mobile  Developer  Conference”));    }  
  • 23. 23Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012  public  void  testStatusUpdate()  throws  Exception  {    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_news));    solo.enterText(0,  “bin  auf  der  Mobile  Developer  Conference”);    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_send));    solo.clickOnMenuItem(solo.getString(com.xing.android.R.string.menu_refresh));    assertTrue("ERROR:  Update  is  not  shown",                searchText(“bin  auf  der  Mobile  Developer  Conference”));      solo.clickOnButton(solo.getString(com.xing.android.R.string.button_delete));      solo.clickOnButton(solo.getString(com.xing.android.R.string.button_yes));        assertFalse("ERROR:  Update  is  still  shown",          searchText(“bin  auf  der  Mobile  Developer  Conference”));    }   Code – Status Update
  • 24. 24Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012  public  void  testStatusUpdate()  throws  Exception  {    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_news));    solo.enterText(0,  “bin  auf  der  Mobile  Developer  Conference”);    solo.clickOnButton(solo.getString(com.xing.android.R.string.button_send));    solo.clickOnMenuItem(solo.getString(com.xing.android.R.string.menu_refresh));    assertTrue("ERROR:  Update  is  not  shown",                searchText(“bin  auf  der  Mobile  Developer  Conference”));      solo.clickOnButton(solo.getString(com.xing.android.R.string.button_delete));      solo.clickOnButton(solo.getString(com.xing.android.R.string.button_yes));        assertFalse("ERROR:  Update  is  still  shown",          searchText(“bin  auf  der  Mobile  Developer  Conference”));    }   Code – Status Update
  • 25. 25Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Code – Status Update
  • 26. 26Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Vor -und Nachteile
  • 27. Vorteile 27Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Testen auf echter Hardware Verschiedene Versionen testen Einfacher Aufbau App Source Code nicht notwendig Integration in CI Server (Jenkins) Open Source Starke Community
  • 28. Nachteile 28Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Ausführungszeit sehr langsam Kein Web-View- oder Flash-Support Keine Screenshotfunktion Kein Multi Device Support Kein Zugriff auf andere APKs Reaktion auf Anrufe, SMS, Tweets Kamera, Sensoren, Bluetooth
  • 29. 29Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Best Practices
  • 30. Best Practices 30Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Gerootete Geräte meiden Testcode und Entwicklungscode in gleicher Sprache Sicherung aller Tests in einer Versionskontrolle Tools kombinieren Continuous Integration Server nutzen Android Simulator meiden In allen Netzen Testen Die Kunden kennen!
  • 31. Das professionelle Netzwerk www.xing.com Vielen Dank für Ihre Aufmerksamkeit 31Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 Daniel Knott Manager Quality Assurance daniel.knott@xing.com @dnlkntt http://www.adventuresinqa.com/
  • 32. Links & Referenzen 32Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 •  Robotium http://code.google.com/p/robotium/ •  Android Logo http://www.android.com/media/wallpaper/gif/android_logo.gif •  Twitter Logo https://si0.twimg.com/a/1318896278/images/logos/twitter_newbird_white.png •  Businesswoman http://www.istockphoto.com/stock-photo-16742115-businesswoman-holding-a-blank- sign-isolated.php •  Letters, by davide vizzini limbtehttp://www.flickr.com/photos/limbte/4007115435/ •  Robotium Logo http://f.hatena.ne.jp/images/fotolife/r/re_shikajiro/20110601/20110601224550.jpg •  Samsung Logo http://samsung.de/webdownloads/pressedownloads/samsung_standard_brandline_c.jpg •  HTC Logo http://fs02.androidpit.info/userfiles/44704/image/Bilder/HTC/HTC_Logo.jpg
  • 33. 33Android Testautomatisierung mit dem Framework Robotium | Daniel Knott | @dnlkntt | Iqnite 2012 | Düsseldorf, 24.04.2012 •  LG Logo http://upload.wikimedia.org/wikipedia/de/f/f1/LG-Logo.svg •  Sony Ericsson Logo http://www.xginsider.com/wp-content/uploads/2010/09/Sony-Ericsson-Logo.jpg •  Motorola Logo http://www.android-hilfe.de/attachments/android-news/42706d1310665896-motorola-atrix- ab-sofort-deutschland-erhaeltlich-ohne-lapdock-logo-motorola.jpg] •  Huawei Logo http://www.android.com/media/wallpaper/gif/android_logo.gif •  Iqnite Logo http://www.bredex.de/web/tl_files/BredexDateien/pictures/events/ iqnite_Logo_Deutschland2012_rgb.jpg •  Google Play Logo http://www.android.com/images/brand/android_app_on_play_logo_small.png •  Apple App Store Logo http://www.inext.me/wp-content/uploads/2011/09/ app-store_logo.png •  Windows Market Place Logo http://modmyi.com/attachments/forums/iphone-4- new-skins-themes-launches/483774d1290368882-release-windows-phone-7-hd-market- place-2x.png Links & Referenzen