重用自动化集成测试:选择最佳方法

时间:2015-05-24 13:18:59

标签: testing automated-tests integration-testing end-to-end

我们有一个复杂的系统,如下图所示,由3个交互系统组成:A,B和C.每个系统都有自己的数据库,服务和UI层。系统通过HTTP协议进行通信。

complex system's component diagram

复杂系统的基本工作流程如下:用户在系统A中创建交易,将交易存储在自己的数据库中并将其推送到系统B.在系统B中,交易被验证并存储在自己的数据库中。用户可以使用系统A的UI以及系统B的UI查看,编辑和管理交易的权利。系统C定期从系统B提取数据并再次将其存储在自己的数据库中。最后,用户可以查看系统C的UI处理。

我们假设系统A,B和C由单独的自动化集成测试覆盖。这些系统由不同的团队(但是同一家公司)开发,具有单独的代码库并使用不同的语言(Java,C#)。任务是为整个复杂系统创建自动化的端到端服务层测试(也称为Subcutaneous Tests)。选择的测试语言是C#。

以下是需要自动化的端到端测试场景的简化示例:

  • 用户在系统A中创建交易
  • 用户搜索与系统B的UI创建的交易,并确保找到交易
  • 用户搜索已创建的处理系统C的UI并确保找不到交易
  • 用户使用系统A的UI更改交易的权利
  • 用户搜索与系统B的UI创建的交易,并确保找到交易
  • 授权用户搜索已创建的处理系统C的UI并确保找到交易
  • 非授权用户搜索已创建的处理系统C的UI并确保未找到交易

到目前为止,有两种方法可以创建我们团队成员建议的自动端到端测试:

  1. 在端到端测试中重用特定系统的现有自动化集成测试。为此,应该创建特殊框架,它将扮演“协调器”的角色,即:以适当的顺序运行特定系统的测试并管理它们之间的数据交换。在这种情况下,测试当然需要了解自定义框架。
  2. 独立于特定系统的现有集成测试,为复杂系统创建自动端到端测试。每个测试都应该是自包含的,并且可以由通用测试运行器(即XUnit)以任意顺序运行。在这种情况下,当然可以在可能的情况下重用现有测试代码。
  3. 请帮助我们在上述方法之间做出选择,或提出不同的方法。

0 个答案:

没有答案