段念:企业自动化的策略、过程和误区 软件测试
2006年9月23日,由希赛网承办的2006中国软件工程大会暨系统分析员年会在湖南长沙召开。以下是与会专家段念“企业自动化的策略、过程和误区”主题演讲具体内容。
段念在分会场上做主题演讲(本图由新浪科技提供)
各位好,首先自我介绍一下。我是北京测试时代的段念,从1998年开始从事软件测试工作,目前主要从事软件测试咨询、培训和测试服务。很高兴有这个机会和大家就软件测试自动化方面的内容进行探讨。
本次报告分为四个部分:“梦想和现实——测试自动化理想与现状”、“冲出迷雾——真实的测试自动化及发展趋势”、“拨云见日——建立企业的测试自动化体系”和“过犹不及——谨防测试的过度自动化”。在这四个部分的介绍中,我们首先讨论自动化测试的现状,然后介绍测试自动化的过去和现在,在接下来的部分中,我们介绍在企业中建立测试自动化体系的具体方法,并用几个案例和大家分享这方面的经验,在最后一个部分中,我们讨论如何预防测试过度自动化。
在介绍自动化测试之前,我们先看看“什么是测试”。简单来说,测试的目标是两个:“发现系统中存在的问题”和“证明系统能够满足用户的需求”。就“发现系统中存在的问题”来说,其主要的工作是“寻找一个最小的测试集合,使其能够发现大多数问题”。
那么,如何评价一个已有的测试呢?一般来说,可以从四个方面对一个测试进行评价:“测试能否发现问题或是证明系统功能的正确性?”、“测试的覆盖如何(能够测试多个行为)?”、“测试执行、分析、调试的开销如何?”、“测试的维护开销如何?”。一个好的测试,就是能够发现问题或是证明系统功能正确性、能够良好覆盖需求、具有较少的测试执行、分析、调试,以及维护开销的测试。
接下来我们看看自动化测试。第一个问题是,为什么需要自动化测试?Boris Beizer在《 黑盒测试: 软件和系统功能测试技术》中有一段经典的描述:“我看到的最悲哀的景象之一就是一个人在键盘上手动操作一些可以自动运行的东西。这是悲哀的但也是有趣的。”为什么说是悲哀的?——对于从事这件重复的冗余的事情来工作者说,日复一日的重复工作是悲哀的;为什么又说是有趣的?——对旁观者来说,一个人用一些机械的手工工作来完成本可以用自动化测试工具完成工作,有时候也是一件有趣的事情。
那么,自动化测试到底能给我们带来什么呢?首先,自动化测试是建立在测试的基础上的,因此我们不能指望自动化测试能解决我们所有的问题——至少,一个设计不出来的测试自动化测试也对此无能为力。自动化测试能够带来的好处主要是两个方面:减少测试的维护开销,以及减少测试的执行、分析和调试开销。对于其他的两个评价测试的方面,自动化测试也不能比手工测试做得更好。
曾经有个测试工程师向我描述过他对于“自动化测试”的梦想:“一个宽大的控制台,控制台上有一个闪烁着红光的按钮,只要轻轻一按这个按钮,一阵喀嚓喀嚓声音之后,一张完整的报告就出现在面前”——很美好的梦想,可惜,这个梦想距离现实还很有些距离。