【问题标题】:Android Test FrameworksAndroid 测试框架
【发布时间】:2016-01-07 21:48:14
【问题描述】:

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

【问题讨论】:

标签: android testing


【解决方案1】:

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

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

Robotium 就是这样一个框架。它允许您编写通过用户界面运行的“脚本”,例如“单击此”、“键入那个”等。编写良好的它可以带您浏览您的用例,从而提供一种很好的感觉,即您的应用程序不是破碎的。它还允许您测试多个活动和交互的活动。

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

Android Monkey 还使用检测来运行您的用户界面,但它不遵循脚本。它随机执行此操作,其想法是无论它做什么都不会使您的应用程序崩溃。通过生成 100000 个事件,它试图根据统计数据获得尽可能高的覆盖率。除了 Robotium,猴子永远不会离开你的应用程序(那会很危险)。虽然它是一个完美的补充,而且几乎是免费提供的(设置非常便宜,而且无需维护)。

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

您可能还想了解模拟?

【讨论】:

    【解决方案2】:

    观察下面的测试金字塔:

    • 手动测试 - 不言自明
    • 功能测试 - 测试功能
    • 集成测试 - 检查单元是否正常运行
    • 单元测试 - 确保单个单元按预期工作(请参阅 SRP

    它会建议您对每个级别应该进行多少次测试。金字塔下方是您可以在各个级别使用的 Android 框架。

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

    功能性

    • Monkey runner“有点”属于此部分,它基本上只是围绕应用程序来查看是否有任何交互组合使其崩溃

    集成: 仪表属于这一类。

    • Espresso(Google 制造,推荐,使用 Hamcrest 匹配器)
    • 机器人

    单位

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

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多