什么是数据驱动测试?学习创建框架


数据驱动测试

数据驱动测试是一种软件测试类型,其中测试数据以表格或电子表格的形式维护。数据驱动测试使测试人员能够提供一个单一的测试脚本,该脚本可以对来自表格的所有测试数据执行测试,并期望测试结果返回到同一个表格中。表格驱动测试是参数化测试的另一种名称。

自动化测试会重放记录(或计划)的用户活动系列,这些活动涵盖被测应用程序的特定部分。您可以通过使用不同的输入信息运行测试来扩展访问范围。假设您记录了将数据输入应用程序表单中的活动。记录的测试仅涵盖您在记录期间输入的数据,这些数据不太可能在程序中创建错误,但某些其他信息可能会创建错误。因此,您必须使用各种数据输入进行测试,以检查应用程序是否按计划针对各种输入值工作。这种测试方法称为数据驱动测试。

实际上,您可以记录大量具有不同输入数据的测试,但最佳选择是将数据与测试命令分离。数据驱动测试将从数据存储(如文件或数据库)中接收数据,而不是使用硬编码值。这种拆分在概念上简化了测试。具有许多硬编码值的测试可能难以适应和维护。例如,如果您需要额外的输入数据,则必须调整测试指令。

数据驱动框架

数据驱动框架是一个自动化测试框架,它从文件系统读取数据并将它们存储在测试脚本中的变量中。它允许测试人员将正向和负向测试场景组合到一个测试中。数据驱动框架中的数据输入可以包含在一个或多个数据源中,例如 .xls、.xml、.csv 和数据库。

本教程将教你

  • 数据驱动测试到底是什么?
  • 为什么要使用数据驱动测试?
  • 如何构建数据驱动的自动化框架
  • 数据驱动测试最佳实践 -
  • 数据驱动测试的好处
  • 数据驱动测试具有以下缺点

为什么要使用数据驱动测试?

数据驱动测试至关重要,因为测试人员通常对同一个特定测试有多组数据,并且为每组数据设计不同的测试确实很耗时。数据驱动测试允许数据与测试脚本分开存储,然后可以对输入测试数据的多种组合执行相同的测试脚本,从而提高测试结果的生成效率。

示例 - 例如,我们希望使用 1000 个不同的数据集和多个输入字段来验证登录功能。

要对此进行测试,请尝试以下方法 -

  • 方法 1 - 为每个数据集编写 1000 个脚本,并分别执行每个测试。

  • 方法 2 - 手动更改测试脚本中的值并多次执行它。

  • 方法 3 - 从 Excel 表格中输入数据。一次从 Excel 行获取测试数据并运行脚本。

列表中的前两种可能性都很困难且耗时。因此,第三种方法更可取。

因此,第三种方法只不过是一个数据驱动框架。

如何构建数据驱动的自动化框架?

假设您希望评估应用程序的登录功能。

步骤 1:确定测试用例

输入正确的用户名和密码 – 登录成功。

输入错误的用户名和密码 – 登录失败

输入错误的密码和有效的用户名 – 登录失败

步骤 2:为最后三个测试用例生成准确的步骤

测试用例编号
描述
测试步骤
测试数据
预期结果
1
可以通过测试登录来找到有效的凭据。
  • 启动应用程序。
  • 输入您的用户名和密码。
  • 点击确定
  • 检查结果按钮。
用户名:有效
密码:有效
登录成功
2
应在登录中检查无效的凭据。
  • 启动应用程序。
  • 输入您的用户名和密码。
  • 点击确定
  • 检查结果按钮。
用户名:无效
密码:有效
登录失败
3
应在登录中检查无效的凭据。
  • 启动应用程序。
  • 输入您的用户名和密码。
  • 点击确定
  • 检查结果按钮。
用户名:有效
密码:无效
登录失败

步骤 3:编写测试脚本

仔细观察,您会发现测试步骤在所有三个测试步骤中都保持不变。要执行这些任务,您必须开发一个测试脚本。

// This is known as Fake Code.

// Step 1 of the Test: Run the App
driver.get("Application URL");

// Step 2 of the Test: Input the Username
txtbox username.sendKeys("valid");

// Step 3 of the Test: Enter Your Password
txtbox password.sendKeys("invalid")

// Step 4 of the Test: Analyze the Results
If (Next Screen) print is successful, otherwise it is a failure.

步骤 4:准备包含输入测试数据的 Excel/CSV 文件。

步骤 5:更新脚本,使其循环遍历给定的测试数据。还应指定输入指令。

// Pseudo Code
Loop 3 Times
for (i = 0; i & lt; = 3; i++) {
   // Import data from Excel and save it in variables.
   int input_1 = ReadExcel(i, 0);
   int input_2 = ReadExcel(i, 1);

   // Test Step 1: Launch Application
   driver.get("URL of the Application");

   // Test Step 2: Enter Username
   txtbox_username.sendKeys(input_1);

   // Test Step 3: Enter Password
   txtbox_password.sendKeys(input_2);

   // Test Step 4: Check Results
   If(Next Screen) print success
   else Fail
}

这些仅是测试用例的三个示例。通过将测试数据值附加到 Excel,测试脚本可用于循环遍历以下测试场景。

  • 输入错误的用户名和密码 – 登录失败

  • 输入错误的用户名和密码 – 登录失败

  • 输入空白用户名和密码 – 登录失败

等等…

数据驱动测试最佳实践

以下是数据驱动测试的最佳测试策略 -

  • 在整个数据驱动测试过程中使用真实数据是极好的。

  • 测试流的路由必须在测试脚本中进行编码。

  • 使用有用的数据来为虚拟 API 提供动力。

  • 数据可用于生成灵活的断言。

  • 正向和负向测试结果都是可能的。

  • 用于安全性和可靠性的数据驱动功能测试

数据驱动测试的好处

数据驱动提供了许多好处,其中一些如下 -

  • 在回归测试期间,可以使用多组数据值测试应用程序。

  • 测试数据和验证数据可以组合到一个与测试用例逻辑不同的文件中。

  • 根据工具的不同,测试脚本可以保存在中央数据库中。这使得文本易于理解、保留和管理。

  • 活动和操作可以在多个测试中重复使用。

  • 某些技术会自行创建测试数据。当需要大量随机测试数据时,这很有用,因为它可以节省时间。

  • 数据驱动测试可用于开发的任何阶段。数据驱动测试问题通常会合并到一个过程中。但是,它可以在多个测试用例中使用。

  • 允许开发人员和测试人员将其测试用例/脚本的逻辑与测试数据分开。

  • 可以多次执行相同的测试用例,这有助于减少测试用例和脚本的数量。

  • 修改测试脚本不会影响测试数据。

数据驱动测试的缺点

以下是数据驱动自动化测试过程的一些缺点 -

  • 测试的质量取决于应用团队的自动化技能。

  • 在测试大量数据时,数据验证是一项耗时的操作。

  • 由于数据驱动测试需要大量编码,因此维护是一项重大挑战。

  • 需要高级的技术专业知识。测试人员可能需要学习全新的脚本语言。

  • 将有更多文档。脚本管理、测试基础设施和测试结果是最常见的主题。

  • 要生成和维护数据文件,需要使用文本编辑器(如记事本)。

总结

  • 数据驱动是一个测试自动化框架,它以表格或电子表格的形式保存测试信息。

  • 在数据驱动测试自动化框架中,输入数据可以备份到一个或多个数据源中,例如 xls、XML、csv 和数据库。

  • 为每个数据集创建唯一的测试是一项耗时且劳动密集型的任务。数据驱动测试框架通过将数据与功能测试分开存储解决了此问题。

  • 建议在数据驱动测试中使用真实数据。

  • 在回归测试期间,它涉及使用多组数据值测试应用程序。

  • 此策略的缺点在于它依赖于实施团队的自动化能力。

更新于: 2021年12月17日

391 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告