很多时候测试人员在开展自动化测试的时候都是不加思考的开始做,认为用工具录几个脚本再回放可以了,没有考虑有效性;而做了并不一定会有效果,如果自动化测试在整个测试工作中发挥不了作用,那么哪怕是只投入了很少的成本也是在浪费资源。所以在开展自动化测试之前必须认真思考虑一些问题,以确保它的有效性:


  1、被测系统是否适合做自动化测试;

  2、被测系统适合在哪些环节做自动化测试;

  3、使用何种测试工具、测试框架;

  4、开展自动化测试需要哪些资源,包括:人员、机器、时间;

  5、当前可用或是可以申请到的资源;

 

  6、如何在不影响日常测试工作的前提下,开展自动化测试工作;

 

  1、被测系统是否适合做自动化测试;

  很多人可能都回觉得这个问题有些多余,不需要考虑。可事实上作为一名测试主管必须考虑这个问题,应为自动化测试并非只是做与不做这么简单,而是需要考虑成本投入与效果产出。不管是做软件、做系统、还是做网站,终的目的基本上都是要盈利的,要盈利必须控制成本,提高利润。所以在测试工作中也必须考虑到成本投入。

  如何确定系统是否适合做自动化测试呢?个人认为主要考虑当前的被测项目是长期的还是短期?如果被测项目是在今后半年或者几年间要不断进行开发维护的,那么需要重复的进行大量的回归测试,这种情况下如果有自动化的回归测试体系可以节省成本投入;如果被测项目是短期的,比如说一个月,或几个月,同时如果开发自动化测试又不是很容易,也没有足够的时间去做这件事,那么完全没有必要作自动化测试,费尽力气做出的自动化测试脚本,可能只会用到一次或两次,这样很不值当。


  2、被测系统适合怎样的自动化测试;


  自动化测试覆盖的范围很广:单元测试、集成测试、接口测试,GUI测试等等都可以实现自动化执行;同时,不同的系统情况是不一样,有的适合或是可以做GUI的自动化测试,有的可能只适合做接口的自动化测试,所以需要针对不同的被测项目,考虑具体在哪一个环节作自动化测试。比如说针对搜索引擎,前端往往比较简单,只是一个文本框和提交按钮,大部分的逻辑处理都是在后端完成的,这种情况做自动化的接口测试可以达到事半功倍的效果;如果是被测系统有很多的页面操作,那么可以考虑GUI的自动化测试;以上这两种情况都不是的,如果测试资源足够,那么在各个环节都是可以开展自动化测试的。此外,还有一点需要考虑的是自动化测试的可行性,比如说对一个系统而言,做GUI测试是合适的,也是有效,但是有可能通过各种工具或者是脚本很难实现GUI的自动化测试,那么需要考虑变通,考虑是否可以将自动化测试调整到接口测试或是集成测试等环节。

  3、使用何种测试工具、测试框架;


  当前可以做自动化测试的工具不少,主流的付费的qtp,winrunner,silktest等,开源免费的Jemmy,watir,pywinauto等等。这么多的工具框架该如何选择,要看被测系统了,至少要考虑是C/S、还是B/S结构的,服务端和客户端都是用何种语言编写的,是什么数据库,服务器类型等等。

  4、开展自动化测试需要哪些资源,包括:人员、机器、时间;


  确定了使用何种测试工具、测试框架,需要确定需要的资源,如:需要几个自动化测试工程师、需要购买的测试工具、测试机(服务器、客户机)、以及开发自动化框架所需要的时间;

  5、当前可用或是可以申请到的资源;

 

  确定了需要哪些资源,要看当前可用的资源有哪些,如果资源不足应提前申请,如招聘测试人员、购买配置测试机。甚至需要测试人员提前学习新的技术;

 

  6、如何在不影响日常测试工作的前提下,开展自动化测试工作;

 

  在以上问题考虑清楚以后,需要制定自动化测试的计划进度了,这时候必须考虑到自动化测试的开展不能影响到日常的测试项目,毕竟不能因为开展自动化把日常测试耽搁,该做的还是要做的,这点恐怕是必须要考虑的,整个公司或者整个项目往往不能为你特意分配一段时间做这样让某些人不能一下子看到和利润有何相关的事,所以必须安排好计划进度,更多的需要整个测试部门挤时间去做。