使自动化测试不再老套——灵活自动化测试
 
2009-04-23 作者:丹尼·佛特 詹姆士·巴哈 来源:网络
 

如果你认为测试自动化仅仅是执行测试,那么你就是在错过一个很大的机会,或者说,你由于失去许多小的机会进而失去一个大的机会。可以这么考虑:不要再把自动化测试仅仅看成需要使用价格不菲的工具去执行自动化,而应该认识到,自动化测试其实是可以在几天内通过并不昂贵或者是手头已有的工具就可以完成的测试。丹尼佛特和詹姆士巴哈提出了一个比较快捷的方式自动化测试方法。

要使自动化测试变得灵活,你并不需要什么特殊的东西,只要通过Internet查找有帮助的工具即可。但是如果你的团队中存在一个工具分析师的角色,效果会更好。一个好的工具分析师应该知道如何规划一种高级语言并且很快的解决相应的问题, 例如Java,Perl,Python。还有一个好的工具分析师善于利用工具工作而且学习有帮助的并且是免费或则廉价的工具。当然一个优秀的测试工具分析师也应该知道关于测试的技术知识。

为实现灵活的自动化我们使用的方法是很直接的: 工具分析师面对测试仪人员的工作并且决定使用怎样的工具能帮助测试人员从事正在做的工作。工具分析师的意见可以在测试期限上帮助测试人员, 甚至提供一些私人的指导。

如果没有工具分析师,那么每个测试人员自己应该识别出自动化测试的机会。记住,测试人员对工具和编程知道的越多,对于他们找到有用的测试工具就越有效。

灵活自动化测试的例子

一个测试人员先前已经在二个逗点分开的数值 (CSV) 上做一个人工的不定时的文件查核而且发现没有错误。由于自了丹尼的协助,测试人员使用了一个工具比较二个 CSV 文件。工具发现了一列数据的错误。 在大约 1 小时的进一步的研究之后,他们找到另外的一个免费的工具,可以更好的完成发现非匹配数据的工作。

詹姆士帮助一个测试团队因为拍卖状态的整个报表而质疑一个拍卖系统。有一个工具使他们能够了自动地确定他们已经测试的情节和他们想要测试条件, 这样他们可以在运行测试案例的时候不会犯下错误。 这个团队在没有这个报表之前已经测试了长达二年之久, 然而这个工具从启动到交付只用了三小时。

丹尼用了一夜时间用 Perl WWW::机械化模块编写一个hack载入数万记录到一个网络的数据库前端。 隔天,他很快地认识到应用程序的性能问题在于一个大型数据库的运行。

我们两人已经意识到在何处安装测试工具,可以很好地帮助测试人员对于系统文件和注册表如何正确安装程序。

在所举这些例子中,我们用只有数个小时的工作便生产了真正有用的效果。 我们利用工具的帮助了测试人员改进他们的测试。 对我们而言, 这才是真正的测试自动化:工具支持测试。当你睡觉的时候,这方面的扩充远远的超过测试的快乐。为什么不做自动化测试设计? 我们已经做到了。为什么不使用自动化测试探测仪对特定类型的问题报警? 我们也已经做到了。这就是灵活的测试自动化,但是它不是老套的测试自动化。

如果过了四十小时还没有得到有价值的结果,证明你选择了错误的测试任务

不断的得出有价值的结果是敏捷自动化的关键之处。我们发现在一周内得到的结果和通过更长的时间得到的结果有量的差别。时间长的测试任务可以划分成几个小任务,在一个任务完得到结果后才可以进行下一个任务。

如果你的自动化测试进展不顺利,你是喜欢一周之内就知道这个情况还是宁愿几个月后才知道结果呢?你重新分配一下任务会如何呢?如果使用灵活的测试方法,通过不断的得到测试结果,测试人员会感到他的自动化测试效果很好,工具师就会转向其他需要协助的自动化测试的工程师。

对于工具分析师和测试人员 (特别他们是同一个人的话) ,把任务分解后,他们能够认可自己的项目,从而减少了许多管理的过失。对于超过一个星期的自动化测试任务,他们可能需要较高层的认同,这会使得自动化测试变得复杂并影响进度。

如果你预测有的任务将会花费超过四十小时,或者虽然会花费四十小时但实际不应该那么长时间,这时你就该停下来想一想,你是否真的把任务分解成足够小的部分了吗? 你的方法真的可行吗?

没有自动化测试教堂

如此多堪称经典的自动化测试案例似乎要存放到大教堂或象牙塔内。有一次, 詹姆士看到一个很好的自动化测试策略但背离了客户的需求,以至于开发了九个月后,连测试人员都对此一无所知。丹尼也看到过一个测试团队,曾经因为他们的想法不一致而集体反对一个自动化测试组。

那与以前老套的自动化测试案例的相对立面是什么呢? 日复一日的测试进程驱使着自动化工具的不断产生,就像集市里的货摊一样多;而测试自动化应该服务于当前具体的测试需求而不是以后的需求。当然,对于难度大的自动化测试,也需要有长期的自动化测试项目来建立基础实施。然而,我们的经验是,这样的项目会使人们在一些小的测试方案中产生较大的影响,失去判断力。

一个灵活的测试自动化的必须包括的要素是:广泛地去分析那些工具能够协助你执行测试任务。不论这是第一个自动化测试任务还是要改进现有的自动化策略,你都可以下载、编辑、或者购买工具, 而且在一个星期内完成。在你的组织里试着建立一个工具分析师的角色,而且不要让自动化教堂减慢你的工作进度。许多的潜在的工具可以帮助你。 现在就开始吧!


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织