【问题标题】:Functional API Testing: form-driven applications功能 API 测试:表单驱动的应用程序
【发布时间】:2018-02-03 14:58:29
【问题描述】:

我的应用程序要求我的用户通过一系列表单,以便我可以收集数据并最终在最后对一系列表单中的所有数据进行操作(想象保险申请或类似的东西)。在整个过程中存在一些不容易进行单元测试的要求,我想知道我可以采用哪些好的实践来测试我的 API 以保持我的测试套件 DRY 并促进尽可能简单的测试过程- 继续写作。

作为我要测试的要求示例:用户在应用程序的一个阶段(地址、出生日期等)输入一些关于他们自己的个人元数据。用户有一个仪表板,他们可以随时访问以查看其帐户的基本概览。我需要确保在填写申请表的过程中,他们可以移动到他们的仪表板并查看浮出水面的值。

我可以采用哪些测试模式来保持 DRY?我认为如果我只是隔离每个功能测试并重新编写整个测试设置以使用户进入填写应用程序的阶段,事情会很简单,但这肯定会减慢测试过程。

【问题讨论】:

  • 您是否必须通过 UI 进行测试,或者您可以设置数据以获取您真正想要测试的内容? IE。填充元数据的结果是什么?这是在某处发送/存储/检索的吗?您可以在其中插入数据库或从服务中检索它吗?如果是后者,您能否模拟该服务,以便使用该测试用例所需的(模拟)数据设置您的测试用例?

标签: java testing cucumber system-testing


【解决方案1】:

您可能需要考虑三种常见模式:

第一个在底层应用程序架构之上提供了一个对测试人员友好的界面。

AddressForm addr = application.newAddress();
addr->enterStreet("My Street");
...
Dashboard dashboard = application.dashboard();
test.compare(dashboard.street(), "My Street");

数据驱动测试可以放在首位,例如基于 CSV 文件轻松完成各种组合。

如果您的应用程序架构已准备好描述可能的状态和事务,则模型驱动可能是一种选择。可以自动访问模型的各种可能路径,从而无需手动编写所有可能的组合。

【讨论】:

  • 您可能还想查看屏幕播放模式。不过,如果您根本不必通过 UI,它可能会更好(更快,更不脆弱)。
猜你喜欢
  • 2021-04-09
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多