综合分析上述四个条件,企业可以决定是否推行自动化测试;但是为了减少实施风险,我们还要预测到其他潜在的风险,做好事先解决思路。
对企业推行自动化测试的风险分析
其一是资金风险。虽然你的公司具备实施自动化测试的条件,但如果企业效益不好,还是先扭亏为盈吧。一款正版的测试工具价格庞大,企业要首先考虑资金是否允许购买正版的测试工具软件,所以进行测试工具的成本估算,以及引入自动化测试后组织结构调整等方面的成本估算是很必要的。如果你的公司处在如同前面所言的自动化测试试验阶段,可以使用试用版测试工具。当然具有实力的公司可以按照自身的工作流程自主开发测试工具,本文不考虑这种情况。
其二是自动化测试对软件功能类型的切入点的风险。企业开发的产品业务和功能是否需要自动化测试,包括白盒自动化测试、功能自动化测试和性能自动化测试。比如一些公司开发单机版软件,只需要做功能测试,那便不必考虑第三种;有的公司开发简单界面之类的软件,例如搜索引擎,也可不必考虑第二种;而大多数国内公司开发的软件,由于各种原因,一般都不考虑第一种。也有可能公司开发的软件特殊性很强,市场上根本没有支持它的自动化测试工具,此时要另辟蹊径。这种评估相当重要,要根据自身的产品功能特征来综合评估。针对不同阶段采用自动化测试的种种优势,我引用一个表格供读者参考:
测试阶段 描 述备 注
单元测试/组件测试这个测试工作通常是开发人员的职责,很多不同的方法能够被使用,比如"测试先行",它是一个测试框架,开发人员在编写代码前编写不同的单元测试,当测试通过时,代码也被完成了。 通过使用正式的单元测试,不仅能够帮助开发人员产出更加稳定的代码,而且能够是软件的整体质量更加的好。
集成测试这里的测试工作集中在验证不同的组件之间的集成上。 这种类型的测试通常是被测试系统的更加复杂测试的基础,大量的边缘测试被合并以制造出不同的错误处理测试。
系统测试 这种测试是通过执行用户场景模拟真实用户使用系统,以证明系统具有被期望的功能。 这里不需要进行自动化的测试。安装测试、安全性测试通常是有手工完成的,因为系统的环境是恒定不变的。
其它两种非常重要的测试
回归测试 回归测试实际上是重复已经存在的测试,通常如果是手工完成的化,这种测试只在项目的结尾执行执行一到两次。 这里完全有潜力应用自动化的测试,你能够在每次构建完成后执行自动化的回归测试,以验证被测试系统的改变是否影响了系统的其他功能。
- 负载测试
- 压力测试
- 并发测试
-..... 如果没有自动化的测试工具,你将不能执行通过模拟用户的负载实现的高密集度的性能测试。
其三是软件自动化测试切入方式的风险。正如前面所言,一定要记住将自动化测试与手工测试结合起来使用,不合理的规划会造成工作事倍功半。首先,对于自动化测试率的目标是 10/90 (10% 的自动化测试和 90% 的手工测试)。当这些目标都实现了,可以将自动化测试的使用率提高。对于何种测试情况下引入自动化测试,何时依然采用手工测试,我们分开阐述。
一般这样的测试条件下使用自动化测试:
项目没有严格的时间压力
具有良好定义的测试策略和测试计划(知道要测试什么,知道什么时候测试)
对于自动化测试你拥有一个能够被识别的测试框架和候选者
能够确保多个测试运行的构建策略
多平台环境需要被测试
拥有运行测试的硬件
拥有关注在自动化过程上的资源
如下条件下是宜采用手工测试:
没有标准的测试过程
没有一个测试什么、什么时候测试的清晰的蓝图
在一个项目中,你是一个新人,并且还不是完全的理解方案的功能性和或者设计
你或者整个项目在时间的压力下
在团队中没有资源或者具有自动化测试技能的人
没有硬件
其四是企业软件的开发语言风险。当前业界流行的测试工具有几十种,相同功能的测试工具所支持的环境和语言各不相同,这里笔者总结了当前国际上流行的几个软件测试工具生产厂商及一些主要IDE产品,读者可根据参考网址去了解列举工具和更多工具的详细资料。
生产厂商 工具名称 测试功能简介
网址链接
Interactive
Corporation
winrunner 功能测试http://www.mercury.com/us/products/
Loadrunner 性能测试
QuickTest Pro功能测试
Astra LoadTest性能测试
testdirector 测试管理
IBM
Rational
Rational robot 功能测试和性能测试 http://www-900.ibm.com/cn/software/rational/
products/index.shtml
Rational xde tester 功能测试
Rational testmanager 测试管理
Rational purifyplus 白盒测试
compuware corporation QARun 功能测试 http://www.compuware.com/products/
QALoad 性能测试
QADirecto 测试管理
DevPartner Studio Professional Edition 白盒测试
Segue software SilkTest功能测试 http://www.segue.com/products/index.asp
SilkPerformer 性能测试
SilkCentral Test/Issue Manager 测试管理
Empirix e-Tester 功能测试 http://www.empirix.com/Empirix
/Web+Test+Monitoring/Testing+Solutions
Integrated+Web+Testing.html
e-Load 性能测试
e-Monitor 测试管理
parasoft Jtest Java白盒测试 http://www.parasoft.com/jsp/products.jsp?itemId=12