Warum ist es notwendig, meine iPhone-App auf einem iPhone-Gerät zu testen?

23

Ich habe eine Anwendung für das iPhone entwickelt und möchte sie jetzt im App Store haben. So viele meiner iOS-Geek-Freunde sagten mir, ich solle es auf einem tatsächlichen Gerät testen, z. B. auf dem iPhone.

Ich frage mich also, warum es notwendig ist, meine iPhone-App auf einem tatsächlichen iPhone-Gerät zu testen, obwohl sie (Apple) einen "Simulator" angegeben haben, der in etwa dem meines Geräts entspricht.

NSS
quelle
3
Das Problem ist mit "fast gleich wie mein Gerät". Fast das Gleiche ist nicht gut genug. Der kleine Unterschied kann die großen Dinge Ihrer Anwendung beeinflussen. Sie müssen es nicht nur auf Hardware testen, sondern auch auf verschiedenen Versionen der Hardware und Software (iOS-Version).
Coral Doe

Antworten:

51

Sie müssen die Anwendung auf einem realen Gerät testen, um zu sehen, wie sie sich verhält:

  • Echte Gerätehardware
  • Echte Internetverbindung (einschließlich der Nutzung eines Mobilfunknetzes gegen WiFi)
  • Deine Finger statt Maus
  • Leistung mit anderen Apps, die im Hintergrund ausgeführt werden
  • Die Einschränkungen des iPhone, wie CPU, Festplattenkapazität und Arbeitsspeicher ( Ein Simulator ist kein Emulator ).
  • Realer Kontext: Ist es einfach, Ihre App im Zug oder auf der Straße zu nutzen? Wie wäre es mit hellem Sonnenlicht oder im Regen?

iOS-Entwickler, bitte setzen Sie diese Liste fort.

Nikolay Fominyh
quelle
Das ist schön.. :). Die sehr einfache Sache, über die ich nachdenken muss ... :) Thnaks
NSS
2
Eigentlich muss er es mit allen Geräten testen, für die es bestimmt ist (iphone3 / 3g / 4 / 4s / 5) sowie mit allen iOS-Versionen 3/4/5/6, oder er muss dieses Gerät / diese Version explizit ausschließen.
ott--
Vielen Dank für den Simulator nicht Emulator Link. Ich wusste nie, dass es einen Unterschied zwischen beiden gibt.
Krishnabhadra
Es gibt offene Geräte-Testlabors, lesen Sie zB mobile.smashingmagazine.com/2012/09/24/… . Vielleicht gibt es einen in deiner Nachbarschaft. Google "Mobile Testing Lab" "Open Device Lab"
Jan Doggen
20

Wenn Sie mit dem Emulator testen, werden Sie nie erfahren, wie es sich anfühlt, wenn ein Benutzer ein echtes Gerät in der Hand hält und mit den Fingern über den Bildschirm gleitet. Infolgedessen können sich Benutzeraktionen, die beim Simulieren mit einem Touchpad auf Ihrem Laptop als reibungslos erwiesen haben, für eine echte Gerätenutzung als recht umständlich herausstellen. Um sicherzustellen, dass Ihre Anwendung in Ordnung ist, testen Sie sie mit einem realen Gerät.

Eine andere Sache, die es wert ist, mit einem echten Gerät getestet zu werden, ist der Batterieverbrauch. Es ist wirklich sicherer, nur mit einem echten Gerät zu testen, als sich darauf zu verlassen, wie gut Simulatorentwickler es geschafft haben, es in ihrem Tool zu reproduzieren.

Es kann andere Dinge geben, die im Simulator einfach nicht nah genug sind. Audio-Lautstärke und Balance zum Beispiel - die Art und Weise, wie sie auf Ihrem Laptop klingt, kann sich von der auf einem echten Telefon unterscheiden. Vibration ist ein weiteres Beispiel, das mit dem Simulator kaum zu erreichen ist. So funktionieren Gyro-Sensoren am realen Telefon. GPS / ortsbezogene Sachen. Usw. usw.


Das Testen von Simulatoren im Vergleich zu realen Geräten ist ein ziemlich wichtiges Thema. In einem meiner vergangenen Projekte war ein wichtiger Teil des kommerziellen Erfolgs eine sorgfältige Abwägung zwischen diesen Arten von Tests, die im Wesentlichen darauf hinausläuft, ständig neue Fragen zu stellen, wie z. B. warum auf dem Gerät?

Echte Arbeit beginnt, wenn man nach dem Grund fragt und in bestimmten Fällen und Situationen die Gründe für die Wahl zwischen Tests am Gerät und im Simulator festlegt.

Durch das Ignorieren von Gerätetests ist Ihr Produkt einem (ziemlich hohen) Risiko ausgesetzt, in die Hände des Endbenutzers zu geraten, wodurch alle Anstrengungen, die Sie in die Entwicklung gesteckt haben, vollständig zunichte gemacht werden. Simulatortests sind jedoch VIEL billiger und für die Automatisierung viel einfacher. Wenn man sich blindlings nur an Tests auf dem Gerät hält, werden ihre Releases möglicherweise wesentlich später und teurer als die der Wettbewerber.

Mücke
quelle
3
+1 zur Hervorhebung des User Experience-Teils. Dies ist ein sehr wichtiger Aspekt, wenn Sie darüber nachdenken, eine Anwendung in einem App Store freizugeben.
Coral Doe
1
Sie hatten einen tollen Kommentar auf dem Whiteboard über die viel höheren Kosten für das Testen eines Geräts im Vergleich zu einem Simulator. Ich denke, das wäre großartig, um in Ihre Antwort aufzunehmen. +1 auch ohne.
PSR
@psr froh, dass es Ihnen gefallen hat - hat eine Antwort aktualisiert, wie Sie vorgeschlagen haben
gnat
7

Aus Erfahrung und einem Auszug aus der am besten bewerteten Antwort:

  • Ihre Finger anstelle der Maus waren der größte Unterschied, als wir Decimation X2 für Windows Phone 7 entwickelten. Es wurde auf einem Emulator codiert, da wir kein WP7 hatten und es war, bevor das WP7 veröffentlicht wurde. Wir hätten möglicherweise vor der Veröffentlichung ein kostenloses WP7 erhalten können, falls der letzte Satz für Sie keinen Sinn ergeben hätte, da wir von Microsoft aufgefordert wurden, einen Starttitel auf ihrem Handy zu haben. Es stellte sich heraus, dass das, was der Benutzer mit seinen Fingern tun sollte, auf dem realen Telefon sehr schwierig war, aber mit einer Maus einfach. Und es hatte mit Bildschirmrandfällen zu tun. Leider mussten bei unserem Spiel immer die Finger am Bildschirmrand sein, was bei einigen Handys aufgrund des abgesenkten Bildschirms und der dicken Hüllen schwierig war. Wir haben tatsächlich einen Patch veröffentlicht, um dies zu beheben. Dies bedeutet, dass allen Erstbenutzern eine schlechte und möglicherweise unbrauchbare Version unseres Spiels. :(

  • Unterschiedliche Hardware-Geschwindigkeit war der nächstgrößere Unterschied. Wir mussten buchstäblich durch die ungenaue Methode raten, unsere Xbox 360-Version des Spiels zu nehmen und sie entsprechend auf die Hälfte der Bildrate (60 fps bis 30 fps) und ein Drittel der GHz (3,0 GHz bis 1,0 GHz) herunterzustufen, und wir vermuteten falsch. Die Prozessoren waren natürlich unterschiedlich, und das wussten wir. Ohne die Hardware mussten wir nur lahm raten. Es war nicht unsere Wahl, da wir kein WP7 hatten, aber wir haben die Lektion gelernt, die ich jetzt mit Ihnen teile. Auf einigen Handys fielen während der intensivsten Teile des Spiels Frames aus. :( Es schien niemanden zu kümmern, da sie annahmen, dass die Verlangsamung für solch intensive Teile angemessen war. Es war also keine große Sache, aber der Punkt ist: Wäre dies eine große Sache gewesen, wäre die "App" aus unserer lahmen Vermutung herausgebrochen worden.

Test auf echter Hardware. Und wenn Sie für verschiedene Telefonhardware codieren, testen Sie auf der unteren Ebene, ob die Leistung ein Problem darstellt.

Xonatron
quelle
6

Der iPhone-Simulator implementiert einige APIs, die das iPhone selbst nicht unterstützt (Die wichtigste, die mir in den Sinn kommt, ist die DOM-XML-API, bei der das iPhone meines Wissens nur SAX unterstützt. Möglicherweise hat sich dies jedoch geändert.)

Sie können damit auch die App „fühlen“. Haben Ihre Schaltflächen die richtige Größe? Fallen die richtigen Knöpfe unter den Daumen? Ist das iPhone bereit, die App auszuführen? Der Simulator ist kein Emulator und fügt Ihrem Desktop-Mac für diese App lediglich Cocoa Touch hinzu. Sie müssen Warnungen zu wenig Arbeitsspeicher und dergleichen simulieren.

ridecar2
quelle
5

Weil Sie nicht viele Benutzer haben werden, die mit einem Simulator in der Tasche herumlaufen.

BEARBEITEN: Wann immer Sie Ihre App auf einem Simulator (oder Emulator) testen, verwenden Sie ein gefälschtes Gerät, das per Definition keine 100% genaue Darstellung der Realität sein kann. Ein Emulator ist zwar genauer als ein Simulator, es gibt jedoch immer noch Unterschiede. Der einzige 100% genaue Emulator ist das Gerät selbst.

Das Entwerfen, Testen und Optimieren von Code auf einem Simulator führt zu einer Anwendung, die für die optimale Arbeit auf einem Simulator optimiert wurde. Ihre Benutzer haben jedoch keine Simulatoren. Sie zielen auf das falsche Gerät. Ein sehr ähnliches; aber nicht das gleiche Gerät, das Ihre Benutzer verwenden werden.

Dies kann zu verschiedenen Problemen führen. Schwerwiegende Probleme wie Bugs und Abstürze haben für Sie mit Sicherheit höchste Priorität. Aber es gibt noch andere; wie Ergonomie. Versuchen Sie, den Simulator in der Hand zu halten. Probier's einfach. Benutzeroberflächenelemente werden auf einem anderen Bildschirm mit möglicherweise unterschiedlicher Farbwiedergabe und sicherlich unterschiedlichen Abmessungen gerendert (ein Problem, das durch die schönen Retina-Displays noch verschärft wird und nicht vollständig gelöst wird, wenn beispielsweise auch ein Retina-Macbook verwendet wird). Sind diese exquisiten Grautöne auf einem Gerät in der Sonne gleichermaßen unterscheidbar?

Kleine Geschwindigkeitsunterschiede und unterschiedliche Sensoremulationen (oder deren Fehlen) können das Erlebnis manchmal dramatisch verändern.

Wenn Ihre Anwendung auf Internetkonnektivität angewiesen ist, können Sie nicht zwischen LTE, 3G, EDGE oder GPRS wechseln, um verschiedene Szenarien oder sogar verschiedene Netzbetreiber zu testen.

Werden Sie Geräte mit Jailbreak unterstützen? Vielleicht sind Sie es nicht, aber wenn ja, sind Sie wahrscheinlich bereit, Ihre App mit einer zu testen. Oder sind Sie sicher, dass Sie eine Umgebung mit Jailbreak erkennen, wenn Sie dies nicht tun?

Ist das iPad-Spiel, das Sie auf dem Simulator entwickeln, gleichermaßen verwendbar, wenn ein Benutzer sein Gewicht hält und seine Finger zum Spielen verwendet? Können unbeabsichtigte Mehrfachberührungen Ihre App beschädigen, was Sie in der sicheren Umgebung des Single-Touch-Simulators (oder des symmetrischen Double-Touch-Simulators) nicht erwartet haben?

Würden Sie sich wohl fühlen, in ein Flugzeug zu steigen, das von einem Piloten befohlen wurde, der den Boden noch nie verlassen hat?

Das Fazit lautet: Bitte verwenden Sie vor dem Versand dasselbe Gerät, das Ihre Benutzer verwenden werden. Keiner von ihnen wird einen Simulator benutzen.

Magma
quelle
4
Einfaches und gültiges Gefühl, aber Details jenseits eines einzelnen Satzes machen Antworten für die Community insgesamt wertvoller.
Jimmy Hoffa
3

praktischer Grund:

1) Sie haben nicht die Funktion "Mail senden".

2) Sie können das Gerät nicht auf den Kopf stellen.

und natürlich schon Grund gesagt:

3) geringe Bandbreite

4) sehr kleine Rechenleistung im Vergleich zum Simulator

5) Open-GL-Aufrufe sind im Simulator etwas anders implementiert

6) Speicherplatz / RAM ..

ingconti
quelle
Mit modernen Simulatoren und Emulatoren können Sie das Gerät drehen. Auch Cloud-basierte, zum Beispiel der von BrowserStack angebotene Nokia Lumia-Emulator.
Dan Dascalescu
einige Drehungen sind fehlerhaft oder nicht implementiert .. versuchen .. :) und Apple heißt es unter: developer.apple.com/library/content/documentation/IDEs/...
ingconti
3

Obwohl erwähnt wurde, dass die Leistung der Hardware im Allgemeinen schlechter ist, muss beachtet werden, dass dies bei OpenGL ES nicht der Fall ist. Der Simulator implementiert es in Software, so dass es nicht ungewöhnlich ist, eine enorme Leistungssteigerung zu bemerken , während er auf dem Gerät selbst läuft.

Darüber hinaus gibt es einige geringfügige Unterschiede zwischen der Software- und der Hardware-Implementierung von Open GL ES, z. B. können Hinweise zur Shader-Genauigkeit unterschiedliche Ausgaben haben.

Bartosz Ciechanowski
quelle
2

Wenn wir Dinge für iOS (oder Android oder Windows Phone) implementieren, entwickeln wir nicht für den Desktop, sondern für das Gerät. Bei einigen Anwendungen mit hohem Rechenaufwand kann dies zu einem normalen Verhalten des Simulators führen, jedoch zu Problemen mit dem tatsächlichen Gerät.

So können Situationen wie diese in späteren Phasen auftreten, wenn wir nicht von Anfang an auf dem Gerät testen:

  • Speicherwarnungen / Abstürze
  • Einstellige OpenGL-Frameraten
KK.
quelle
2

Es gibt einige Funktionen wie PushNotification , Verwendung der Kamera usw., die wir nur auf einem Gerät testen können. Dies sind Funktionen, die nicht auf einem Simulator getestet werden können.

Wenn Sie Ihre App auf einem tatsächlichen Gerät testen, bevor Sie sie an den App Store senden, verringert sich die Wahrscheinlichkeit, dass die App abgelehnt wird. Manchmal funktioniert eine App im Simulator einwandfrei, stürzt jedoch auf einem tatsächlichen Gerät ab. Dies ist der Hauptgrund für die Ablehnung von Apps.

Ravi Sharma
quelle
2

Es kann echte Leistungsunterschiede zwischen dem tatsächlichen Gerät und dem Emulator geben. Wir fanden heraus, dass nur das Testen mit dem Emulator in vielen Fällen zu einer sehr langsamen App führte, was wir nicht erwartet hatten.

Nathan Pilling
quelle
3
Ironischerweise hat eine meiner Apps eine bessere Leistung auf dem tatsächlichen Gerät als auf dem Emulator auf meinem Laptop.
Michael Itzoe
1
@ Nathan: Ich denke, wir verwenden SIMULATOR anstatt EMULATOR! Android SDK haben Emulator, während iOS SDK Simulator bietet .. und es gibt einen Unterschied zwischen Emulator und Simulator. ist nicht? Also habe ich ur ans gelesen, indem ich den Wortemulator durch den Simulator ersetzte. n tnx 2 ans :)
NSS
-1

Die Benutzererfahrung variiert von Gerät zu Gerät aufgrund des unterschiedlichen Betriebssystems und

Hardware-Spezifikationen. Daher ist es notwendig, eine iPhone-App auf dem aktuellen Stand zu testen

Geräte - Mobilgeräte mit verschiedenen iOS-Versionen auf dem Markt.

Obwohl ein Simulator hilfreich ist, um Probleme des Endbenutzers zu identifizieren,

Das Testen der App auf dem Originalgerät hilft bei der Identifizierung und Adressierung von Major

Anliegen des Nutzers.

Johnson
quelle