qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

自动化测试成本与收益

  在测试领域,很多的测试从业人员都在讨论或者曾经讨论过自动化测试。支持者认为自动化能够提高测试效率,减少枯燥繁琐的用例执行。持反对意见人的当心自动化测试的引入成本太大,反而没有手工测试来的高效。更有人当心自动化测试无法保证软件的质量,其实能否保证软件的质量,不是由自动化测试决定,而是取决于你的用例的设计。对于新的事物,在没有任何实践的基础上不能轻易地下结论,因为每个人都有惯性的思维,有时候很难跳出固有的思维去考虑新的事物。
  自动化测试本身作为一种测试的手段不存在任何的问题。它的好与坏,本质是由其最终结果来决定的。如果自动化测试带来收益大于我们投入的成本,那么自动化测试就是成功的。我们要做的就是在自动化测试实施过程中去提高我们的收益,去降低我们的成本。
  何为自动化测试?自动化测试是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动的测试。目的是减轻手工测试的劳动量,腾出更多的时间和精力去测试重要模块,同时又保证已有覆盖自动化测试的模块的质量,从而达到提高软件质量的目的。自动化测试的目的在于发现原有模块引入的新缺陷,保证已有功能的质量。
  自动化测试开展的前提
  首先部门或者公司要从管理层次上支持你,其次要有专门的测试团队去建立适合自动化测试的测试流程、测试体系,排除上面的因数之外我总结了自动化测试一些前提条件。
  1.      长期性
  指的是被测产品(或功能)是否需要一个长期的维护,因为短期的项目是没有实现自动化测试的必要的,短期的项目很明显他的投入成本肯定大于其收益。
  2.      稳定性
  被测产品(或功能)是否有一个相对稳定的产品。如果功能和界面都处于不稳定阶段而且经常发生变化的,那脚本和用例的维护成本是非常高的,
  所以也是不具备实施自动化的前提条件。
  3.      合适测试工具
  (工欲善其事,必先利其器)
  假如被测产品(或功能)难以通过工具识别其控件的话
  假如使用脚本语言难懂难学,而且扩展性差。
  4.      人员
  你的产品组内是否具备合适人员去开展自动化,是否具备一定合适的人去做自动化脚本开发。自动化测试实施的好与坏,很大程度上取决于该测试工程师,因为要有效实施自动化测试,单一的测试工具的熟练是远远不够的,他需要其它一些辅助的测试手段,所以同时也就需要该测试工程师具备一定的方案解决能力,能够找到较优的方案来解决现实中碰到的问题。
  5.      用例
  自动化测试需要好的测试用例的辅助,这个应该是大家的共识,所以不展开来讲。所以这里希望我们的自动化测试工程师需要与用例设计者进行密切的合作。
  整体来说自动化测试能否有效开展,能否有效的实施,不是单一取决于某一个人或者某自动化测试工程师的能力,他是整个团队合作的结果。
  自动化测试成本
  这是领导们最关心的问题。因为他们都希望自动化测试带来的收益要远大于所投入的成本。不然怎么体现自动化测试价值?如果没有价值还不如直接手工测试来的干脆。
  那么自动化成本有哪些?
  1、调研成本
  2、脚本开发维护成本
  3、自动化用例设计与维护成本
  4、资源投入成本
 如何有效的降低自动化测试成本呢?
  一、     提高调研成本,减少人为因数成本
  调研成本省不了,而且要加大投入,如果投入成本不大,选择的工具和框架都不适合自动化的开展,那么自动化测试肯定以失败告终。一旦给自动化测试选好了型,后期的转化成本非常的高,所以一开始就要选择合适的工具和框架。
  当然为了尽量减少调研成本,需要选择合适人,需要整个团队的配合。
  二、     选择好的测试工具
  选择好的测试工具,首先要看其所使用的语言是否容易普及,是否功能强大,在自动化测试工具当中,我认为最重要的是GUI对象的识别能力,第三方接口的处理能力。
  三、     构建合适的测试框架
  有了好的测试工具之后,我们需要一个合适的测试框架,测试框架应该是一个企业级的应用,而不是单一的产品和功能。它至少可以减少重复代码编写,包含常用的操作,简单的配置或自动配置,运行结果自动收集,运行结果简洁且容易分析。
  四、     选择合适的人,减少研究,实施投入成本
  这里我主要讲是选择合适的人,做正确的事上。那么什么样的人适合做自动化测试呢,首先的一点肯定要有一定的代码编写能力。其次我觉得需要一定软件工程的思想。没有好的思想,是很难组织起清晰架构的代码来的。
  合适人,做正确的事。这里就充分体现管理者能力了,尤其是测试框架上的研究,往往不是靠单一的人所能够做到,因为会受到知识体系,思维,能力等相关的束缚。所以我的意见是这些应该是交给一个组织,该组织内集合测试负责人,测试工程师,自动化测试工程师,来依靠团队的力量来打造合适的测试框架。当然框架的实现上应该交给自动化测试工程师。
  那么什么样的人才是合适的呢
  1、需要有一定的手工测试经验和自动化测试经验,能知道测试框架为谁而做,需要做什么?
  2、能够将复杂的设计简单化,能够充分理解软件工程的思想,将最简单的应用提供给测试工程师
  五、     减少用例的设计维护成本
  如果有好的框架支撑的话,那么用例的设计维护成本完全是可以减少的。
  六、     保持脚本整体架构清晰易懂,易维护
  七、     合适的加大资源投入成本
  我觉得资源投入成本是值得的,资源投入如果能够减少人力的投入的话。我想是所有管理者都愿意看到的。
  自动化测试收益
  在如何评价自动化测试收益方面,每个人的角度不通过,得出结果可能也不相同。我想从以下几个方面来看自动化收益:
  1、快速测试
  测试人员手工测试多个功能,测试执行的并行度总有个上限。而多个并行执行的自动化测试脚本可以更快速地验证版本,一次性地报告问题
  2、降低手工测试投入成本
  将功能测试人员从繁琐重复的测试中解脱出来,有更多的时间和精力去进行一些探索性的测试。
  3、提供了软件的质量
  自动化测试能够帮助我们减少生产环境中某种特定类型的缺陷。这些缺陷包括环境或者配置相关的缺陷、在主流程上本来正常但因为后期修改影响到的功能、以及容易被忽略的地方等
  4、提高了我们对软件质量的信心
  5、自动化测试可以唤起更高的工作热情
  这一方面来自于可以部分地将测试人员从大量重复的测试执行中解放出来,另一方面来自于新技术、新工具带来的新鲜感
  如何有效地提高自动化测试收益?
  要有效的开展自动化,一定程度上来说,成本是很难降低的,只有将收益最大化。增加收益的方式有很多种:
  一、提高自动化测试迭代次数,提高自动化的使用频率
  要提高自动化的使用频率,就需要将原有观念自动化测试收益往往来源于回归阶段进行更正,实际证明自动化同样可以在日常测试中发挥作用。自动化的使用用例的重复性使用频率越高,其价值也就越大,其收益也会越大。
  二、脚本复用,提高脚本对应功能点的用例覆盖率
  提高该脚本所覆盖功能点的用例覆盖,也就是我们不但要考虑减少了自动化脚本开发成本以及降低维护成本,同时也要考虑该脚本带来的收益已尽量去最大化。
  三、提高自动化用例的覆盖率,最大程度上减少手工重复的劳动
  尽可能的提高用例的覆盖率,并通过自动化来代替我们的手工测试,这样不但能在保证软件质量的同时减少手工重复的劳动,
  四、建立并维护好测试用例库,帮助我们节省资源并快速培养测试人员
  五、推广成功案例到其它产品

posted on 2014-08-28 09:33 顺其自然EVO 阅读(528) 评论(0)  编辑  收藏 所属分类: 测试学习专栏


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜