关于自动化测试的一些挑战,之前我根据自己的浅薄经验也总结了一些,这篇是转载的Randall的一篇文章。G_Win翻译的。其中很多观点跟我们之前经历的是一致的。不过本文更侧重于从测试工具的角度来阐述自动化测试面临的问题和挑战。废话少说,现在开始。
十大挑战
1-购买了错误的工具
2-不适合的测试团队
3-缺少管理层的支持
4-测试类型覆盖不全面
5-不适合的工具培训
6-对测试工具认同度不够
7-对被测目标缺乏基本的认识和理 解
8-脚本维护和配置管理上的问题
9-测试工具的兼容性及协作能力不 足
10-测试工具缺乏实用性
接下来分别阐述10大挑战及其应对办法
挑战10:测试工具缺乏实效 性
如果问题在于担心投资收益
-评估一下目前缺陷所带来的成本, 特别是重复执行测试的成本,通过 搜集这些信息来帮助建立一套通过 使用工具完成更快速更可靠的测试 方案
-给除测试人员以为的其他小组展示 一下自动化测试工具的价值,例如 开发人员使用这些工具的价值
如果问题在于想要获得更实用的测 试技术
-通过网络与其他测试人员进行交流 ,可以到更多的关于那些知名度不 太高的测试工具的一些信息
www.qaforums.net
www.softwaredioxide.com
www.stickyminds.com
-尝试找一些能在不同平台上运行的 工具
这或许需要基于PC的工具而不是基于主机的工具
-研究一下使用低成本的工具开发测 试工具的可能性
www.riceconsulting.com/cheaptools.htm
挑战9:测试工具的兼容性 及协作能力不足
解决办法:
选择跨平台能力尽可能强的测试工 具
考虑编写shell脚本和bridging脚 本,或是公共脚本语言,例如Tcl
仔细地评估一下工具的跨平台测试 能力是否满足基本要求
使用Bridging脚本实现工具 的互通
挑战8:缺少配置管理
没有为自动化测试工具建立配置管 理(SCM)
-由于不同的人可能正在构建相似的 脚本,导致脚本重复
-因为所有人都以个人使用为目的来 构建脚本,而没有意识到脚本的重 用
-如果不是脚本的原始构建者来修改 此脚本,那么就很可能产生混乱
维护的问题:
-应用程序和软件需求频繁的变更
-所采用技术的变化
例如,从C/S(客户机/服务器)变成了Web
-测试工具和脚本的局限性
对自动化测试的配置管理来说哪些 是必需的
-一个可用的过程,它对于使用工具 的每个人来说都能理解和遵循
-一个工具,它能够管理权限、版本 、和自动化测试脚本的组织
-一个配置管理专员,他(她) 管理 配置管理的过程,并确保所有人都 遵循这个过程
如何对测试件进行维护
-构建标准的测试脚本和测试用例(译者加:类似于标准零件,但难点在于标准划分得恰当)
-保持脚本和测试用例的自由性和公 开性
-使用基于对象的测试工具,而不是 基于位置的
-有专人负责组织维护这项工作
如何进行配置管理
-认真考虑管理自动化测试用例和脚 本的人以及过程
-寻找那些能适应用户界面变化的测 试工具
-把自动化测试脚本作为应用程序配 置项的一部分来考虑
-评估测试工具以及其测试管理套件 时,把预期的自动化测试配置管理 专员包括进去
-调查一下目前公司正使用的配置管 理工具的使用情况
-跟踪自动化测试脚本的功能需求和 缺陷
挑战7:对缺少基本的测试流程或者不知道该如何测试
解决办法:
构建一套使用自动化测试工具时的 功能评估标准,这些标准可能包括 :
-测试的可重复性,通俗点说,方便回归测试
-运行应用程序的危险程度及风险,例如导弹发射程序
-操作的简易程度
-自动化的简易程度
-功能性文档的级别(例如,需求文档)
检查已有的测试用例和脚本,看哪 些最适合被转化为自动化测试用
检查目前的测试过程确认哪个部分 适合调整为使用自动化测试工具
把要使用工具帮助设计自动化测试 过程的人也包括进来
给人们培训基本的如何制定测试计 划的技术
挑战6:对测试工具认同度 不够
主要是以下这些因素造成的:
-使用工具的难度比较高
-没有足够的时间来学习工具的使用 以及无法用工具完成他们平时的工 作
-缺少关于工具的培训
-缺乏管理层对使用工具的支持
-缺乏公司内部以及工具厂商的技术 支持
-工具比较落后
解决办法:
-千万不要丢掉工具有关的培训
虽然培训不能保证成功,但是没有它,你就有放弃使用工具的风险
-在公司或团队内部培养测试工具 专家
他的工作就是成为使用测试工具的高手
-管理层需要意识到工具的成功应用 对他们来说是非常重要的,并且工 具的使用是测试过程的一部分
挑战5:不适合的工具培训
问题有:
-忽略了工具厂商的培训
-由于选择了错误的主题,因此没有 获得正确的培训
-没有能力把培训应用到你的环境中 去
-试图通过自学来学习
- “没时间培训
解决办法:
-把至少让核心成员参加培训的费用 包括到对工具的提议中去
-让每个人参加他最适合的培训
-让厂商培训时在你的环境中进行, 并且应用一些你们自己应用程序
-让当地的有经验的工具高手和你的 团队一起呆3-4周
挑战4:测试类型覆盖不全 面
解决办法:
-根据对影响软件交付严重程度对测试类型划分优先级
-理解工具以及它们的侧重点
你为了获得更高级别的测试覆盖率,可能需要使用多个测试工具的组合
-通过提醒人们100%的测试覆盖是不可能的来达到他们的期望值
然而一旦80%的测试被自动化了,你就有时间来手工处理余下的部分了
挑战3:缺少管理层的支持
解决办法:
-让管理层知道构建一个人、流程 和正确工具的坚实基础是要花费 时间和认真计划的
-阐述挑战越大获利越大的道理
-让管理层意识到他们的态度很大程 度上影响人们如何接受自动化测试 工具
-让管理层了解工具的使用程度以及 问题有哪些
挑战2:测试团队的人员配 置有问题
解决办法:
-测试团队中要有人专门编写测试脚 本
乐于编写代码
能够将手工测试转化成自动化脚本
-起初先学习基本的脚本概念,以后 再逐步增加复杂度
典型的手工测试团队
一个可应用的自动化测试团 队
挑战1:购买了错误的工具
解决办法:
-在购买前定义好工具需求,包括技 术、过程、应用、人员的技能以及 团队规模
-在定义工具需求和评价标准时把那 些使用工具的潜在用户包括进去
-建立一个评估记分卡将测试工具的 性能和一套通用标准进行对比
-执行一次概念验证来尝试否定 一个评估结果
结尾
还有比上述更多的挑战
如果那些基本的问题引起我们的注 意并得到控制,那么成功的自动化 测试是可能的
成功依赖于不同的因素,这需要在 一个公司当中的不同小组间不断的 协调
自动化软件测试确实是一种不同的 测试方法并且需要调整目前的测试 方法以及组织结构
自动化测试的回报会远远超过它的 成本
原作者的联系方式:
Randall W. Ric
Rice Consulting Solutions, LLC
Web site: www.riceconsulting.com
e-mail: rrice@riceconsulting.com