Mengapa perlu untuk menguji aplikasi iPhone saya di perangkat iPhone yang sebenarnya

23

Saya mengembangkan satu aplikasi untuk iPhone dan sekarang saya menginginkannya di App Store. Begitu banyak teman geek iOS saya mengatakan kepada saya untuk mengujinya pada perangkat yang sebenarnya yaitu pada iPhone.

Jadi saya bertanya-tanya mengapa perlu untuk menguji aplikasi iPhone saya pada perangkat iPhone yang sebenarnya meskipun mereka (Apple) telah memberikan "simulator" yang hampir sama dengan perangkat saya?

NSS
sumber
3
Masalahnya adalah dengan "hampir sama dengan perangkat saya". Hampir sama tidak cukup baik. Perbedaan kecil dapat mempengaruhi hal-hal hebat dari aplikasi Anda. Anda tidak hanya harus benar-benar mengujinya pada perangkat keras, tetapi Anda harus memikirkan pengujian pada berbagai versi perangkat keras dan perangkat lunak (versi iOS).
Coral Doe

Jawaban:

51

Anda perlu menguji aplikasi pada perangkat nyata untuk setidaknya untuk melihat bagaimana perilakunya:

  • Perangkat keras perangkat nyata
  • Koneksi internet nyata (termasuk penggunaan jaringan seluler vs WiFi)
  • Jari-jari Anda bukan mouse
  • Kinerja dengan aplikasi lain yang berjalan di latar belakang
  • Keterbatasan iPhone, seperti cpu, kapasitas disk, dan memori ( A Simulator bukan Emulator ).
  • Konteks nyata: apakah mudah menggunakan aplikasi Anda di kereta, atau saat berjalan di jalan? Bagaimana dengan di bawah sinar matahari yang cerah atau di bawah hujan?

Pengembang iOS, silakan lanjutkan daftar ini.

Nikolay Fominyh
sumber
itu bagus.. :). Hal yang sangat sederhana yang harus saya pikirkan ... :) Thnaks
NSS
2
Sebenarnya dia perlu mengujinya dengan semua perangkat yang dimaksudkan untuk (iphone3 / 3g / 4 / 4s / 5) serta semua ios versi 3/4/5/6, atau dia harus secara eksplisit mengecualikan perangkat / versi itu.
ott--
Terima kasih untuk simulator bukan tautan emulator .. Saya tidak pernah tahu ada perbedaan antara keduanya.
Krishnabhadra
Ada laboratorium pengujian perangkat terbuka yang muncul, baca misalnya mobile.smashingmagazine.com/2012/09/24/… . Mungkin ada satu di lingkungan Anda. Google "lab pengujian seluler" "lab perangkat terbuka"
Jan Doggen
20

Satu hal yang Anda tidak akan pernah tahu ketika menguji dengan emulator adalah bagaimana rasanya benar-benar bagi pengguna yang memegang perangkat nyata di tangan mereka, menggeser jari di layarnya. Akibatnya, tindakan pengguna yang tampak mulus saat mensimulasikan dengan touchpad pada laptop Anda, dapat menjadi cukup rumit untuk penggunaan perangkat nyata. Untuk memastikan bahwa aplikasi Anda OK, ujilah dengan perangkat sungguhan.

Hal lain yang layak diuji dengan perangkat nyata adalah konsumsi baterai. Yang benar-benar lebih aman untuk hanya menguji dengan perangkat nyata daripada bergantung pada seberapa baik pengembang simulator berhasil mereproduksi dalam alat mereka.

Mungkin ada hal-hal lain yang tidak cukup dekat di simulator. Volume dan keseimbangan audio misalnya - cara bunyinya di laptop Anda, mungkin berbeda dari bagaimana itu akan di telepon nyata. Getaran adalah contoh lain yang hampir tidak mungkin dilakukan dengan simulator. Cara kerja sensor gyro di ponsel sungguhan. GPS / hal-hal terkait lokasi. Dll dll ...


Simulator vs pengujian perangkat nyata adalah masalah yang cukup penting. Dalam salah satu proyek saya di masa lalu, bagian penting dari kesuksesan komersial adalah penyeimbangan yang cermat antara jenis pengujian ini, yang pada dasarnya bermuara pada pertanyaan yang diajukan kembali secara permanen seperti mengapa di perangkat?

Pekerjaan nyata dimulai ketika seseorang bertanya mengapa , memilih alasan untuk memilih antara pengujian pada perangkat dan simulator dalam kasus dan situasi tertentu.

Mengabaikan pengujian perangkat akan memaparkan produk Anda pada risiko (cukup tinggi) karena melanggar hak pengguna akhir, benar-benar menghancurkan semua upaya yang Anda lakukan dalam pengembangan. Tapi masalahnya, pengujian simulator jauh JAUH lebih murah dan lebih mudah untuk otomatisasi. Jika seseorang secara membuta menempel pada pengujian di perangkat saja, rilis mereka mungkin menjadi jauh lebih lambat dan lebih mahal daripada pesaing.

agas
sumber
3
+1 untuk menekankan bagian pengalaman pengguna. Ini adalah bagian yang sangat penting ketika berpikir tentang berbagi aplikasi di toko aplikasi.
Coral Doe
1
Anda memiliki komentar yang bagus di papan tulis tentang biaya pengujian perangkat yang jauh lebih besar daripada simulator. Saya pikir itu bagus untuk dimasukkan dalam jawaban Anda. +1 bahkan tanpa itu.
psr
@psr senang Anda menyukainya - memperbarui jawaban seperti yang Anda sarankan
agas
7

Dari pengalaman, dan lepas landas dari jawaban pilihan terbaik:

  • Jari-jari Anda alih-alih mouse adalah perbedaan terbesar ketika kami mengembangkan Decimation X2 untuk Windows Phone 7. Itu dikodekan pada emulator, karena kami tidak memiliki WP7 dan itu sebelum WP7 dirilis. Kami dapat berpotensi menerima WP7 gratis sebelum rilis, jika kalimat terakhir tidak masuk akal bagi Anda, karena kami diundang oleh Microsoft untuk memiliki judul peluncuran di ponsel mereka. Ternyata, apa yang kami ingin pengguna lakukan dengan jari-jari mereka sangat keras pada ponsel asli, tetapi mudah dengan mouse. Dan itu ada hubungannya dengan kasus tepi layar. Sayangnya, permainan kami mengharuskan jari-jari Anda berada di tepi layar sepanjang waktu, yang membuat beberapa ponsel sulit dilakukan karena layarnya yang cekung serta casing tebal. Kami benar-benar mengeluarkan tambalan untuk memperbaikinya. Ini berarti semua pengguna pertama kali kami menunjukkan yang buruk, dan berpotensi tidak dapat digunakan, versi game kami. :(

  • Kecepatan perangkat keras yang berbeda adalah perbedaan terbesar berikutnya. Kami benar-benar harus menebak dengan metode yang tidak akurat untuk mengambil versi Xbox 360 kami dari permainan dan menurunkannya sesuai dengan setengah frame-rate (60fps menjadi 30fps) dan sepertiga GHz (3.0GHz ke 1.0GHz), dan kami menebak salah. Prosesornya berbeda, tentu saja, dan kami tahu ini. Tanpa perangkat keras, kami hanya bisa menebak. Itu bukan pilihan kami karena kami tidak memiliki WP7, tapi kami belajar pelajaran yang saya bagikan dengan Anda sekarang. Pada beberapa ponsel, selama bagian paling intensif dari permainan, itu menjatuhkan bingkai. :( Tidak ada yang peduli karena mereka menganggap perlambatan itu sesuai untuk bagian yang intens. Jadi itu bukan masalah besar, tapi intinya adalah: Jika ini masalah besar, "aplikasi" akan rusak dari dugaan kami yang lemah.

Tes pada perangkat keras nyata. Dan ketika Anda membuat kode untuk berbagai perangkat keras ponsel, uji pada perangkat yang lebih rendah jika kinerjanya bermasalah.

Xonatron
sumber
6

IPhone Simulator mengimplementasikan beberapa API yang tidak dimiliki iPhone itu sendiri (Yang utama adalah DOM XML API, di mana iPhone hanya mendukung SAX sepengetahuan saya, ini mungkin telah berubah meskipun sekarang.)

Ini juga akan membuat Anda 'merasakan' aplikasi, apakah tombol Anda berukuran tepat? Apakah tombol yang tepat berada di bawah ibu jari seseorang? Apakah iPhone siap menjalankan aplikasi? Simulator bukan emulator dan berfungsi hanya dengan menambahkan Cocoa Touch ke desktop Mac Anda untuk aplikasi itu. Anda harus mensimulasikan peringatan memori dan sejenisnya.

ridecar2
sumber
5

Karena Anda tidak akan memiliki banyak pengguna berjalan-jalan dengan simulator di saku mereka.

EDIT: Setiap kali Anda menguji aplikasi pada simulator (atau emulator), Anda menggunakan perangkat palsu yang tidak dapat, menurut definisi, 100% representasi akurat dari hal yang nyata. Emulator mungkin lebih akurat daripada simulator, tetapi masih ada perbedaan. Satu-satunya emulator akurat 100% adalah perangkat itu sendiri.

Merancang, menguji, mengoptimalkan kode pada hasil simulator dalam aplikasi yang di-tweak untuk bekerja secara optimal pada .. simulator. Pengguna Anda tidak akan memiliki simulator; Anda menargetkan perangkat yang salah. Yang sangat mirip; tetapi bukan perangkat yang sama yang akan digunakan pengguna Anda.

Ini dapat menyebabkan beberapa jenis masalah. Masalah parah seperti bug, crash tentu menjadi prioritas utama Anda. Tetapi ada yang lain; seperti ergonomi. Cobalah memegang Simulator di tangan Anda. Coba saja. Elemen UI ditampilkan pada layar yang berbeda, dengan kemungkinan rendering warna yang berbeda, dan tentunya dimensi yang berbeda (masalah yang diperburuk oleh tampilan retina yang indah, tidak sepenuhnya diselesaikan dengan menggunakan macbook retina, misalnya). Apakah warna abu-abu yang indah sama-sama dapat dibedakan pada perangkat di bawah sinar matahari?

Perbedaan kecepatan, dan emulasi sensor yang berbeda (atau ketiadaan), terkadang dapat secara dramatis mengubah pengalaman.

Jika aplikasi Anda bergantung pada konektivitas internet, tidak ada cara bagi Anda untuk beralih antara LTE, 3G, EDGE atau GPRS, untuk menguji berbagai skenario, atau bahkan menguji berbagai operator.

Apakah Anda akan mendukung perangkat yang sudah di-jailbreak? Mungkin tidak, tetapi jika ya, Anda mungkin mau menguji aplikasi Anda dengan satu. Atau, jika tidak, apakah Anda yakin bahwa Anda mendeteksi lingkungan yang dipenjara?

Apakah gim iPad yang Anda kembangkan di simulator sama-sama dapat digunakan saat pengguna menahan beratnya dan menggunakan jari-jarinya untuk bermain? Apakah beberapa sentuhan yang tidak disengaja dapat merusak aplikasi Anda, sesuatu yang tidak dapat Anda antisipasi di lingkungan simulator sentuhan-tunggal (atau sentuhan ganda simetris) yang aman?

Apakah Anda akan nyaman naik pesawat yang diperintahkan oleh pilot yang belum pernah benar-benar meninggalkan tanah?

Intinya adalah: sebelum pengiriman, harap gunakan perangkat yang sama yang akan digunakan pengguna Anda. Tidak ada dari mereka yang akan menggunakan Simulator.

magma
sumber
4
Sentimen sederhana dan valid tetapi perincian di luar satu kalimat membuat jawaban lebih berharga bagi masyarakat luas.
Jimmy Hoffa
3

alasan praktis:

1) Anda tidak memiliki "send mail" yang berfungsi.

2) Anda tidak dapat membalikkan perangkat ..

dan tentu saja sudah mengatakan alasannya:

3) bandwidth rendah

4) daya komputasi sangat kecil dibandingkan dengan simulator

5) Panggilan GL terbuka diimplementasikan sedikit berbeda dalam simulator

6) ruang disk / RAM ..

ingconti
sumber
Simulator dan emulator modern memungkinkan Anda memutar perangkat. Berbasis cloud juga, misalnya emulator Nokia Lumia yang ditawarkan oleh BrowserStack.
Dan Dascalescu
beberapa rotasi buggy atau tidak diimplementasikan .. coba .. :) dan Apple menyatakan di: developer.apple.com/library/content/documentation/IDEs/…
ingconti
3

Walaupun disebutkan bahwa kinerja perangkat keras umumnya lebih buruk, harus dicatat bahwa ini tidak terjadi dengan OpenGL ES. Simulator mengimplementasikannya dalam perangkat lunak sehingga tidak jarang, untuk melihat peningkatan kinerja yang sangat besar saat berjalan pada perangkat itu sendiri.

Selain itu, ada beberapa perbedaan kecil antara implementasi perangkat lunak dan perangkat keras dari Open GL ES, misalnya petunjuk presisi shader mungkin memiliki output yang berbeda.

Bartosz Ciechanowski
sumber
2

Ketika kami menerapkan hal-hal untuk iOS (atau android, atau windows phone), kami mengembangkan bukan untuk desktop tetapi untuk perangkat. Untuk beberapa aplikasi penghitungan / sumber daya berat, ini mungkin berarti perilaku normal pada masalah simulator TETAPI pada perangkat yang sebenarnya.

Jadi situasi seperti ini dapat ditemui pada tahap selanjutnya jika kita tidak menguji pada perangkat dari awal: -

  • Peringatan / crash memori
  • Frame rate OpenGL satu digit
KK.
sumber
2

Ada beberapa fitur seperti PushNotification , menggunakan kamera , dll. Yang hanya dapat kami uji pada perangkat; ini adalah fitur yang tidak dapat diuji pada simulator.

Dan menguji aplikasi Anda pada perangkat yang sebenarnya sebelum dikirimkan ke App Store mengurangi kemungkinan penolakan aplikasi; kadang-kadang aplikasi bekerja dengan baik di simulator tetapi jatuh pada perangkat yang sebenarnya, yang merupakan alasan utama penolakan aplikasi.

Ravi Sharma
sumber
2

Mungkin ada perbedaan kinerja nyata antara perangkat aktual dan emulator. Kami menemukan bahwa hanya pengujian dengan emulator menghasilkan aplikasi yang sangat lambat dalam banyak kasus, yang tidak kami duga.

Nathan Pilling
sumber
3
Ironisnya, salah satu aplikasi saya memiliki kinerja yang lebih baik pada perangkat yang sebenarnya daripada pada emulator di laptop saya.
Michael Itzoe
1
@nathan: Saya pikir kita menggunakan SIMULATOR daripada EMULATOR! Android SDK memiliki emulator sementara iOS SDK menyediakan simulator .. dan ada perbedaan antara emulator dan simulator. bukan? jadi saya membaca ans Anda dengan mengganti kata emulator dengan simulator .. n tnx 2 ans :)
NSS
-1

Pengalaman pengguna bervariasi dari satu perangkat ke perangkat lainnya karena perbedaan OS dan

spesifikasi perangkat keras. Oleh karena itu, perlu untuk menguji aplikasi iPhone yang sebenarnya

perangkat - perangkat seluler yang menjalankan berbagai versi iOS di pasar.

Meskipun simulator berguna dalam mengidentifikasi masalah yang dihadapi oleh pengguna akhir,

menguji aplikasi pada perangkat asli akan membantu dalam mengidentifikasi dan mengatasi masalah utama

masalah pengguna.

Johnson
sumber