Android测试框架

Android测试框架,android,testing,Android,Testing,我是Android测试框架的新手,想知道现有测试框架之间的区别:Monkey、CTS、Instrumentation Framework和Robotium?Instrumentation是测试的一个类别,与单元测试相反 该框架为仪器测试提供了钩子,但您需要一个额外的第三方框架才能真正开始 Robotium就是这样一个框架。它允许你编写贯穿用户界面的“脚本”,比如“点击这个”、“输入那个”,等等。写得好的它可以带你浏览你的用例,从而让你感觉你的应用程序没有坏掉。它还允许您测试多个活动和交互活动 根

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

Instrumentation是测试的一个类别,与单元测试相反

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

Robotium就是这样一个框架。它允许你编写贯穿用户界面的“脚本”,比如“点击这个”、“输入那个”,等等。写得好的它可以带你浏览你的用例,从而让你感觉你的应用程序没有坏掉。它还允许您测试多个活动和交互活动

根据我的经验,单元测试对于Android来说是非常困难的,特别是对于处理UI、数据库、活动状态等的“常规”代码,除非您编写代码以实现可测试性

Android Monkey还使用工具来运行用户界面,但它不遵循脚本。这是随机的,它的想法是,无论它做什么,都不应该使你的应用程序崩溃。通过生成100000个事件,它试图根据统计数据获得尽可能高的覆盖率。除了Robotium,猴子永远不会离开你的应用程序(那会很危险)。这是一个完美的补充,它几乎是免费的(安装非常便宜,没有维护)

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


您可能还想了解模拟?

观察下面的测试金字塔:

  • 手动测试-自解释
  • 功能测试-测试功能
  • 集成测试-检查单元是否运行良好
  • 单元测试-确保单个单元按预期工作(请参阅)
它建议你在每个级别上应该进行多少次测试。金字塔下面是Android框架,您可以在每个级别使用它

在Android中,每个部分通常使用以下框架:

功能性

  • Monkey runner“某种程度上”属于这一部分,它基本上只是对应用程序进行重击,看看是否有任何交互组合使其崩溃
集成: 仪器属于这一类

  • 浓缩咖啡(由谷歌制造,推荐,使用汉克雷斯特匹配器)
  • 机器人
单位

  • JUnit4
  • Mockito、Powermock和其他模拟库
  • 匹配Hamcrest、Fest、AssertJ等框架
  • Robolectric(提供特定于Android的方法)

CTS-兼容性测试套件?