专栏首页用户7466307的专栏什么是数据驱动测试?学习创建框架

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

数据驱动测试

数据驱动测试是一种软件测试方法,其中测试数据以表或电子表格格式存储。数据驱动的测试允许测试人员输入单个测试脚本,该脚本可以对表中的所有测试数据执行测试,并期望测试输出在同一表中。也称为表驱动测试或参数化测试。

数据驱动框架

数据驱动框架是一个自动化测试框架,在该框架中,从数据文件中读取输入值并将其存储到测试脚本中的变量中。它使测试人员可以将肯定和否定测试用例都构建到单个测试中。数据驱动框架中的输入数据可以存储在单个或多个数据源中,例如.xls,.xml,.csv和数据库。

为什么要进行数据驱动测试?

数据驱动测试非常重要,因为测试人员经常为一个测试提供多个数据集,并且为每个数据集创建单独的测试可能很耗时。数据驱动的测试有助于使数据与测试脚本分开,并且可以针对输入的测试数据的不同组合执行相同的测试脚本,并且可以高效地生成测试结果。

例如,我们要使用包含1000个不同数据集的多个输入字段来测试登录系统。

要对此进行测试,可以采用以下不同方法:

方法1)为每个数据集创建1000个脚本,并逐个运行每个测试。

方法2)手动更改测试脚本中的值,然后运行几次。

方法3)从Excel工作表导入数据。从excel行中逐行提取测试数据并执行脚本。

在给定的三种情况下,前两种情况既费力又费时。因此,遵循第三种方法是理想的。

因此,第三种方法就是数据驱动框架。

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

考虑您要测试应用程序的登录功能。

步骤1)确定测试用例

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

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

输入正确的用户名和错误的密码-登录失败

步骤2)为上述3个测试用例创建详细的est步骤

测试用例

描述

测试步骤

测试数据

预期结果

1

检查登录以获取有效凭证

启动应用程序输入用户名密码单击确定检查结果

用户名:有效密码:有效

登录成功

2

检查登录以获取无效的凭证

启动应用程序输入用户名密码单击确定检查结果

用户名:无效密码:有效

登录失败

3

检查登录以获取无效的凭证

启动应用程序输入用户名密码单击确定检查结果

用户名:有效密码:无效

登录失败

创建测试脚本

如果您遵守3个测试步骤,则“测试步骤”仍然很常见。您需要创建一个测试脚本来执行这些步骤

//这是伪代码

//测试步骤1:启动应用程序
driver.get(“应用程序的URL”);

//测试步骤2:输入用户名
txtbox_username.sendKeys(“ valid”);

//测试步骤3:输入密码
txtbox_password.sendKeys(“ invalid”);

//测试步骤4:检查结果
If (Next Screen) print success else Fail

使用输入测试数据创建excel / csv

步骤修改凭证以循环输入测试数据。输入命令也应参数化

//这是伪代码
//循环3次
(i = 0; i< = 3; i ++){
    //从Excel读取数据并将其存储到变量
    int input_1 = ReadExcel(i,0);
    int input_2 = ReadExcel(i,1);

    //测试步骤1:启动应用程序
    driver.get(“应用程序的URL”);

    //测试步骤2:输入用户名
    txtbox_username.sendKeys(input_1);
    //测试步骤3:输入密码

    txtbox_password.sendKeys(input_2);
    //测试步骤4:检查结果是否
    If(Next Screen) print success
    else Fail
    }

以上只是3个测试用例。仅通过将测试数据值附加到Excel,即可使用测试脚本来循环以下测试用例

  • 输入错误的用户名和错误密码–登录失败
  • 输入正确的用户名和密码为空白–登录失败
  • 输入空白的用户名和密码–登录失败

数据驱动测试的最佳做法:

下面给出的是数据驱动测试的最佳测试实践:

  • 理想的是在数据驱动的测试过程中使用真实的信息
  • 测试流程导航应在测试脚本中编码
  • 利用有意义的数据来驱动虚拟API
  • 使用数据来驱动动态断言
  • 测试正面和负面结果
  • 重新利用数据驱动功能测试的安全性和性能
  • 数据驱动测试的优势

数据驱动具有许多优点,其中包括:

  • 允许在回归测试期间使用多组数据值测试应用程序
  • 测试数据和验证数据只能组织在一个文件中,并且与测试用例逻辑分开。
  • 基于该工具,可以将测试脚本存储在单个存储库中。这使文本易于理解,维护和管理。

动作和功能可以在不同的测试中重复使用。

  • 一些工具会自动生成测试数据。当需要大量随机测试数据时,这很有用,这有助于节省时间。
  • 数据驱动的测试可以执行开发的任何阶段。数据驱动的测试服务通常在单个过程中合并。但是,它可以在多个测试案例中使用。
  • 允许开发人员和测试人员清楚地将测试用例/脚本的逻辑与测试数据区分开。
  • 相同的测试用例可以执行多次,这有助于减少测试用例和脚本。
  • 测试脚本中的任何更改都不会影响测试数据

数据驱动测试的缺点:

  • 测试的质量取决于实施团队的自动化技能
  • 测试大量数据时,数据验证是一项耗时的任务。
  • 维护是一个大问题,因为数据驱动测试需要大量编码。
  • 需要高级技术技能。测试人员可能必须学习全新的脚本语言。
  • 将有更多文档。主要与脚本管理测试基础结构和测试结果有关。
  • 需要使用诸如记事本之类的文本编辑器来创建和维护数据文件。

结论:

数据驱动的是一个测试自动化框架,以表格或电子表格格式存储测试数据。

  • 在数据驱动的测试自动化框架中,输入数据可以存储在单个或多个数据源中,例如xls,XML,csv和数据库。
  • 为每个数据集创建单独的测试是一个漫长且耗时的过程。数据驱动测试框架通过将数据与功能测试分开来解决了此问题。
  • 在数据驱动测试中,使用实际信息是理想的选择
  • 它允许在回归测试期间使用多组数据值测试应用程序
  • 该方法的缺点在于它取决于实施团队的自动化技能

本文分享自微信公众号 - 软件测试test(gh_d29759b02f67),作者:Coldrain

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 高效持续测试策略的4个要素

    通常,当组织计划并实施有效的测试自动化策略时,他们认为他们正在实施连续测试。他们错了。

    用户7466307
  • 软件测试分类有那些,你还知道吗

    回答以下小问题: 1.什么时候进行单元测试? 2.由谁来做单元测试? 3.单元测试的依据? 4.单元测试的通过标准? 5.国内单元测试的现状? 6.如何进行单元...

    用户7466307
  • 功能测试面试题(一)

    01. 为什么要在一个团队中开展软件测试工作?   因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这...

    用户7466307
  • 自动化软件测试与人工测试比较

     既然现在有了自动化测试,甚至现在许多团队在使用人工智能的方法,逐渐让机器来取代人的测试。那么作为测试工程师的人未来会不会消失?这是一个摆在许多人面前的一个严肃...

    小老鼠
  • Gartner报告:2019年软件测试行业的3个最新研究

    Gartner (高德纳,又译顾能公司,NYSE: IT and ITB)全球最具权威的IT研究与顾问咨询公司,它为有需要的技术用户来提供专门的服务,并且一直是...

    软测小生
  • 移动应用的“红海”时代,靠什么突出重围?

    2016年,对于移动应用产业来说,是颇为艰难的一年,国内移动应用行业增速整体放缓。流量获取成本增高,App/手游同质化严重,很难轻松打造一款现象级移动应用。与此...

    WeTest质量开放平台团队
  • 如何在DevOps中实施连续测试

    在过去的十年中,对软件开发的需求已急剧发展。软件已成为公司获得竞争优势的关键优势,特别是如果您的公司属于SaaS范畴。通过在SDLC中实施瀑布等传统流程,组织现...

    用户7118204
  • 软件测试相关名词

    白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的...

    用户7657330
  • 你真的会测试吗?

    前段时间公司在做一个专案,关于开发SAP三方交易单据联动的平台,大概功能就是系统里面两家公司交易业务里自动根据销售公司对客户的销售订单生成相应的采购订单和销售订...

    SAP梦心
  • 2020 可替代Selenium的测试框架Top15

    业界有一些强大的工具可以替代Selenium,今天就来大概介绍一下。以下清单是精挑细选的Selenium替代框架:

    软测小生

扫码关注云+社区

领取腾讯云代金券