常用的自动化测试框架及测试框架的发展(Alpha)
前言:自动化测试在过去的20年已经有了很大的发展。最初的测试工具只提供了简单的捕捉/回访功能,维护性较差。而且脚本工具实现需要很强的开发技术和经验,而且数量众多的测试脚本加上没有文档记录因此维护起来较难,成本开销巨大。为了使测试人员集中精力在测试用例设计上,测试框架产品就出现了,它能够减少学习和使用脚本语言的时间,集中精力在测试上,就出现了测试框架。下面将讨论自动化测试框架的概念,和测试框架的发展,知道了这些我们对比我们使用的测试框架,也知道我们处在什么阶段,从而改进测试的思想,也可能创造出更适合现代软件测试的测试框架思想。
常见的5种自动化测试框架
(1)测试脚本模块化框架。
测试脚本模块化框架需要创建能够代表被测程序模块,片段(Section)和函数的的一个个小而独立的脚本。然后用分级的方式将小脚本组成更大的测试,实现一个特定的测试用例。它很好的支持面向对象的程序设计或结构化程序设计中的模块化,抽象,封装及信息隐藏等编程思想及原则在软件开发中的应用。测试脚本模块化框架由于应用了抽象或封装的原则,从而大大提高了支持自动化测试的测试集(Test suit)d的可维护性和可测量性。(测试脚本也可以理解成开发中的一个个小的的模块,为了完成整个完整的开发的整体功能,也就是软件开发中的模块化思想。)
(2)测试库框架
测试库框架和模块化测试框架类似,并且具有同样的优点。不同的测试库框架把被测程序分解为过程和函数而不是脚本。这个框架需要创建描述模块,片段以及被测程序的功能库文件(例如 SQABasics Libries,APIs,Dlls等)。(可以理解为测试脚本模块化原来是汽车的发动机,油箱一个个组件现在把油箱发动机拆了,更细化弄成一个个螺丝钉和铁皮,就是分解的更细不知道这样理解对不对,beta版本以后再补充!)
(3)数据驱动测试框架
数据驱动(data –driven)测试是一个框架。在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC数据源,excel文件,DAO对象,ADO对象等),并通过捕获工具生成或手工生成的代码脚本加载到变量中。在这个框架中,变量不仅不仅用来存放输入值,还被用来存放输出的验证值。还有个表驱动,表驱动的测试用例包含在数据文件而不是在脚本中,对于数据而言,脚本仅仅是一个“驱动器”,或者说是一个传送机构。数据驱动不同于表驱动测试,尽管导航数据并不包含在表结构中。在数据驱动测试中,数据文件中只包含测试数据。这个框架意图减少你需要执行所有测试用例所需要的总的测试脚本的数。数据驱动需要很少的代码来产生大量的测试用例,这与表驱动及其类似。(说了这么多表驱动中数据多一点可能包括测试用例数据,而数据驱动仅输入值和验证值,数据驱动似乎和上面的两种框架有了本质的区别)
(4)关键字驱动或者表驱动的测试框架
关键字驱动或表驱动是一种独立与应用程序的自动化框架,在处理自动化测试的同时也要适合手工测试。关键字驱动的自动化测试框架建立在数据驱动之上,表中包含指令(关键词),而不只是数据。这些测试被开发成使用关键字的数据表,它们独立与测试的自动化工具。关键字驱动的自动化测试是对数据驱动的自动化测试的有效改进和补充。关键字驱动的自动化测试的自动化测试的整个过程所包含的功能都是由关键字驱动的,关键字控制了整个自动化测试的过程。(这个就是表驱动测试了比数据驱动的数据多了点关键字!oh!原来是这样)HP_UFT是关键字驱动的大家可以结合理解。
(5)混合测试自动化测试框架
综合以上两种自动化测试框架,取长补短,弥补各自的补足:以数据驱动的脚本为输入,通过关键字驱动框架的处理得到测试结果,完成自动化测试过程。这样可以使数据驱动的脚本利用关键字驱动框架通常提供的库和工具。这些框架工具可以使数据驱动的脚本更为紧凑,而且也不容易失败。(3和4混合使用了我的天!)
自己画的图。。。。

常用的自动化测试框架及测试框架的发展(Alpha)的更多相关文章
- [Automation] 自动化测试工具和测试框架大集合
8 Open Source Test Automation Tools for Desktop Applications written in WinForms/ WPF: Tool Comment ...
- TestNG 搭建测试框架 自动化测试
框架层级及基本组件: 参考:https://www.cnblogs.com/jier888/p/8998724.html Java作为开发语言 Maven管理项目及Jar包 Testng作为测试 ...
- 关于基于python2.7的unity自动化测试框架GAutomator测试环境的搭建(源码网盘下载地址:https://pan.baidu.com/s/1c2TXwtU)
关于基于python 2.7的unity自动化测试框架GAutomator测试环境的搭建 百度云盘链接(思维图学习资料):https://pan.baidu.com/s/1dFWExMD 准备工作(具 ...
- Python几种常用的测试框架
一.测试的常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的: 每个测试单元必须是完全独立的,必须能单独运行.这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作.通常通过 ...
- TestNG测试框架在基于Selenium进行的web自动化测试中的应用
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ TestNG+Selenium+Ant TestNG这个测试框架可以很好的和基于Selenium的 ...
- python 几种常用测试框架
测试的常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的: 每个测试单元必须是完全独立的,必须能单独运行.这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作.通常通过se ...
- <自动化测试>之<使用unittest Python测试框架进行参数化测试>
最近在看视频时,虫师简单提到了简化自动化测试脚本用例中的代码量,而python中本身的参数化方法用来测试很糟糕,他在实际操作中使用了parameterized参数化... 有兴趣就查了下使用的方法,来 ...
- Android自动化测试,5个必备的测试框架
Appium Appium是一个开源的移动测试工具,支持iOS和Android,它可以用来测试任何类型的移动应用(原生.网络和混合).作为一个跨平台的工具,你可以在不同的平台上运行相同的测试.为了实现 ...
- Android开源测试框架学习
近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...
随机推荐
- c# timer使用
C#里现在有3个Timer类: System.Windows.Forms.Timer System.Threading.Timer System.Timers.Timer 这三个Timer我想大家对S ...
- PHPStorm操作小技巧
1.围绕选中字符输入引号或者括号 2.设置服务器部署 3.隐藏Project快捷键 Shift + Esc 4.IDE内窗口切换 Ctrl + TAB 5.关闭当前项目 File -> Clos ...
- easyui的datagrid对应的java对象
Easyui中datagrid控件要求的数据格式为: {total:”2”,rows:[{“id”:”1”,”name”,”张三”},{“id”:”2”,”name”,”李四”}]} 所以可以建一个对 ...
- JSTL之<c:set>的各种用法
<c:set>标签用于设置变量值和对象属性 语法格式 <span style="font-size:18px;"><c:set var="& ...
- JavaScript数据结构-15.二叉树
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Linux常用命令之sed(2)
Sed SED的英文全称是 Stream EDitor,它是一个简单而强大的文本解析转换工具,在1973-1974年期间由贝尔实验室的Lee E. McMahon开发,今天,它已经运行在所有的主流操作 ...
- SQL语句映射文件(1)resultMap
SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: ...
- AutoDetectChangesEnabled及AddRange解决EF插入的性能问题
转自:http://www.cnblogs.com/nianming/archive/2013/06/07/3123103.html#2699851 记录下. 园友莱布尼茨写了一篇<Entity ...
- 亿级别记录的mongodb分页查询java代码实现
1.准备环境 1.1 mongodb下载 1.2 mongodb启动 C:\mongodb\bin\mongod --dbpath D:\mongodb\data 1.3 可视化mongo工具Robo ...
- 以安全模式启动firefox
碰到firefox打开后一直没有响应,解决方法: 以安全模式打开