Apps unter realen Bedingungen testen

Im Büro ist alles prima – die App läuft, reagiert schnell und alles sieht gut aus. Unterwegs sieht das Ganze aber schon ganz anders aus…Besonders Apps, die in irgendeiner Form auf Netzwerk-Ressourcen zugreifen (und das sind mittlerweile sehr viele), müssen logischerweise Daten laden und mit Backend-Servern kommunizieren. Am Arbeitsplatz des Entwicklers ist das kein Problem, hier steht ein schnelles und zuverlässiges WLAN zur Verfügung.

Aber Apps werden in ganz unterschiedlichen Nutzungskontexten verwendet: zuhause, in der Strassenbahn oder unterwegs in ländlichen Gegenden. Wie dort die Netzabdeckung ist, lässt sich nur schwerlich vorhersagen und grundsätzlich sollte mit dem „Schlimmsten“ gerechnet werden (EDGE oder sogar GRPS). Auch kann es bei unzuverlässigen Verbindungen zu gehäuften Paketverlusten kommen, Daten müssen also mehrmals übertragen werden.

Natürlich sollte die App auch in solchen Situationen halbwegs benutzbar bleiben, oder zumindest einen deutlichen Hinweis geben, dass die Übertragungsqualität momentan nicht ausreichend ist. Funktionen, die hohe Datenmengen abrufen, könnten dann etwa vorübergehend deaktiviert werden.

Wie aber können App-Programmierer solche Szenarien testen? Die beschwerliche Möglichkeit ist natürlich, die App in genau dem Kontext zu nutzen, in dem die Probleme auftreten können. Also öfters mal raus auf’s Land, schadet sicherlich nicht…

Etwas intelligenter ist dagegen die Nutzung eines Traffic Shapers. Dabei wird durch ein zwischengeschaltetes Programm sämtlicher Netzwerk-Verkehr künstlich gedrosselt, und es können weitere Störungen simuliert werden. Dies kann beispielsweise in Form eines Proxy-Servers realisiert werden. Nachteil hier ist, dass das Smartphone umkonfiguriert, und natürlich ein zusätzliches Programm auf einem PC oder MAC installiert werden muss.

Apple macht es Entwicklern auch hier wieder einmal sehr einfach: Bereits seit iOS 6 ist der sogenannte Network Link Conditioner fest im Mobil-Betriebssystem integriert und kann ganz einfach aktiviert werden. Dazu muss das betreffende iPhone, iPad oder der iPod Touch zunächst in Xcode als Entwicklergerät freigeschaltet sein. Danach gibt es in den iOS-Einstellungen den Menüpunkt Entwickler und auf der nächsten Seite den Network Link Conditioner. Hier gibt es nun bereits etliche vorgefertigte Profile wie etwa 3G, EDGE, DSL oder für hohe Latenzen. Eigene Profile können beliebig konfiguriert werden. Einfach den Status auf enable setzen, und schon wird sämtlicher Datenverkehr entsprechend „verschlechtert“.

Übrigens gibt es ein ähnliches Tool auch für die großen Macs, dieses steht als Zusatztool für Xcode zum Download bereit. Ein Apple Developer Account wird allerdings vorausgesetzt. Für Android Endgeräte ist mir leider kein solcher Mechanismus bekannt, möglicherweise gibt es Optionen für Geräte mit Jailbreak.

Quasi noch in eigener Sache: Mir fallen häufig Apps auf, die eine Online-Verbindung voraussetzen. Bitte, liebe App-Entwickler: gebt wenigstens einen Hinweis, wenn keine Datenverbindung zur Verfügung steht und lasst die App nicht einfach sang- und klanglos abstürzen…

network-link-conditioner

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.