2、选型分析

  实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:

  1)软件需求变动不频繁

  测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么

  自动化测试便是失败的。

  项目中的某些模块相对稳定,而某些模块需求变动性很大,此时可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。

  2)项目周期足够长

  由于自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本身是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么实施自动化测试变成空谈。

  基于上述条件,我们在实际应用中多选取在项目规模较大的回归测试环节,或者增量式开发、持续集成的项目中采用自动化测试。

  3、测试框架评估

  自动化测试框架从初简单的脚本录制/回放发展到结构化脚本、数据驱动?(data·driven)脚本,再发展到关键字驱动(keyword.driven)脚本,以及相继出现的各种自动化测试框架,逐渐形成了良好的脚本开发环境或平台,使得自动化测试脚本的开发更具开放性、可视性和层次性,测试人员开发和维护脚本都变得更轻松、容易,从而在整体上进一步提高自动化测试的效率和应用范围。

  现有可提供自动化测试解决方案的产品很多,但是其应用结果往往不竞如人意,主要存在:定位控件不方便;验证数据不方便;代码维护不方便等。对于经常涉及手工任务操作的Web应用程序测试,为了尽可能地消除人为因素,节约手工操作的人员成本和时间,实现跨平台的Web测试框架,我们发现了Selenium这个开源的软件自动化测试框架。

  a)自动化框架的选择

  测试框架的选择是成功实施测试自动化的基础,必须考虑各种因素以使测试自动化更加有效地被使用。Selenium是一种Web应用的自动测试工具,通过模拟用户对Web页面的各种操作,可以精确重现软件测试人员编写的Test Cases步骤。相对于一般的脚本录制自动化框架,其优势在于:

  (1)Selenium测试直接在浏览器中运行,像真实用户所做的一样。Selenium测试可以在Windows、Linux和MacintoshAnd上的Internet Explorer、Mozilla和Firefox中运行。其他测试工具都不能覆盖如此多的平台。

  (2)Selenium提供了组件化的测试用例开发方法,建立了灵活的表达方式,很大程度了提高了运行脚本的复用率,节省了脚步开发时间。

  (3)通过Selenium开发的自动测试框架,对组件进行了有效封装,大大降低了维护工作量。不会产生传统自动化测试工具录制回放方法中出现的随程序变更,需要重复录制脚本的问题。

  (4)Selenium以业务为驱动,可以通过测试数据流的配置,快速、灵活地实现不同的业务流分支的回归测试。

  (5)Selenium的测试用例、测试结果数据统一在配置库中管理,实现了测试工具无关性。可以很好的进行移植,并为用户提供了一套完整的测试资产库。

  但是Selenium是轻量的测试框架,脚本所处理的测试用例构成简单,其实质是通过HTTP协议,发送请求(request)来完成测试用例,所以很困难处理业务逻辑关系强的测试用例。