扒一扒数据驱动测试(DDT)与关键字驱动测试(KDT)
来源:互联网 发布:搞笑的网络用语 编辑:程序博客网 时间:2024/05/15 00:05
带软件功能测试项目的过程中,发现很多人对这两个概念很困惑,并且试图通过圈定KDT与DDT的各自边界来分离它们,结果纠结成了一团麻线。我们从它们的名称及说明来理一理。
KDT(Keyword-driven testing), also known as table-driven testing or action word based testing, it separates the documentation of test case - include the data to use - from the prescription of the way the test cases are executed.(维基百科是个好东西)
DDT(Data-driven testing) is a term used in the testing of computer software to describe testing done using a table conditions directly as test inputs and verifiable outputs as well as the process where test environment setting and control are not hard-code.
KDT和DDT是有区别的:什么因素对测试结果起决定性作用就是什么驱动测试过程。我们可以看到,DDT将测试数据从test case分离,通过改变这些数据我们可以得到不同的执行结果(比如说加法计算器,我们输入1,1得到2,而输入1,2得到结果为3),输入的数据是结果的决定因素,我们可以理解为是数据驱动的测试;KDT又称为“action word based testing”,改变“action word”(含使用的数据)测试结果也将发生变化,我们可以理解为是word驱动的测试。
KDT和DDT也有联系。“如果我们有了一段脚本,就可以对这个脚本做参数化,使之能模拟不同数据的操作情况得到相应执行结果。”基于这个共识,我们以登录脚本为例来分析这个过程——阶段1:登录脚本是由不同的action组成的(按钮点击,文本框输入),调整action word可以精准控制先执行什么、再执行什么,这是动作级的控制,确定操作的先后我们就得到了这段脚本;阶段2:将脚本中的用户名、密码作为变化的数据(参数化),我们就可以用来模拟不同用户的登录操作过程,在这个阶段我们关注的只是用户名和密码(数据),而对于先输入哪个数据、先点击哪个按钮我们并不关心(这些action对于我们来说是黑盒内的)。
我们可以得到如下结论:
1)驱动因素:KDT是action和data,DDT是data;
2)执行过程关注:KDT需要定义执行过程(白盒),而DDT不关注(黑盒);
3)精细度:KDT是动作级的,DDT是函数级的;
4)KDT是DDT的低级版本(越靠近实际操作过程越低级,类似于编程语言越接近机器码越低级);
5)KDT完成对action的定义封装之后,趋近DDT;
6)KDT使用面向对象思想将测试过程抽象为action word,可以定义用户的每个action。
HP UFT(老版本叫QTP)工具是市场上少有的支持这两种思想的自动化测试工具,可以通过这个工具的不同视图及参数化操作直观体会DDT及KDT思想。
- 扒一扒数据驱动测试(DDT)与关键字驱动测试(KDT)
- python ddt 数据驱动测试
- Selenium2+python自动化之数据驱动(ddt)
- TestComplete DDT (Data-driven Testing) 数据驱动测试介绍和简单实例
- 关键字驱动测试研究 (一)
- 关键字驱动测试(keyword-driven)
- 关键字+数据驱动自动化测试框架
- 关键字驱动测试框架
- 关键字驱动测试方法
- 关键字驱动测试
- 关键字驱动测试
- 自动化测试之 数据驱动 和 关键字驱动
- python之数据驱动DDT安装
- SoapUI 测试Data Driven(数据驱动测试)
- Appium实践—关键字驱动测试教程(一)
- 数据驱动测试 Robotium
- TestNG数据驱动测试
- 数据驱动测试技术
- U盘中毒修复
- 虚拟货币开发专题(多重签名技术是什么)
- Java使四舍五入和保留N位小数的方法
- 冒泡排序和快速排序
- Linux CentOS安装配置MySQL数据库
- 扒一扒数据驱动测试(DDT)与关键字驱动测试(KDT)
- 分享
- thinkPHP数据库——监听SQL
- MySQL存储引擎--MyISAM与InnoDB区别
- 谷歌chrome浏览器崩溃
- 备忘录
- windows下Python中libffm简单使用
- PyCharm2017安装教程,包含注册码
- 二叉树