自动化测试成功要素
自动化测试成功要素
陈能技
近几年来,随着企业对软件质量的要求越来越高,对软件交付速度要求越来越快,很多企业开始重视软件测试,开始引入自动化测试,但是很多以失败告终,花重金购买了自动化测试工具,但是用不了多久就束之高阁。
如何才能成功地应用自动化测试,自动化测试成功的要素有哪些呢?
自动化测试不是一个人的事情,是一个团队的事情
我看到很多企业的测试人员在做自动化测试的时候都是一两个人在研究,或者是单兵作战,自己琢磨,甚至是一个人身兼多职,偶尔客串一下自动化测试,有很多人是半路出家,领导头脑一发热,就指派了一个人去做自动化测试,而这个人可能根本不知道如何开展自动化测试。可想而知,这样的自动化测试怎能顺利开展?!
自动化测试对人有一定的要求,并不是随便抓一个人就可以去做自动化测试的。自动化测试工程师需要有一个完整的自动化测试知识体系。包括:
1、自动化在软件测试生命周期( STLC )中的角色。例如软件测试自动化与软件测试之间的区别、测试工具选购与整合、自动化的益处与误解、自动化的 ROI 计算等方面的知识。
2、测试自动化的类型和接口类型。例如自动化除了功能测试自动化外,还可以包括单元测试自动化、回归测试自动化、性能测试自动化等。需要知道,除了GUI类型的自动化测试外,还有命令行接口、应用程序编程接口(API)的自动化测试。
3、自动化测试工具。了解各种类型的自动化测试工具,知道如何进行测试工具选型。
4、测试自动化框架。包括自动化的范围、角色和职责的定义,了解框架的发展过程。
5、自动化框架设计。掌握自动化测试框架设计思想和开发流程。
6、自动化测试脚本思想。包括测试用例的选择、自动化测试的设计和开发、自动化测试的执行、分析和报告。
7、自动化测试脚本质量优化。考虑自动化测试脚本的可维护性、可移植性、灵活性、健壮性、可扩展性、可靠性、可用性、效率等方面的问题。
8、编程思想。掌握包括变量、控制流、模块化、面向对象等方面的编程思想。
9、自动化对象。包括识别应用程序对象、对象映射、对象模型、动态的对象行为等方面的知识。
10、调试技巧。了解常见的测试脚本编程错误类型,懂得相关的调试技巧的使用。
11、错误处理。了解错误处理的常用手段,掌握错误处理脚本的开发过程(诊断错误->定义错误捕获机制->建立出错日志->创建错误处理函数)。
12、自动化测试报告。一般包括高层(测试集/测试脚本)报告和底层(验证点)报告。
除了对自动化测试工程师的素质有要求外,自动化测试还需要开发团队的支持和配合,这主要体现在测试接口的提供和可测试性的问题上。例如,GUI测试通常会碰到的问题是界面控件的识别问题,而这些问题往往是由于开发团队采用了一些第三方控件或自定义控件导致的,如果在早期设计能考虑自动化测试的问题,则很多控件识别的问题都可以比较好地避免。
选择合适的项目开展自动化测试
有不少的企业是由于测试人员认为手工测试太繁琐了,耗时太长了,反复进行、效率低,因此想彻底摆脱这种困境,因此想到用自动化测试
不是所有的项目都适合开展自动化测试。一般而言,短期的,2、3个月就结束的项目,没有后期维护、升级、版本更新的项目是不适合投入自动化测试的,因为这样的成本很高,开发出来的自动化测试脚本没跑几遍项目就结束了,这些脚本也就无用武之地了,倒不如都是用手工的测试进行。
另外,不宜在一个进度非常紧迫的项目中开展自动化测试。有些项目经理期待在一个进度严重拖延的项目中引入自动化测试来解决测试的效率问题,结果适得其反。
如果测试的软件系统在测试接口上很难适配自动化测试工具,例如很多GUI控件是难以被测试工具识别的,或者测试的软件大部分是报表、图像等依赖人为判断的内容,也不适合采用自动化测试。
选择合适的自动化测试工具
合适的工具能让自动化测试工程师在进行自动化测试脚本设计时得心应手,在选择自动化测试工具时需要考虑:
q 对不同类型的应用程序和平台的支持。
q 对不同类型的操作系统的支持。
q 对不同的测试类型的支持。
q 脚本语言、编辑器和调试器。
q 录制测试脚本的能力。
q 应对变化的能力。
q 对控件和对象的支持。
q 支持不同渠道的测试数据。
q 运行测试与测试对象的同步。
q 检查点。
q 测试结果记录和导出报告。
q 扩展性。
q 测试多语言应用程序的能力。
q 对团队协作和源代码管理的支持。
q 对命令行和OLE自动化的支持。
q 与团队协作系统以及软件构建系统的整合。
q 技术支持。
q 价格。
q 试用版。
但是,我看到很多企业在选择自动化测试工具的时候存在很多误区。例如片面最求大而全的工具,最好的工具未必是最贵的、最多人用的工具,而是最适合自己项目实际情况的工具。比如说某些工具虽然不是主流,但是对项目中软件所采用的开发语言和界面控件的支持却是最好的。
最后要记住,“A fool with a tool is still a fool”,除了给测试人员配备合适的自动化测试工具外,还需要提供适当的工具使用培训和自动化测试方法的指导。
软件测试成熟度对于成功实现自动化测试的影响
如果本身测试组织在手工测试就没做好,例如没有规范的测试流程,缺少测试设计、缺少测试计划和进度控制,版本发布没有得到有效管理。那么这样的企业要想获得自动化测试的成功几乎是不可能的。
Kerry Zallar 在《Are you ready for automation》中提到软件测试的成熟度对于成功实现自动化测试的影响:
我想大部分在尝试自动化测试而未获得成功的软件企业要首先看看这个图,看自己的软件测试组织处于怎样的成熟度,而不要盲目地上自动化测试。
书名:QTP自动化测试进阶
作者:陈能技 编著
ISBN 978-7-121-10870-9
出版日期:2010年6月
定价:59.00元
开本:16开
页码:512页
内 容 简 介
本书以循序渐进的方式讲解了自动化功能测试的基础知识,结合最新版本的QTP 10的使用,深入讲解了自动化脚本的开发技术,涉及目前流行的数据驱动测试方法、关键字驱动测试方法等方面的内容,并且详细讲解了如何使用QTP测试Windows控件、ActiveX控件、VB控件、Web控件、.NET控件等,以及碰到一些QTP不能识别的第三方控件、自定义控件时的解决办法。
对于希望了解和使用QTP的插件扩展技术的测试工程师,本书还详细讲解了QTP的.NET插件扩展技术、Web插件扩展技术的应用,以及Extensibility Accelerator的使用。另外,本书还介绍了QTP自动化对象模型(AOM)的使用方法,以及如何基于AOM构建QTP的测试调度执行框架。本书在讲解自动化测试脚本开发知识和QTP工具的使用过程中,通过详细的例子和案例进行分析,让读者可以通过例子练习和理解,动手尝试,非常适合独立学习和研究自动化测试技术的测试工程师参考使用。
本书面向使用QTP(Quick Test Professional)测试工具进行自动化功能测试的测试工程师,以及希望了解自动化功能测试的测试员、希望基于QTP开展自动化测试项目的测试团队。
同类书推荐:软件测试实践 QTP自动化测试实践 LoadRunner性能测试应用 软件测试精要 互联网单元测试及实践 手机软件测试最佳实践
本书购买地址:当当网 中国互动出版网
本书详细信息:http://www.broadview.com.cn/10870
更多图书信息:www.broadview.com.cn
想即时获取更多图书及活动资讯,赶快加入博文视点读者俱乐部 吧!