你应该知道的自动化测试的“ABC”

发布时间:2014-8-8 15:09    发布者:看门狗
关键词: 自动化测试
作者:Machinnneee

  在这个电子世界里,自动化的产品日渐丰硕。在这些电子产品研发过程中,软件测试是一件令人头疼的事,经常会有大量bugs出来,所以,能自动检测出来软件中的bugs,是一件多么幸福的事情呀。

  所谓的自动化测试一般指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,其中预先条件应包括正常条件和异常条件。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。

  一、引入自动化测试意义

  自动化测试引入的原因是就把软件测试人员从枯燥乏味的机械性手工测试劳动中解放出来,以自动化测试工具取而代之,使测试人员的精力真正花在提高软件产品质量本身。

  与传统测试/手工测试相比,自动化测试具有明显的突出作用:

  ①节省人力、时间、硬件资源,规范测试流程 ;
  ②提高测试可信度,降低人为错误 ;
  ③提高测试效率,使更加专注于新的测试模块的建立和开发,从而提高测试覆盖率 ;
  ④便于测试资产的数字化管理,使得测试资产在整个测试的生命周期内得到复用 ;

  根据OppenheimerFunds(奥本海默基金公司)的调查,在2001年前后的3年中,全球范围内由于采用了测试自动化手段所实现的投资回报率高达1500%。

  二、自动化测试的适用场景

  通常适合于测试自动化的场合:

     ♦ 回归测试,重复单一的数据录入或是击键操作等测试工作造成了不必要的时间和人力的浪费;
  ♦ 借助于测试自动化工具,测试人员可获得更好的对程序的理解和对设计文档的验证;
  ♦ 采用自动化测试工具有利于测试报告文档的生成和测试版本的连贯性;
  ♦ 自动化工具能够确定测试用例集对程序逻辑流程和控制流程的覆盖。

  三、自动化测试的实质

  主要功能为测试的应用软件

1.jpg

  四、自动化测试工具

  由于项目中采用的是Selenium测试工具,所以重点篇幅介绍写Selenium测试工具。

  5.1 Mercury测试工具系列(QTP,QC,LR,WR...)

  Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、 复杂的企业级应用无故障发布及长期稳定运行。

  5.2 Selenium测试工具

  Selenium测试工具是ThoughtWorks公司开发的web自动化测试工具

  Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建衰退测试检验软件功能和用户需求。支持自动录制动作和自动生成。Net、Java、Perl等不同语言的测试脚本。Selenium框架如图1所示。

2.jpg

由于存在同源策略的问题,所以在进行测试部署时,必须将所测试程序部署在服务器端。 例如你想采用selenium-core来测试用JavaScript写的www.google.cn,由于不允许向磁盘写数据,所以只能将测试结果发送到另外一台服务器进行保存。

  Selenium IDE是对浏览器进行扩展,作为FireFox的一个插件。通过监听用户对html页面的操作来录制脚本。 其特点:

  ①非常容易在页面上进行录制和回放
  ②能自动通过id,name和xpath等来定位页面上的元素
  ③自动执行selenium的命令
  ④能够进行编辑、调试和设置断点
  ⑤录制时自动生成脚本,不但能够保存,并且能转化成各种语言(C#、JAVA等)
  ⑥在每个录制的脚本中能够加入断言

  测试套件Suit

  要达到对应用程序的完全测试覆盖,通常需要不止一个测试用例。测试套件用于将具有类似功能的一些测试用例编成一组,以便让它们按顺序运行。

  测试套件和测试用例一样,都是用简单的 HTML 表编写的。但是注意,测试套件使用一个只包含一列的表,表中的每一行指向一个包含某个测试用例的文件,如下例所示:

3.jpg

  通过以上的分析,我们可以知道10 Selenium比其他的测试工具有着明显的优势,但是其也有一定的限制:

  ①录制脚本可能会带来冗余、公用元素不可调用、脚本调试复杂等问题。专业化的建议是以录制为参考,以编写脚本为主要行为。 当每一个测试用例所形成的脚本通过测试后,并不意味着执行多个甚至所有的测试用例就不会出错。

  ②输入数据或测试环境的改变,都会导致测试结果受到影响甚至失败。而如果仅是一个个执行测试用例,也只能被称作是半自动化测试,极大的影响自动化测试的效率。

  ③Selenese 有一些严格的限制,如它没有条件(没有“if”表达式),没有循环(没有“For”表达式)。这样会使编写复杂的测试变得困难甚至不可能。

  六、自动化测试的使用范围

  1) 软件需求变动不频繁
  不稳定的系统也就意味着测试的不稳定,我们不知道这次的变动是否会影响到系统其他的功能。那么是否需要在每次迭代完以后都需要对系统进行完整的回归测试呢?测试脚本的稳定性决定了自动化测试的维护成本。如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。

  项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。

  2) 周期足够长的项目
  自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要时间和精力来完成,这样的过程本身就是一个测试软件的开发过程,需要考虑投入成本的问题。

  如果项目的周期比较短,没有足够的时间去支持这样一个过程,或者说传统测试所花费的时间和人力资源远小于采用自动化测试的投入,那么自动化测试便成为笑谈。

  3) 自动化测试脚本可重复使用
  如果费尽心力开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。

  七、小结

  任何一种产品化的测试自动化工具,都可能存在与某具体项目不甚贴切的地方。再加上,在企业内部通常存在许多不同种类的应用平台,应用开发技术也不尽相同,甚至在一个应用中可能就跨越了多种平台,或同一应用的不同版本之间存在技术差异。所以选择软件测试自动化方案必须深刻理解这一选择可能带来的变动、来自诸多方面的风险和成本开销。
本文地址:https://www.eechina.com/thread-131660-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表