2010-08-13 158 views
3

我是新来的Android测试框架,想知道现有测试框架之间的区别:Monkey,CTS,Instrumentation Framework & Robotium?Android测试框架

+0

CTS - 兼容性测试套件? http://source.android.com/compatibility/cts-intro.html – mparaz 2012-05-10 06:37:59

回答

7

仪器是一种测试类别,与单元测试相反。

该框架为仪器测试提供挂钩,但您需要额外的第三方框架才能真正开始。

Robotium就是这样一个框架。它允许你编写通过用户界面运行的“脚本”,说“点击这个”,“输入”等。写得很好,它可以带你通过你的用户,从而提供一个很好的感觉,你的应用程序不是破碎。它还允许您测试多个活动和活动交互。根据我的经验,单元测试对于Android来说非常困难,尤其是对于处理UI,数据库,活动状态等的“常规”代码,除非您编写可测试性代码。

Android Monkey还使用检测来贯穿您的用户界面,但它不遵循脚本。它随机完成这个任务,不管它做什么,它都不应该使应用程序崩溃。根据统计数据,通过产生100000个事件,它试图获得尽可能高的覆盖率。除了Robotium以外,猴子从不离开你的应用程序(这很危险)。这是一个完美的补充,虽然它几乎是免费的(设置非常便宜,没有维护)。

CTS只与操作系统和框架本身有关。

你可能也想知道关于模拟?

0

观察测试金字塔下面:

  • 手动测试 - 自我解释
  • 功能测试 - 测试的一项功能
  • 集成测试 - 检查单位发挥很好
  • 单元测试 - 确保一个个别单位按预期工作(见SRP

它暗示每个级别应该有多少次测试。金字塔下方是您可以在每个级别使用的Android框架。

Testing Pyramid

在Android中,下面的框架通常用于每个部分:

功能

  • 猴亚军 “种” 属于根据本条,它基本上只是在应用程序周围肆虐,看看是否有任何交互组合崩溃它

集成: 仪器属于此类别。

  • 咖啡(由谷歌制造的,推荐使用Hamcrest匹配器)
  • Robotium

单位

  • JUnit4
  • 的Mockito,Powermock,其他嘲讽库
  • 匹配f rameworks像Hamcrest,巨星,AssertJ
  • Robolectric(提供了对Android具体方法)