关闭

[置顶] 如何选择自动化测试框架

标签: 自动化测试框架robot数据驱动
2039人阅读 评论(0) 收藏 举报
分类:

软件自动化测试,作为手工测试的替代,越来越受到关注。Pekka Klärck,作为Robot Framework的创建者和核心开发者,按照系统级别,介绍了几种不同的自动化测试方法的区别。

一、记录回放的方式流行于商业工具之中,无需编程技能即可快速上手。然而这种方法相对脆弱,一旦UI变化测试就会受到影响,分散的脚本不可重用且难以维护,而且系统在测试前必须可用(也就意味着无法使用A-TDD方法)。因此这种方法并不适合大型自动化测试。

二、线性脚本允许使用各种语言来编写非结构化脚本,脚本直接与被测系统交互。能够快速上手,灵活性强。但是编写脚本需要编程技能,系统中一个改动会影响所有脚本,没有经过模块化或重用的大量脚本难以维护。因此这种方法适合简单任务,不适合大型自动化。

三、模块化脚本由两部分组成:驱动脚本执行测试,测试库函数完成与被测系统交互。驱动脚本编写起来非常简单,这样可以更快地建立新测试,容易维护。然而需要花时间和编程技能建立测试库,并将测试数据嵌入脚本,建立新测试就需要新的测试脚本。因此,只要拥有编程技能,这种方法还是适合大型项目,但不适合非编程人员。

四、数据驱动方法,将数据与测试脚本分离,基于模块化的测试库,一个驱动脚本可以执行多个相似测试,这样非常容易建立新测试。维护工作可以分离,测试人员负责数据,程序员负责写测试库。然而,不同类型测试仍需要新的驱动脚本,初始建立数据解析器和重用组件需要花人力。这种方法适合大型项目,只需要较少的编程技能。

五、关键字驱动,将数据与关键字结合来描述如何使用数据执行测试。这种方法具备数据驱动的优势,同时非编程人员也能建立新类型测试。所有测试由同一个框架来执行,无需不同的驱动脚本。然而初始成本很大,但是可以使用开源方案!因此非常适合大型项目。

Pekka对以上五种方法的介绍其实也是对自动化测试发展史的介绍,同时也体现了RobotFramework背后的设计思想。

除了测试框架的选择,要想做好自动化测试,还要关注其他方面。

自动化测试需要关注可测性。自动化最难的部分是与被测系统交互,特别是GUI层。确保系统容易被测试,比如给GUI元素增加标识、输出易于解析的文本、提供自动化接口等。

系统一般可以分为GUI层以及GUI之下的业务层。GUI层测试需要调用与普通用户同样的接口,但是某些GUI技术缺乏好的工具支持,会使测试变得脆弱,而且执行相对较慢。从业务层开始测试相对容易,执行快。但GUI层仍然需要被测试,以保证GUI正确连接到了业务层,甚至有时GUI层也具有业务功能。Pekka建议考虑对业务层进行完全测试,而部分地对GUI层实行端到端测试。 不是所有系统都具有GUI层,却可能具有API、数据库、服务器、命令行等。自动化测试框架可以调用不同驱动来进行测试。这些非GUI层相对容易测试,只要把测试用例看作另一个客户端而已。

那么自动化测试应该在什么阶段进行?如果开发完成后单独做自动化,这是典型的瀑布式过程,不同团队之间存在沟通障碍,反馈周期慢,产品在后期难以获得可测性,从而导致复杂和脆弱的测试方案。相反,典型敏捷式过程中,程序员和测试人员协同完成自动化。把自动化看作团队开发的一部分,可测性不再是问题,团队做技术决定时就可以考虑可测性和工具选择,程序员可以提前加入提供可测性的钩子特性。

自动化测试需要版本控制和持续集成来支持。将测试和代码放在一起,像管理代码一样管理测试脚本,那么多可用工具,SVN、GIT、Mercurial,没道理不用。持续集成是全方位自动化的关键,当测试或代码有所改动立即执行测试。如果测试运行时间比较长,也可以定期运行。使用Jenkins、Hudson、Cruise Control、 BuildBot吧,自己写定时脚本或Cron Job可以休矣。

选择商业自动化工具还是开源工具?好东西肯定贵,但是贵的不见得好,再便宜的许可证也会阻止整个团队的协作。而且商业化工具难以和其他自动化工具(特别是其他厂商的)或版本控制、持续集成进行整合和定制化。另外,产品终止或公司关门是潜在的风险。开源工具可供选择余地很大,当然也是良莠不齐。开源工具通常容易与其他工具整合,关键是免费,谁都可以随意使用和定制化,还永远不会消失。至于免费软件,越来越少了,很多自由软件都已经开源。免费软件同样不能定制化,且存在中止的风险。

做自动化需要哪些技能?一般来说,包括Python、Ruby、Perl、JavaScript、正则表达式、XPath和CSS定位、SQL语句、版本控制等。

有了自动化,手工测试还需要吗?当然需要!! 不过,要避免手工执行脚本来测试,还是将其完全自动化吧,测试人员可以更多关注于探索性测试。 记住,机器擅长回归测试,人类善于寻找Bug。

1
0
查看评论

自动化测试框架对比(UIAutomator、Appium、Robotium)

转载自:http://www.cnblogs.com/liuyuxuan/p/5614923.html 自动化测试框架对比(UIAutomator、Appium、Robotium) 一、原理 1.UiAutomator——基于UIAutomati...
  • lv18092081172
  • lv18092081172
  • 2016-08-04 21:47
  • 8565

自动化测试框架思路

第一次写类似的文章,语言组织能力不够,就从最简单的开始一路白话文把自己搭框架时的想法一路写下来,可能比较啰嗦,各位看官见谅。 在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的...
  • CSDN_User_001
  • CSDN_User_001
  • 2016-08-14 14:24
  • 943

移动APP自动化测试框架对比

简介  移动APP的UI自动化测试长久以来一直是一个难点,难点在于UI的”变”, 变化导致自动化用例的大量维护。从分层测试的角度,自动化测试应该逐层进行。最大量实现自动化测试的应该是单元测试,最容易实现也最容易在早期发现问题;其次是接口级测试,以验证逻辑为目的进行自动化,由于接口的相...
  • xiaoyida11
  • xiaoyida11
  • 2016-10-20 18:34
  • 5809

评四种常用的自动化测试框架

一直想仔细研究框架,写个流水账似的测试程序不难,写个低维护成本的测试框架就很难了,所以研究多种测试框架还是很有必要的,知道孰优孰劣,才能在开始编写框架的时候打好基础,今天读到了KiKi Zhao的翻译文章,觉得很是不错,写了一点学习心得,有不正确之处,请指出。中文原文地址:http://www.cn...
  • roger_ge
  • roger_ge
  • 2010-02-22 22:04
  • 25224

分享个最近在做的自动化测试框架

分享个自己最近在做的自动化测试框架架构图。 数据的测试,入口一般定时任务。可添加参数选择执行任务的范围,也可以选择默认的执行范围。验证测试的为etl测试、数据库中的字段校验(通过对应关系、接口或者SQL校验)。工具类 数据库工具类:定义一些数据库相关的操作,主要为操作MySQL。自定义了一些增删改...
  • dongmu1986
  • dongmu1986
  • 2016-05-06 21:40
  • 2632

几种常见的Android自动化测试框架及其应用

几种常见的Android自动化测试框架及其应用
  • u010375364
  • u010375364
  • 2016-09-03 18:28
  • 3845

自己理解的自动化测试框架

数据驱动的测试方法:数据驱动从数据文件读取输入数据,通过变量的参数化将测试数据传入测试脚本,不同的数据文件对应不同的测试用例。我理解的就是不同的功能点测试,用一个表格列出来,自动化去操作,只要传入不同数据去对应用例执行脚本。数据与脚本分离。        关键...
  • Jack_Chen3
  • Jack_Chen3
  • 2015-12-13 11:47
  • 1568

如何选择自动化测试框架?

 Michael Kelly在《Choosing a test automation framework》一文中提到测试自动化框架是一组假设、概念和惯例的集合,用于支持自动化测试。(A test automation framework is a set of assumptions, c...
  • Testing_is_believing
  • Testing_is_believing
  • 2008-06-29 10:03
  • 3624

浅谈基于Selenium的Web自动化测试框架

● 面临的挑战   从Google到Facebook,从Twitter到新浪微博,新一轮的互联网热潮正在全世界蔓延。随着云概念的日益清晰,越来越多的企业也已经摆脱了传统的C/S架构的应用框架而转投云计算的怀抱,Web已经成为我们生活和工作的重心。   有别于传统的桌面应用开发,Web应用...
  • n8765
  • n8765
  • 2015-11-16 16:54
  • 3958

从零开始到设计Python+Selenium自动化测试框架-如何开始

如何开始学习web ui自动化测试?如何选择一门脚本语言?选择什么自动化测试工具?        本人已经做测试快5年,很惭愧,感觉积累不够,很多测试都不会,三年多功能测试,最近两年才开始接触和学习自动化测试。打算写一个系列文章,关于如何从零开始到会设计和组装...
  • u011541946
  • u011541946
  • 2017-03-14 17:07
  • 5189
    个人资料
    • 访问:14410802次
    • 积分:5030
    • 等级:
    • 排名:第6620名
    • 原创:60篇
    • 转载:14篇
    • 译文:1篇
    • 评论:21条