什么是关键字驱动测试?关键字驱动测试是如何实现的?

什么是关键字驱动测试?

关键字驱动测试 (KDT) 是测试自动化中的一种脚本技术,其中测试用例指令与实际测试脚本逻辑分开。它利用一组预定义的关键字来表示要在被测应用程序 (AUT) 上执行的操作。这些关键字是用户交互或系统状态的抽象表示,使测试更易于阅读和维护。

在 KDT 中,测试数据和关键字通常存储在外部数据文件或表中,允许非技术利益相关者参与测试的创建和修改,而无需了解底层代码。该方法促进了代码和测试用例的可重用性,因为相同的关键字可以在不同的测试脚本中使用。

测试自动化工程师通过首先定义关键字及其相关操作来实现 KDT。然后,他们通过对这些关键字进行排序来创建测试用例,以反映执行测试所需的用户交互。测试自动化框架解释关键字,并在 AUT 上执行相应的操作。

KDT通常与其他测试方法结合使用,以提高测试覆盖率和效率。在需要快速调整测试以适应应用程序更改而无需大量修改脚本的情况下,它特别有效。虽然 KDT 提供了一些优点,但它也有局限性,例如设置关键字库所需的初始时间投资以及降低测试脚本粒度的可能性。

关键字驱动测试是如何实现的?

关键字驱动测试 (KDT) 是通过一系列步骤实现的,这些步骤将测试设计与测试执行分开。

这是一个简明的指南:

确定关键字:确定应用程序中通常执行的操作,例如“login”、“clickButton”或“verifyText”。

创建关键字函数:编写执行这些操作的函数。如果可能,每个函数都应该是可重用的,并且独立于应用程序。

function clickButton(buttonName) {    // Code to click a button}

设计测试用例:使用关键字和相应参数以表格格式定义测试用例。这可以通过电子表格或任何其他简单的数据驱动格式来完成。

开发测试脚本:创建读取测试用例并使用指定参数调用关键字函数的脚本。

执行测试:运行测试脚本。运行器应解释关键字和参数,然后调用相应的函数。

报告结果:捕获每个关键字执行的结果,并以可读的格式报告它们。

通过执行这些步骤,可以实现 KDT 方法,以增强测试可维护性并促进代码重用。请记住,要使关键字尽可能抽象,以最大限度地提高它们在不同测试用例中的效用。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

如何为自动化测试创建关键字驱动的框架?

识别关键字:确定可以抽象为关键字的常见操作,例如 、 或 。LoginClickButtonEnterText

设计关键字结构:定义关键字的结构,包括名称、参数和返回值。

创建关键字函数:实现执行关键字描述的操作的函数。使用测试自动化工具支持的编程语言。

function EnterText(fieldIdentifier, textValue) {    // Code to enter text into a field}

开发测试脚本:使用关键字编写测试脚本。脚本应该是可读和可维护的,专注于测试流程而不是技术细节。

EnterText("username", "testuser");EnterText("password", "securepass");ClickButton("login");

构建执行引擎:开发或配置一个执行引擎,该引擎可以解释关键字并调用相应的函数。

数据驱动方法:(可选)与外部数据源集成,以使用不同的数据集驱动测试。

日志记录和报告:为关键字执行的操作实施日志记录,并生成报告以提供对测试执行的见解。

维护:定期更新关键字和脚本,以适应被测应用程序的变化。

审查和完善:不断审查框架的有效性,并完善关键字和函数,以获得更好的抽象和可重用性。

实际应用

关键字驱动测试 (KDT) 的一个有效用例是在大型电子商务平台回归套件的自动化过程中。该平台在网络和移动设备上具有多个用户界面,具有各种用户流程,例如帐户创建、产品搜索、购物车管理和结账流程。

测试团队创建了一个全面的关键字库,该库封装了各种操作。这些关键字抽象了底层的技术实现,允许测试人员在没有深入编程知识的情况下以表格格式编写测试用例。EnterTextClickButtonVerifyProductDetailsCheckoutItem

例如,可以使用关键字自动执行简化的结账流程,如下所示:

OpenBrowser 'https://www.example-ecommerce.com'EnterText 'SearchBox', 'wireless headphones'ClickButton 'SearchSubmit'VerifyProductDetails 'ProductList', 'Wireless Headphones XYZ'ClickButton 'AddToCart'CheckoutItem

这种方法使团队能够快速适应 UI 更改。当结帐按钮重命名并移动到页面的不同部分时,只有关键字定义需要更新,而不是每个单独的测试用例。CheckoutItem

此外,关键字驱动的方法促进了开发人员、测试人员和业务分析师之间更好的协作。业务分析师可以审查基于关键字的测试脚本,以确保它们符合业务需求,而开发人员可以专注于在应用程序发展过程中维护关键字定义。

KDT 框架支持并行执行以及与 CI/CD 管道的集成,从而显著缩短了回归套件的执行时间,并改善了开发团队的反馈循环。

关键字驱动测试哪些应用?

关键字驱动测试 (KDT) 在各个领域找到实际应用程序,其中测试用例可以抽象为关键字,使利益相关者更容易理解和参与自动化测试。以下是一些应用:

电子商务平台:KDT 允许测试人员在不同的测试场景中重用关键字,从而简化了用户界面和工作流程(如搜索、添加到购物车和结账流程)的测试。

银行软件:为了验证复杂的交易流程,KDT有助于创建可读的测试用例,这些测试用例可以很容易地修改,以响应银行法规的频繁变化。

医疗保健系统:由于需要严格的合规性和数据完整性,KDT 有助于自动执行患者注册、预约安排和医疗计费的重复测试。

移动应用程序:KDT 用于通过定义滑动、点击和捏合等手势的关键字来测试跨平台兼容性和用户交互。

企业资源规划 (ERP) 系统:KDT 支持财务、人力资源和供应链管理等模块的测试,使非技术利益相关者能够使用业务可读的关键字参与测试自动化。

内容管理系统 (CMS):KDT 通过将复杂的操作抽象为简单的关键字来促进内容发布工作流和用户权限的测试。

游戏:为了测试各种游戏场景和用户交互,KDT 允许测试人员编写开发团队易于理解和修改的测试。

在这些应用中,KDT弥合了技术和非技术团队成员之间的差距,增强了协作,使测试自动化过程更易于访问和维护。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:自动化测试老司机 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BBS前后端混合项目--03

展示 static/bootstrp # bootstrap.min.css /*!* Bootstrap v3.4.1 (https://getbootstrap.com/)* Copyright 2011-2019 Twitter, Inc.* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)*//*! normalize.css v3.0.3 | MIT License | github.com/n…

C语言----链表

大家好,今天我们来看看C语言中的一个重要知识,链表。当然大家可以先从名字中看出来。就是一些表格用链子连接。那么大家是否想到了我们以前学的数组,因为数组也是相连的呀。是吧。但是链表与数组还是有区别的,那么链表是什么有什么…

C语言实现队列

前言:在实现栈之后我们再介绍一下他的孪生兄弟,一个是后进先出,一个是先进先出。那么就让我们来详细的了解一下队列把。 目录 一.队列概念 二.队列的实现 1.定义队列 2.初始化队列 3.入队 4.判断队列是否为空 5.出队 6.返回队头…

使用kali进行DDos攻击

使用kali进行DDos攻击 1、打开命令提示符,下载DDos-Attack python脚本 git clone https://github.com/Elsa-zlt/DDos-Attack 2、下载好之后,cd到DDos-Attack文件夹下 cd DDos-Attack 3、修改(设置)对ddos-attack.py文件执行的权…

Git 核心概念与实操

这里写目录标题 1 版本回退2 工作区、暂存区、本地仓库、远程仓库 1 版本回退 原文链接:https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192 首先 git log 查看提交记录 在Git中,用 HEAD 表示当前版本 上一个版本就是 HEAD^ &#xff…

IDM 平替 Gopeed Flutter 开源免费下载工具

IDM 平替 Gopeed Flutter 开源免费下载工具 视频 https://youtu.be/m206G5lVXPM https://www.bilibili.com/video/BV1Lz421k7Zp/ 前言 原文 https://ducafecat.com/blog/flutter-gopeed-downloader-idm-replace https://flutter.ducafecat.com/github/repo/GopeedLab/gopeed…

总结Java中的synchronized

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 目录 总结*synchronized**初识synchronized*使用synchronizedsynchronized的特性(1)可重入性(2)自适应过程(3)锁消除(4)非公平锁(5)互斥锁 总结synchronized 初识synchronized 通过一个线程不安…

TCP/IP常用协议栈图解

1.引言 最近看了一些计算机网络的课程,总结借鉴了一些TCP/IP常用协议,罗列在以下图中,以便有一个整体观。 2.图解 先上图 3.总结 TCP/IP协议是实际用的计算机网络通信的标准协议栈,自上而下分为应用层,传输层&#xf…

4.23日总结(项目总结)

1.项目: 今日项目通过一个在登录界面的一个静态变量,完成了区分老师和学生,能够分开老师和学生,并且不同身份的人进去会有不同的显示,以及登录链接主界面,还有学生和老师的不同的表,其次就是创…

陆金所控股一季报到底是利好还是利空?

3月底,陆金所控股(LU.N;06623.HK)因其特别分红方案受到市场高度关注。但在4月23日发布的2024年一季度财报中,陆金所控股营收同比下降30.9%,净亏损8.3亿元。 两者对比,外界不由得对公司的经营状况产生疑惑。…

机器人模型匹配控制(MPC)MATLAB实现

模型匹配控制(Model matching control)是指设计一个控制器使闭环系统的传递函数tf(s)与td(s)相一致! mpcDesigner 可以分为: 2时域精确模型匹配控制3频域精确模型匹配控制 机械臂控制中应用模型匹配控制(Model Matc…

Rabbitmq安装延迟插件rabbitmq_delayed_message_exchange失败

Docker里的Rabbitmq容器安装延迟插件rabbitmq_delayed_message_exchange失败 一启动插件Rabbitmq容器直接停止运行了 rabbitmq-plugins enable rabbitmq_delayed_message_exchange排除了版本问题和端口问题等,发现是虚拟机运行内存不够,增加虚拟机运行内…

WEB前端-笔记(三)

目录 一、事件 1.1类型 1.2对象 1.3页面加载事件 1.4滚动事件 1.5尺寸事件 1.6捕获&冒泡事件 1.7阻止表单提交 1.8全选案例 1.9事件委托 ​编辑 1.10client&offset 1.11换取元素的位置 1.12创建节点 1.13克隆节点 1.14删除节点 1.15setTimeout 1.16s…

【Hadoop】-Hive部署[12]

目录 思考 VMware虚拟机部署 规划 步骤1:安装MySQL数据库 步骤2:配置Hadoop 步骤3:下载解压Hive 步骤4:提供MySQL Driver包 步骤5:配置Hive 步骤6:初始化元数据库 步骤7:启动Hive&…

Docker搭建代码托管Gitlab

文章目录 一、简介二、Docker部署三、管理员使用四、用户使用五、用户客户端 一、简介 GitLab是一个基于Git的代码托管和协作平台,类似于GitHub。 它提供了一个完整的工具集,包括代码仓库管理、问题跟踪、CI/CD集成、代码审查等功能。 GitLab的开源版本…

全面了解俄罗斯的VK开户和Yandex投放及内容运营

俄罗斯的VKontakte(简称VK)和Yandex是两个重要的在线平台,对于希望在俄罗斯市场进行推广的企业来说,了解如何在这些平台上开户和投放广告以及内容运营是非常关键的。 俄罗斯vk广告如何开户? 通过上海上弦进行俄罗斯V…

画图的神器及必备的调色和选图工具

大学生研究生论文写作及画图的神器 前言常用的工具集合画图工具配色参考画图神器词云 最后下篇 前言 好久没有更博,来更一下吧。最近刚好被问到平常是用什么来画图的,包括会议论文,各种类型的PPT汇报以及项目报告等等里面的图怎么画好。所以…

7.2K star!一个完全免费,可以本地部署的 AI 搜索聚合器。新手可尝试

原文链接:7.2K star!一个完全免费,可以本地部署的 AI 搜索聚合器。新手可尝试 ChatGPT 刚上线的时候我用的很少,还是习惯用 Google。主要还是因为不信任,怕它对我胡说八道。 慢慢的,也没有一个明确的时间…

SpringCloud 与 Dubbo 的区别详解

一、Spring Cloud 和 Dubbo 的概述 1.1 SpringCloud 简介 SpringCloud 是一个用于构建云原生应用的框架集合,它为开发者提供了一套完整的工具链,用于快速搭建分布式系统。SpringCloud 基于 SpringBoot 开发,具有如下特点: 提供…

美国签证证件照规格要求(51mm*51mm)

美国签证证件照规格要求(51mm*51mm)