为什么需要在实际的iPhone设备上测试我的iPhone应用程序


23

我为iPhone开发了一个应用程序,现在我希望在App Store上使用它。我的许多iOS极客朋友告诉我要在实际设备(例如iPhone)上对其进行测试。

因此,我想知道为什么尽管他们(苹果公司)提供了与我的设备几乎相同的“模拟器”,但为什么有必要在实际的iPhone设备上测试我的iPhone应用程序吗?


3
问题出在“与我的设备差不多”。几乎一样不够好。微小的差异可能会影响应用程序的重大变化。您不仅必须在硬件上进行实际测试,而且还必须考虑在不同版本的硬件和软件(iOS版本)上进行测试。
珊瑚母鹿

Answers:


51

您需要至少在真实设备上测试应用程序,以查看其行为方式:

  • 真实设备硬件
  • 真正的互联网连接(包括使用蜂窝网络与WiFi)
  • 用手指代替鼠标
  • 在后台运行的其他应用程序的性能
  • iPhone的限制,例如cpu,磁盘容量和内存(“模拟器”不是“模拟器”)。
  • 真实情况:在火车上或在街上走路时易于使用您的应用程序吗?在明亮的阳光下或在雨中怎么样?

iOS开发人员,请继续此列表。


真好.. :)。我必须考虑的非常简单的事情... :)想法
NSS

2
实际上,他需要使用它打算用于的所有设备(iphone3 / 3g / 4 / 4s / 5)和所有ios版本3/4/5/6对其进行测试,否则他必须明确排除该设备/版本。
ott-- 2012年

感谢模拟器而不是模拟器链接。我不知道两者之间有区别。
Krishnabhadra

有开放式设备测试实验室应运而生,请阅读例如mobile.smashingmagazine.com/2012/09/24/…。也许您家附近有一个。Google“移动测试实验室”“开放设备实验室”
Jan Doggen 2013年

20

使用模拟器进行测试时,您永远不会知道的一件事是,用户手中握着一个真实设备,在屏幕上滑动手指的感觉如何。结果,在笔记本电脑上使用触摸板进行仿真时,看起来似乎很顺畅的用户操作对于实际的设备使用而言可能非常麻烦。为确保您的应用程序正常,请使用真实设备进行测试。

值得在实际设备上进行测试的另一件事是电池消耗。仅依靠真实的设备进行测试,比依赖模拟器开发人员在其工具中成功复制它的方式确实更安全。

可能还有其他事情在模拟器上还不够完善。例如,音量和平衡-在笔记本电脑上的发音方式可能与真实手机上的有所不同。振动是另一个很难通过模拟器正确实现的示例。陀螺仪传感器在真实手机上的工作方式。GPS /位置相关的东西。等等等等...


模拟器与真实设备测试是一个非常重要的问题。在我过去的项目之一中,商业上成功的重要部分是在这些测试之间进行谨慎的平衡,这实际上归结为永久性地重新提出诸如为何在设备上进行测试等问题

真正的工作始于一个人问为什么,在特定情况下,选择在设备测试和模拟器测试之间进行选择的原因。

忽视设备测试会使您的产品面临(相当高的)最终用户手中破坏安全的风险,从而完全破坏了您投入开发的所有精力。但事实是,模拟器测试便宜得多,自动化也容易得多。如果一个盲目的坚持上设备仅用于测试,他们的版本可能变得显着比竞争对手更高,更昂贵。


3
+1用于强调用户体验部分。考虑在应用商店中共享应用时,这是非常重要的部分。
珊瑚母鹿

1
在白板上,您对测试设备与模拟器相比要花更多的钱,发表了很好的评论。我认为将您的答案包括进去是很棒的。即使没有也+1。
psr 2012年

@psr高兴你喜欢它-更新一个答案,你的建议
蚊蚋

7

从经验和最佳投票答案中脱颖而出:

  • 当我们为Windows Phone 7开发Decimation X2时,您的手指而不是鼠标是最大的不同。它是在模拟器上编码的,因为我们没有WP7,而且它是在WP7发行之前。如果最后一句话对您没有意义,我们可能会在发布前获得免费的WP7,因为微软邀请我们在他们的手机上发布启动标题。事实证明,在真实电话上,我们希望用户用手指进行的操作非常困难,而使用鼠标则很容易。这与屏幕边缘的情况有关。不幸的是,我们的游戏要求您的手指始终保持在屏幕边缘,由于屏幕凹陷且外壳较厚,某些手机难以做到这一点。我们实际上发布了一个补丁来解决此问题。这表示我们所有的初次使用者都表现不佳,甚至可能无法使用,我们的游戏版本。:(

  • 其次是最大的硬件速度差异。我们不得不以一种不准确的方法来猜测,那就是采用Xbox 360版本的游戏并将其相应地降级为帧速率的一半(60fps至30fps)和三分之一的GHz(3.0GHz至1.0GHz),我们猜到了错误。当然,处理器是不同的,我们知道这一点。没有硬件,我们就la脚了。由于没有WP7,这不是我们的选择,但我们了解到了我现在要与您分享的教训。在某些手机上,在游戏中最密集的部分,它掉了帧。:(没有人似乎在乎,因为他们认为减速适用于如此剧烈的部分。所以这没什么大不了的,但是重点是:如果这没什么大不了的,那么“ app”就不会被我们la脚的猜测所打破。

在真实的硬件上测试。并且,当您为各种电话硬件编码时,如果性能存在问题,请在低端硬件上进行测试。


6

iPhone模拟器实现了一些iPhone本身不支持的API(我想到的主要对象是DOM XML API,据我所知iPhone仅支持SAX,但现在可能有所改变。)

它还可以让您“感觉”应用程序,您的按钮尺寸合适吗?右按钮是否落在拇指下?iPhone是否可以运行该应用程序?该模拟器不是模拟器,只需将Cocoa Touch添加到该应用程序的台式机Mac即可。您必须模拟内存不足警告等。


5

因为您将不会有很多用户随身携带一个模拟器。

编辑:每当您在模拟器(或模拟器)上测试您的应用程序时,您使用的是假冒设备,根据定义,它不能100%准确地表示真实事物。仿真器可能比仿真器更准确,但是仍然存在差异。唯一100%准确的仿真器是设备本身。

在模拟器上设计,测试,优化代码会导致应用程序经过微调,以在模拟器上最佳工作。但是,您的用户将没有模拟器。您定位的设备错误。非常相似的一个;但不是您的用户将使用的设备。

这可能会导致多种问题。像bug,崩溃这样的严重问题当然是您的重中之重。但是还有其他。例如人体工程学。尝试将模拟器握在手中。试一试。UI元素在不同的屏幕上呈现,可能具有不同的颜色呈现,当然还有不同的尺寸(例如,美丽的视网膜显示加剧了这一问题,例如,还不能通过使用视网膜Macbook来完全解决)。在阳光下的设备上,那些精致的灰色阴影是否可以同等地区分?

速度的细微差异以及不同的传感器仿真(或缺乏仿真)有时会极大地改变体验。

如果您的应用程序依赖于Internet连接,则您无法在LTE,3G,EDGE或GPRS之间切换,测试不同的场景,甚至测试不同的运营商。

您要支持越狱设备吗?也许您不是,但是如果您是,则您可能愿意用一个来测试您的应用程序。或者,如果不是,您是否有信心检测到越狱环境?

当用户握住重量并用手指玩时,您在模拟器上开发的iPad游戏是否同样可用?意外的多次触摸是否能够破坏您的应用程序,而这在安全的单点触摸(或对称双点触摸)模拟器环境中是无法预期的?

您会不会舒适地登上从未真正离开过地面的飞行员指挥的飞机?

最重要的是:在发货之前,请务必使用与用户要使用的设备相同的设备。他们都不会使用模拟器。


4
简单有效的情绪,但仅需一句话,便能使答案对整个社区更有价值。
吉米·霍法

3

实际原因:

1)您没有“发送邮件”功能。

2)您不能将设备上下颠倒。

当然已经说了原因:

3)低带宽

4)与模拟器相比,计算能力非常小

5)Open GL调用在模拟器中的实现有些不同

6)磁盘空间/ RAM


现代的模拟器和仿真器使您可以旋转设备。基于云的也是如此,例如Br​​owserStack提供的诺基亚Lumia模拟器。
Dan Dascalescu 2015年

某些轮换有问题或没有实现。.尝试.. :),Apple声明:developer.apple.com/library/content/documentation/IDEs/…–
ingconti

3

尽管提到了硬件性能通常较差,但必须注意的是,OpenGL ES并非如此。模拟器是通过软件实现的,因此在设备本身上运行时注意到巨大的性能提升并不罕见。

此外,Open GL ES的软件和硬件实现之间还存在一些细微差异,例如,着色器精度提示可能具有不同的输出。


2

当我们为iOS(或android,或Windows Phone)实现功能时,我们开发的不是桌面设备,而是设备。对于某些计算/资源繁重的应用程序,这可能意味着在实际设备上的模拟器BUT问题上的正常行为。

因此,如果我们不从一开始就在设备上进行测试,则可能在以后的阶段遇到类似情况:

  • 内存警告/崩溃
  • 一位数OpenGL帧速率

2

有一些功能,例如PushNotification使用相机等,我们只能在设备上进行测试;这些是无法在模拟器上测试的功能。

在提交到App Store之前在实际设备上测试您的应用程序可以减少应用程序被拒绝的机会;有时,应用程序在模拟器中可以正常运行,但会在实际设备上崩溃,这是导致应用程序被拒绝的主要原因。


2

实际设备和仿真器之间可能存在实际的性能差异。我们发现,在许多情况下,仅使用模拟器进行测试会导致应用程序运行非常缓慢,这是我们没有想到的。


3
具有讽刺意味的是,我的应用程序之一在实际设备上的性能要比笔记本电脑上的模拟器好。
Michael Itzoe 2012年

1
@nathan:我认为我们使用模拟器而不是模拟器!Android sdk具有模拟器,而iOS sdk提供模拟器..并且模拟器和模拟器之间存在差异。不是吗?所以我通过用模拟器替换单词模拟器来阅读ur ans。n tnx 2 ans :)
NSS

-1

由于操作系统和操作系统的不同,用户体验因设备而异。

硬件规格。因此,有必要在实际应用中测试iPhone应用

设备–在市场上运行各种版本的iOS的移动设备。

尽管模拟器对于确定最终用户面临的任何问题非常有用,

在原始设备上测试应用程序将有助于识别和解决主要问题

用户的关注。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.