Dlaczego konieczne jest przetestowanie mojej aplikacji iPhone na rzeczywistym urządzeniu iPhone

23

Opracowałem jedną aplikację na iPhone'a, a teraz chcę ją w App Store. Tak wielu moich maniaków iOS-a kazało mi przetestować to na prawdziwym urządzeniu, tj. Na iPhonie.

Zastanawiam się więc, dlaczego konieczne jest przetestowanie mojej aplikacji iPhone na rzeczywistym urządzeniu iPhone, mimo że (Apple) dali „symulator”, który jest prawie taki sam jak moje urządzenie?

NSS
źródło
3
Problem polega na tym, że „prawie tak samo jak moje urządzenie”. Prawie to samo nie wystarczy. Niewielka różnica może wpłynąć na wspaniałe cechy Twojej aplikacji. Nie tylko musisz go przetestować na sprzęcie, ale musisz też pomyśleć o przetestowaniu różnych wersji sprzętu i oprogramowania (wersja iOS).
Coral Doe

Odpowiedzi:

51

Musisz przetestować aplikację na prawdziwym urządzeniu, aby przynajmniej sprawdzić, jak działa:

  • Prawdziwy sprzęt
  • Prawdziwe połączenie z Internetem (w tym korzystanie z sieci komórkowej vs WiFi)
  • Twoje palce zamiast myszy
  • Wydajność z innymi aplikacjami działającymi w tle
  • Ograniczenia iPhone'a, takie jak procesor, pojemność dysku i pamięć ( Symulator nie jest emulatorem ).
  • Prawdziwy kontekst: czy korzystanie z aplikacji w pociągu jest łatwe, czy idąc ulicą? A może w jasnym świetle słonecznym lub w deszczu?

Programiści iOS, kontynuuj tę listę.

Nikolay Fominyh
źródło
To miłe.. :). Bardzo prosta rzecz, o której muszę pomyśleć ... :) Thnaks
NSS
2
W rzeczywistości musi go przetestować na wszystkich urządzeniach, do których jest przeznaczony (iphone3 / 3g / 4 / 4s / 5), a także we wszystkich wersjach iOS 3/4/5/6, lub musi wyraźnie wykluczyć to urządzenie / wersję.
ott--
Dzięki za symulator, a nie link do emulatora. Nigdy nie wiedziałem, że istnieje różnica między nimi.
Krishnabhadra
Powstają otwarte laboratoria testujące urządzenia, czytaj np . Mobile.smashingmagazine.com/2012/09/24/… . Może jest taki w twojej okolicy. „Mobilne laboratorium testowe” Google „laboratorium otwartych urządzeń”
Jan Doggen
20

Jedną z rzeczy, których nigdy nie dowiesz się podczas testowania za pomocą emulatora, jest to, jak naprawdę czuje się użytkownik trzymający w dłoni prawdziwe urządzenie i przesuwający palcami po ekranie. W rezultacie działania użytkownika, które wydawały się płynne podczas symulacji za pomocą touchpada na laptopie, mogą okazać się dość kłopotliwe dla rzeczywistego użytkowania urządzenia. Aby upewnić się, że aplikacja działa poprawnie, przetestuj ją na prawdziwym urządzeniu.

Kolejną rzeczą wartą przetestowania na prawdziwym urządzeniu jest zużycie baterii. Testowanie na prawdziwym urządzeniu jest bezpieczniejsze niż poleganie na tym, jak dobrze twórcy symulatorów potrafili go odtworzyć w swoim narzędziu.

Mogą istnieć inne rzeczy, które po prostu nie są wystarczająco blisko w symulatorze. Na przykład głośność i równowaga dźwięku - sposób, w jaki brzmi na laptopie, może różnić się od tego, jak będzie na prawdziwym telefonie. Wibracje to kolejny przykład, który jest prawie niemożliwy do uzyskania w przypadku symulatora. Sposób działania czujników żyroskopowych na prawdziwym telefonie. GPS / rzeczy związane z lokalizacją. Itp itp. Itd ...


Testowanie symulatorów na rzeczywistych urządzeniach jest dość ważną kwestią. W jednym z moich wcześniejszych projektów ważną częścią komercyjnego sukcesu było staranne wyważenie tego rodzaju testów, które zasadniczo sprowadza się do ciągłego ponownego zadawania pytań, np. Dlaczego na urządzeniu?

Prawdziwa praca rozpoczyna się, gdy ktoś zapyta, dlaczego , wybierając powody wyboru między testowaniem na urządzeniu a symulatorem w określonych przypadkach i sytuacjach.

Zignorowanie testów urządzeń naraża Twój produkt na (dość wysokie) ryzyko włamania się w ręce użytkownika końcowego, całkowicie niszcząc wszystkie wysiłki włożone w rozwój. Rzecz w tym, że testy na symulatorze są znacznie DUŻO tańsze i łatwiejsze w automatyzacji. Jeśli ktoś ślepo trzyma się testów wyłącznie na urządzeniu, jego wydania mogą stać się znacznie późniejsze i droższe niż w przypadku konkurencji.

komar
źródło
3
+1 za podkreślenie części doświadczenia użytkownika. Jest to bardzo ważna część, gdy myślisz o udostępnianiu aplikacji w sklepie z aplikacjami.
Coral Doe
1
Miałeś świetny komentarz na tablicy o znacznie większym koszcie testowania urządzenia w porównaniu z symulatorem. Myślę, że dobrze byłoby dołączyć do swojej odpowiedzi. +1 nawet bez niego.
psr
@psr cieszę się, że ci się podobało - zaktualizowałem odpowiedź zgodnie z sugestią
gnat
7

Z doświadczenia i startu z najlepiej głosowanej odpowiedzi:

  • Największą różnicą były twoje palce zamiast myszy, gdy opracowaliśmy Decimation X2 dla Windows Phone 7. Został on zakodowany na emulatorze, ponieważ nie mieliśmy WP7 i było to przed wydaniem WP7. Moglibyśmy potencjalnie otrzymać bezpłatną WP7 przed wydaniem, na wypadek gdyby to ostatnie zdanie nie miało dla ciebie sensu, ponieważ Microsoft poprosił nas o tytuł uruchomienia na ich telefonie. Okazało się, że to, co chcieliśmy, aby użytkownik robił palcami, było bardzo trudne na prawdziwym telefonie, ale łatwe za pomocą myszy. I miało to związek z obudowami z ekranem. Niestety nasza gra wymagała ciągłego trzymania palców na krawędzi ekranu, co niektóre telefony utrudniały ze względu na zatopiony ekran oraz grube etui. Wydaliśmy łatkę, aby to naprawić. Oznacza to, że wszyscy nasi pierwsi użytkownicy zostali pokazani jako źli i potencjalnie nieużyteczni, wersja naszej gry. :(

  • Kolejna największa różnica to inna prędkość sprzętowa. Musieliśmy dosłownie zgadywać z niedokładnej metody pobrania naszej wersji Xbox 360 gry i obniżenia jej odpowiednio do połowy liczby klatek na sekundę (60 klatek na sekundę do 30 klatek na sekundę) i jednej trzeciej GHz (3,0 GHz na 1,0 GHz) i zgadliśmy źle. Procesory były oczywiście inne i wiedzieliśmy o tym. Bez sprzętu pozostałyśmy kiepskie domysły. To nie był nasz wybór, ponieważ nie mieliśmy WP7, ale nauczyliśmy się lekcji, którą dzielę się teraz z tobą. Na niektórych telefonach, podczas najbardziej intensywnych części gry, opuszczała ramki. :( Nikt nie wydawał się tym przejmować, ponieważ zakładali, że spowolnienie jest odpowiednie dla tak intensywnych części. Więc to nie była wielka sprawa, ale chodzi o to: Gdyby to była wielka sprawa, „aplikacja” zostałaby zerwana z naszym kiepskim zgadywaniem.

Przetestuj na prawdziwym sprzęcie. Kiedy kodujesz różne urządzenia telefoniczne, sprawdź na niższych komputerach, czy wydajność jest problemem.

Xonatron
źródło
6

Symulator iPhone'a implementuje niektóre interfejsy API, których sam iPhone nie ma (głównym, który przychodzi na myśl, jest DOM API API, w którym iPhone obsługuje tylko SAX, o ile mi wiadomo, ale teraz mogło się to zmienić).

Pozwoli również „poczuć” aplikację, czy twoje przyciski mają odpowiedni rozmiar? Czy odpowiednie przyciski wpadają pod kciuk? Czy iPhone może uruchomić aplikację? Symulator nie jest emulatorem i działa po prostu dodając Cocoa Touch do komputera Mac dla tej aplikacji. Musisz zasymulować ostrzeżenia o braku pamięci i tym podobne.

ridecar2
źródło
5

Ponieważ nie będziesz miał wielu użytkowników spacerujących z symulatorem w kieszeni.

EDYCJA: Ilekroć testujesz swoją aplikację na symulatorze (lub emulatorze), używasz fałszywego urządzenia, które z definicji nie może być w 100% dokładnym odwzorowaniem rzeczywistości. Emulator może być dokładniejszy niż symulator, ale nadal będą występować różnice. Jedynym w 100% dokładnym emulatorem jest samo urządzenie.

Projektowanie, testowanie, optymalizacja kodu na symulatorze daje w rezultacie drobną modyfikację, która optymalnie działa na symulatorze. Twoi użytkownicy nie będą mieli symulatorów; celujesz w niewłaściwe urządzenie. Bardzo podobny; ale nie to samo urządzenie, z którego będą korzystać Twoi użytkownicy.

Może to prowadzić do szeregu problemów. Poważne problemy, takie jak błędy, awarie są z pewnością Twoim najwyższym priorytetem. Ale są też inni; takie jak ergonomia. Spróbuj trzymać symulator w dłoni. Spróbuj. Elementy interfejsu użytkownika są renderowane na innym ekranie, z prawdopodobnie różnym oddawaniem kolorów i z pewnością różnymi wymiarami (problem zaostrzony przez piękne wyświetlacze siatkówki, nie do końca rozwiązany przez użycie na przykład macbooka siatkówki). Czy te wykwintne odcienie szarości są równie widoczne na urządzeniu na słońcu?

Subtelne różnice prędkości i różne emisje czujników (lub ich brak) mogą czasem radykalnie zmienić wrażenia.

Jeśli aplikacja opiera się na łączności internetowej, nie ma możliwości przełączania się między LTE, 3G, EDGE lub GPRS, testowania różnych scenariuszy, a nawet testowania różnych operatorów.

Czy zamierzasz obsługiwać urządzenia z jailbreakiem? Być może nie jesteś, ale jeśli tak, prawdopodobnie chcesz przetestować swoją aplikację za pomocą jednego. A jeśli nie, czy jesteś pewien, że wykrywasz środowisko z jailbreakiem?

Czy gra na iPada, którą tworzysz na symulatorze, jest równie przydatna, gdy użytkownik trzyma swoją wagę i używa palców do gry? Czy niezamierzone wielokrotne dotknięcia mogą uszkodzić twoją aplikację, czego nie można było przewidzieć w bezpiecznym środowisku symulatora jednoprzyciskowego (lub symetrycznego podwójnego dotknięcia)?

Czy czułbyś się komfortowo wsiadając do samolotu dowodzonego przez pilota, który tak naprawdę nigdy nie opuścił ziemi?

Najważniejsze jest to: przed wysyłką używaj tego samego urządzenia, z którego będą korzystać Twoi użytkownicy. Żadne z nich nie będzie używać symulatora.

magma
źródło
4
Prosty i uzasadniony sentyment, ale szczegóły poza jednym zdaniem sprawiają, że odpowiedź jest cenniejsza dla całej społeczności.
Jimmy Hoffa
3

praktyczny powód:

1) Nie masz funkcji „wysyłaj pocztę”.

2) Nie możesz postawić urządzenia do góry nogami.

i oczywiście już powiedział powód:

3) niska przepustowość

4) bardzo mała moc obliczeniowa w porównaniu do symulatora

5) Otwarte wywołania GL są zaimplementowane nieco inaczej w symulatorze

6) miejsce na dysku / RAM ..

ingconti
źródło
Nowoczesne symulatory i emulatory umożliwiają obracanie urządzenia. Te także oparte na chmurze, na przykład emulator Nokia Lumia oferowany przez BrowserStack.
Dan Dascalescu,
niektóre rotacje są błędne lub nie zostały zaimplementowane ... spróbuj .. :) i Apple podaje: developer.apple.com/library/content/documentation/IDEs/…
ingconti
3

Chociaż wspomniano, że wydajność sprzętu jest ogólnie gorsza, należy zauważyć, że nie jest tak w przypadku OpenGL ES. Symulator implementuje go w oprogramowaniu, więc nie jest rzadkością, aby zauważyć ogromny wzrost wydajności podczas działania na samym urządzeniu.

Co więcej, istnieją pewne niewielkie różnice między oprogramowaniem a implementacją sprzętową Open GL ES, np. Wskazówki dotyczące precyzji modułu cieniującego mogą mieć różne wyniki.

Bartosz Ciechanowski
źródło
2

Kiedy wdrażamy rzeczy dla iOS (lub Androida, lub Windows Phone), rozwijamy nie dla komputerów stacjonarnych, ale dla urządzeń. W przypadku niektórych aplikacji obliczeniowych / obciążających zasoby może to oznaczać normalne zachowanie na symulatorze, ALE problemy na rzeczywistym urządzeniu.

Takie sytuacje mogą wystąpić w późniejszych etapach, jeśli od początku nie testujemy na urządzeniu: -

  • Ostrzeżenia / awarie pamięci
  • Jednocyfrowe liczby klatek na sekundę OpenGL
KK.
źródło
2

Istnieje kilka funkcji, takich jak PushNotification , używanie aparatu itp., Które możemy przetestować tylko na urządzeniu; są to funkcje, których nie można przetestować na symulatorze.

A testowanie aplikacji na rzeczywistym urządzeniu przed przesłaniem do App Store zmniejsza ryzyko odrzucenia aplikacji; czasami aplikacja działa poprawnie w symulatorze, ale ulega awarii na rzeczywistym urządzeniu, co jest głównym powodem odrzucania aplikacji.

Ravi Sharma
źródło
2

Mogą występować rzeczywiste różnice wydajności między rzeczywistym urządzeniem a emulatorem. Odkryliśmy, że tylko testowanie za pomocą emulatora skutkowało bardzo powolną aplikacją w wielu przypadkach, czego się nie spodziewaliśmy.

Nathan Pilling
źródło
3
Jak na ironię, jedna z moich aplikacji ma lepszą wydajność na rzeczywistym urządzeniu niż na emulatorze na moim laptopie.
Michael Itzoe,
1
@nathan: Myślę, że używamy SIMULATORA zamiast EMULATORA! SDK na Androida ma emulator, podczas gdy SDD na iOS zapewnia symulator. Istnieje różnica między emulatorem a symulatorem. nie jest? więc czytam ur ans, zastępując emulator słów symulatorem .. n tnx 2 ans :)
NSS
-1

Doświadczenie użytkownika różni się w zależności od urządzenia i systemu operacyjnego

specyfikacje sprzętu. Dlatego konieczne jest przetestowanie aplikacji iPhone na faktycznym

urządzenia - urządzenia mobilne z różnymi wersjami iOS na rynku.

Chociaż symulator jest przydatny w identyfikowaniu problemów napotykanych przez użytkownika końcowego,

testowanie aplikacji na oryginalnym urządzeniu pomoże w identyfikacji głównych adresatów

obawy użytkownika.

Johnson
źródło