前言:自动化测试在过去的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)的更多相关文章

  1. [Automation] 自动化测试工具和测试框架大集合

    8 Open Source Test Automation Tools for Desktop Applications written in WinForms/ WPF: Tool Comment ...

  2. TestNG 搭建测试框架 自动化测试

    框架层级及基本组件:    参考:https://www.cnblogs.com/jier888/p/8998724.html Java作为开发语言 Maven管理项目及Jar包 Testng作为测试 ...

  3. 关于基于python2.7的unity自动化测试框架GAutomator测试环境的搭建(源码网盘下载地址:https://pan.baidu.com/s/1c2TXwtU)

    关于基于python 2.7的unity自动化测试框架GAutomator测试环境的搭建 百度云盘链接(思维图学习资料):https://pan.baidu.com/s/1dFWExMD 准备工作(具 ...

  4. Python几种常用的测试框架

    一.测试的常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的: 每个测试单元必须是完全独立的,必须能单独运行.这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作.通常通过 ...

  5. TestNG测试框架在基于Selenium进行的web自动化测试中的应用

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ TestNG+Selenium+Ant TestNG这个测试框架可以很好的和基于Selenium的 ...

  6. python 几种常用测试框架

    测试的常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的: 每个测试单元必须是完全独立的,必须能单独运行.这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作.通常通过se ...

  7. <自动化测试>之<使用unittest Python测试框架进行参数化测试>

    最近在看视频时,虫师简单提到了简化自动化测试脚本用例中的代码量,而python中本身的参数化方法用来测试很糟糕,他在实际操作中使用了parameterized参数化... 有兴趣就查了下使用的方法,来 ...

  8. Android自动化测试,5个必备的测试框架

    Appium Appium是一个开源的移动测试工具,支持iOS和Android,它可以用来测试任何类型的移动应用(原生.网络和混合).作为一个跨平台的工具,你可以在不同的平台上运行相同的测试.为了实现 ...

  9. Android开源测试框架学习

    近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...

随机推荐

  1. dede修改文章页命名规则

    一.DEDEcms  修改默认文章命名规则 1.单独添加分类默认修改,修改文件:include/common.inc.php. 大概在251行文档的命名规则 $cfg_df_namerule = '{ ...

  2. 前后端完全分离开发模式Tomcat跨域问题处理

    公司新项目实现方案采用前后端完全分离架构,后端采用spring boot框架,前端纯HTML5开发部署会采用同一台服务器,但是在实现过程中分工开发出现ajax请求跨域问题故为解决开发问题发现如下解决方 ...

  3. PHP之string之ord()函数使用

    ord (PHP 4, PHP 5, PHP 7) ord - Return ASCII value of character ord - 返回字符的 ASCII 码值 Description int ...

  4. C#调用Dll文件中方法的简单应用

    参考:http://www.cnblogs.com/Asuphy/p/4206623.html 直接看代码,最简单的引入,只需要3步: using System; using System.Colle ...

  5. linux 安装jdk 二进制版本,非安装版

    0.下载jdk8 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html选择对 ...

  6. [PY3]——IO——pathlib

    pathlib.Path() from pathlib import Path p=Path("/test2") Path.cwd() print(p.cwd()) /py3 Pa ...

  7. linux shell学习-1

    今天在使用$()这个命令的时候,如下,一直纳闷为何输出不是 "/usr": 一直在不断换着法子来试,原来是$()会将每个执行的命令单独隔开来的,及时是嵌套的命令,也会在执行逻辑上单 ...

  8. Linq中连接

    Linq中连接主要有组连接.内连接.左外连接.交叉连接四种.各个用法如下. 注:本文内容主要来自<Linq实战>,本例中用到的对象请见文章底部. 1. 组连接 组连接是与分组查询是一样的. ...

  9. 欢迎来到GIS思考者的博客www.gisthinker.com

    我是一名GIS爱好者,这是我的个人博客,欢迎点击: GIS思考者:www.gisthinker.com

  10. Node.js创建第一个应用

    在我们创建 Node.js 第一个 "Hello, World!" 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的: 引入 required 模块:我们可以使用 r ...