2012-12-09 138 views
-4

最近在QCon中,Gerard Meszaros说我们应该只在模拟器上运行自动化测试来提高效率。我们也在考虑移动自动化测试。但我不确定是否会出现一些只能在真实设备中发现的问题?或者某些组件如相机,重力感应器无法在模拟器/仿真器中测试?谢谢!真实设备和模拟器/仿真器有什么区别?

编辑:

你可以找到杰拉德的幻灯片在这里:http://www.slideshare.net/pinot_noir/ensuring-quality-in-cloud-and-mobile-applications

我再次阅读幻灯片,发现我误解了他的观点。他的真正含义是我们应该尽量避免在硬件上进行调试(第41页)。他还提到我们可以将传出请求捕获到传感器和其他服务,然后注入响应。也许我们可以选择一些无法在模拟器中完全测试的案例,然后使用真实设备进行测试。

谢谢您的所有意见! :)

+0

这太宽泛了,难道你没有更具体的应用类型? – KillianDS

+1

只能在模拟器上运行测试等语句,这是来自应该被忽略的人的陈述。仿真无疑在测试中占有一席之地,然而没有任何一个能力的人会说仿真对于所有测试都是有效的。而且,没有一个具有竞争力的人会认为模拟在所有情况下都更有效率,因为根据模拟它可能很容易变慢。例如,Android模拟通常比设备慢,而iOS模拟提供了一个接近但不准确的环境。 – mah

+0

@mah android模拟速度慢。因为它不是模拟它是'emulation' :) –

回答

1

最近在QCon中,Gerard Meszaros说我们应该只在模拟器上运行自动化测试来提高效率。

这真是奇怪的建议,如果那真的是Meszaros先生说的话。在模拟器上运行测试是好的,但“仅”是过度的建议。在设备上运行自动化测试没有什么坏处,您可以从中学到很多东西。

但我不确定是否会出现一些只能在真实设备中发现的问题?

当然。

  • 许多装置具有多核CPU,而模拟器只模拟在这个时候
  • 设备存储空间往往运行速度变慢了很多比不存储在模拟器上
  • 设备制造商采用Android鼓捣单核以不会出现在运行股票的仿真器上的方式Android
  • 模拟器仅松散地模拟与电力,互联网(例如,没有移动数据,没有WiFi),GPS,传感器,相机等有关的硬件。
  • 模拟器不支持一些设备功能,如ne w V2版本的Maps,Play商店,Android 4.2上的多个帐户等。

依此类推。

或者某些组件如相机,重力感应器无法在模拟器/仿真器中测试?

那些难以用自动化的方式进行测试。

+0

根据http://stackoverflow.com/a/13734937/14731,模拟器可以运行Android Maps v2。 – Gili

+0

@Gili:只能通过软件盗版。 – CommonsWare

+0

我认为这是一个灰色地带。 Google很明显计划在不久的将来提供这种功能。同样很明显的是,开发人员将“真诚”作为解决方法,直到Google推出正式版本。我没有听说过任何人使用这种“不诚实”,是吗? – Gili