对于一个企业用户来说,什么样的软件测试自动化方案将是他们所需要的呢?
根据笔者和不同企业用户的沟通和交流,他们的软件测试自动化需求往往更多的集中在:自动化软件测试管理流程,以达到始终一致的软件质量和可量化的,可衡量的测试过程管理;通过实现测试自动化,以提高测试案例的复用和实现内部标准化,从而提高测试效率。
但同时,企业用户也将综合考虑测试自动化给当前的企业部门与部门间的合作以及现有的工作流程所带来的冲击,在软件测试自动化过程中也往往选择“进化”方式,而不是“革命”的方式。
企业在实现测试自动化过程中,一个有趣的现象是绝大多数的中国企业用户会选择在企业内部实现测试自动化,他们希望参与这个自动化的过程,并且更加在乎自己来建立并管理这个自动化流程;他们不仅限于通过软件测试自动化来满足上述需求,而且希望通过自动化过程的实施达到学习和提高团队测试技能的目的。
与此相比,不在少数的欧美企业用户他们可能会选择测试自动化平台托管服务,或者外包,离岸和派遣等多种方式相结合来实现,对他们来说,更加注重的是软件测试自动化所带来的结果,而非自动化过程本身。
软件测试自动化的方案选型
在我们已经了解到的大多数的企业用户对软件测试自动化的需求之后,再来看看他们又是如何对软件测试自动化的方案进行选型的:
选择尽可能少的自动化产品覆盖尽可能多的平台,以降低产品投资和团队的学习成本。
测试流程管理自动化通常被优先考虑,以满足为企业测试团队提供流程管理支持的需求。
在投资有限的情况下,性能测试自动化产品将优先于功能测试自动化被考虑。
在考虑产品性价比的同时,产品的支持服务和售后服务的完善性也备受关注。
趋向于选择主流产品,以便于通过行业间交流甚至网络等方式获得更为广泛的经验和支持。
对测试自动化方案的可扩展性提出要求,以满足企业不断发展的技术和业务需求。
由于不同客户在组织架构,员工素质以及流程管理水平等方面的不同,我们很难用一个实例来说明它的普遍适用性。
然而大多数客户完全独立于厂商,独立于技术的软件测试自动化的需求和希望通过软件测试自动化来达到的目的却往往是具有共性的,而这种共性所提供给其它企业客户的借鉴不是他们采用了那个平台,利用了何种技术,而是实现软件测试自动化的过程本身,以及在这个过程中所体现的具有普遍适应性的软件质量管理和软件测试的最佳实践。
测试自动化不是拍脑袋的事
既然我们谈到了软件质量管理和软件测试最佳实践,很显然这些最佳实践本身并不依附于软件测试自动化的,它更多是来自于比如ITIL(IT Infrastructure Library)框架,或来自于一些标准化,如CMM/CMMi中的关于SQA的KPA(Key Performance Area)。所以,我们说软件测试自动化是一个必然趋势,但对企业来说,它并不意味着是必须马上启动的项目,或者甚至所有企业都必须跟随的唯一道路。
首先,一个企业实施测试自动化,绝对不是拍脑袋说干就能干好的,它不仅涉及测试工作本身流程上、组织结构上的调整与改进,甚至也包括需求、设计、开发、维护及配置管理等其他方面的配合。
如果对这些必要的因素没有考虑周全,必然在实施过程中会处处碰壁,既定的实施方案也无法开展。
其次,尽管自动化测试可以降低人工测试的工作量,但并不能完全取代手工测试。100%的自动化测试只是一个理想目标,根据笔者的经验即便一些如SAP, Oracle ERP等测试库规划十分完善的套件,其测试自动化率也不会超过70%。所以一味追求测试自动化只会给企业带来运作成本的急剧上升。
再次,比较测试自动化需要企业有相对规模的投入,对企业运作来说,投入回报率将是决定是否实施软件测试自动化的最终指挥棒,笔者建议企业在决定实施软件测试自动化之前,必须要求量化的投资回报分析。
此外,软件测试自动化并不就是采购强大的自动化软件测试工具或自动化管理平台,毕竟软件质量的保证不是依靠产品或技术,而且更多的因素在与高素质的人员和合理有效的流程。