关闭

做自动化测试要考虑的问题

发表于:2013-4-01 13:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:跑跑跑跑    来源:51Testing软件测试博客

  一、为什么很多公司都说要组建一个自动化测试团队,但极少能建立起来?

  ● 太过于相信自动化测试,且没有经过严格的自动化测试流程和前期分析设计就草率的进行脚本的开发,最终的结果一定是失败!

  ● 国内的公司很少有专属的自动化测试团队,往往都是信心十足最后确又虎头蛇尾!这其中也分两种情况:其一,缺乏真正可以做自动化测试的技术人员,每个成员都是在学习阶段,那还谈什么组建自动化测试团队?这最多也就叫兴趣小组?其二,的确有牛人在团队中,但是我们都知道,国内很少有公司会专门组建一个专职做自动化测试的团队,国内现在大多数情况是手动测试和自动化测试并用,那么,自动化测试的优先级肯定没有手工测试那么高,而且项目的任务又多,久而久之,自动化测试的愿景又被搁置于一旁了。

  ● 其实自动化测试已经做的不错了,但是领导看不到短期内有任何的回报,最后还是搁置了!这其中一方面牵扯到成本问题,另一方面则是领导对自动化测试从意识上就存在误区,没有真正认清什么才是自动化测试的真谛!

  二、全职QTP自动化测试工程师的工作内容是什么?问几个心中一直以来的疑问和困惑:

  (1)QTP是针对功能测试的,主要是自动化地去做测试,那么它强大的地方在哪儿呢?是它能够发现大量潜在的问题?(似乎没感觉到),还是说可以做到无限重复的执行?我们公司用QTP只是重复运行,用来采集性能数据,所以并不能体会到QTP这款产品“赢”在哪方面。

  (2)一个全职的QTP测试人员,每天的工作内容是什么呢?每天修改完善脚本、增加逻辑覆盖率?假如一个成熟的产品有成熟的脚本,那么测试人员只要点一下QTP运行按钮,然后直接拿测试结果?总体来说,还是感觉QTP要求很多,用起来很难且收获也不大。

  ● 首先回答第一个问题:从这位同行的提问中,推断他对QTP的认识一定停留在录制阶段,他把QTP当成了按键精灵。QTP的强大体现在它是解决自动化测试的最好的工具。其实提问的这位同行对自动化测试概念一定很模糊,他以为自动化测试只是简单地重复工作而没有考虑过验证这个问题。做测试,手工测试是怎么做的?其实说白了,也就是用我们的眼睛来验证,那么QTP就是那个能代替人类眼睛验证的测试工具。就像机器人一样,它不是智能的,它的智能是由人赋予的,所以它能做的操作都是人类事先已经知道的。QTP赢在它的一切,卖的真么贵、市场份儿那么高不是没有道理的,如果去使用其他测试工具一段时间后再回来使用QTP,相信一定会感叹,真实一个好工具啊!

  ● 接着回答第二个问题:一个全职的QTP人员他要做的事情和开发是一样的,都是一脉相承的。他也要需求、也要框架、也要开发、也要维护等等,修改完善脚本不是每天要做的事情,而是每一个版本发布后要做的事情。如果有一个成熟的产品,用QTP写出了成熟的脚本,那自动化测试的目的不是达到了吗?我们的目的就是每天“点”一下,快速拿到测试结果从而解放人力并可以投入到其他项目的测试中去,这也就是自动化测试的目的和意义。另外,QTP基本上只能发现已知的缺陷,目的是为了保证在新增功能加进来以后老功能不受影响;同时也能够回归以前有问题的功能在修复后是否又重现了。QTP几乎不可能发现新缺陷,那是手工测试阶段做的事情。当然,QTP也真的不是万能的,如它肯定不可能比开源的自动化测试工具更Open、扩展性强等,但是世界上不存在万能的事物!

  三、如何才能将QTP自动化测试从无到有地应用到项目中。怎么才能成功实施?有什么成功的要素吗?

  这个问题其实问得范围非常广,要回答好很不易,现在分享本人之前自动化测试的一些经验。首先需要了解自动化测试的一个总体实施流程,当接到一个项目之后,需要了解影响自动化测试实施的一些需求,如项目的周期长短、需求变更的频繁度、工具的选择以及工具对测试对象的识别能力等。这样做的目的就是为了确定项目是否适合做自动化测试,并不是每个项目都适合做自动化测试,失败的例子实在是太多了,很大一部分原因就是前期根本没有做充足的分析才会导致后期的被动局面,因此绝对不能忽视前期的这块内容。当这些都确定完成之后,还需要完成一个简单的Demo,用于验证工具对项目中对象的识别能力,这些内容可以归纳在前期的可行性分析方案中。接着需要进行自动化测试设计阶段,这个阶段包括需求分析、自动化用例转化为编写,这里需要注意。不是所有手工测试用例都可以转化为自动化测试用例,有些用例完全不适合做自动化测试,或者说不能用自动化测试完成,也或者需要投入很大的经历才能完成。所以需要在设计阶段就定义好这些可自动化的测试用例,并且还需要定义好公共的用例库以及用例的复杂度。当以上内容都定义完毕后,就可以开始下一步核心工作了,也就是自动化测试框架的开发,其大致包含:创建一些公共的组件、公共函数库、公共对象库、测试用例调度机制、外部配置、错误处理、报表生成等功能,当然,如果不是经验丰富的测试人员,在框架这块处理上是不可能一步到位的,需要后期来适应项目并不断进行改进。一段核心功能完成之后,可以说已经离成功又近了一大步了。最后的工作就是把用例全部完完整整地转化为测试脚本,如果框架搭建的比较牛,这一步实现其实是比较轻松的。当然,一些特殊的难题令当别论,如小部分对象怎么识别不了,那只能通过专家组共同讨论解决方案。

  1、自动化测试的优势

  (1)回归测试更方便、可靠

  (2)可运行更多、更繁琐的测试,且快速、高效

  (3)可执行一些对于手工测试来说相当困难或根本做不到的测试

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号