高效软件测试自动化-硬件软件化 软件服务化
翻一翻3年前写的东西,看下自己的技术和想法是否进步了:
我们在制定测试计划的时候,会考虑是否要运行自动化测试,如何运用等问题。要解决这些问题,我觉得应该首先搞清楚自动化测试的目的是什么,才能继续讨论自动化测试在整个测试阶段中的作用。
在质量年会上测试时代网站负责人贺炘讲到软件测试的目标是“高效的提高软件测试用例的覆盖度”,假设具备了这个目标是符合我们工作目标的前提,那么其中的高效二字正是自动化测试所需要做的。
我认为高效体现在我们工作中就是以下两点:一是提高速度高效软件测试自动化,无论做什么事情速度快了,自然效率就高;二是解放生产力,把需要重复做的和不需要思考的体力劳动交给机器来做高效软件测试自动化,我们测试人员就能够用更多的精力来做更重要的事情,比如思考新的测试用例来增加覆盖度等。
我最开始也曾认为自动化测试最终会取代手工测试,也许还有别的人有这样的想法,但应该不是的,软件的自动化测试只是辅助性的测试,所谓辅,就不能代替了主。谁敢保证,一个软件出来,用自动化脚本跑一跑就ok,就可以发布了?不可以。大家知道测试用例是无法穷尽的,那么自动化测试脚本本身就是有局限性的,更何况我们现在的脚本多是针对纯功能的,覆盖到的也只是单个功能。因此过分的夸大自动化测试是错误的。
那么也有的人认为自动化测试是没有用的,我们做过自动化的人可以问下自己,自动化测试发现了多少bug?在质量年会上,测试时间网站负责人贺炘讲了一个事情:“他一次去一个公司做培训,然后公司的测试负责人拿了一个用QTP做的功能的脚本,非常详细,整个软件的流程都能够运行下来,那个测试负责人非常自豪得给贺炘演示脚本的运行。后来贺炘问他这个脚本用过吗?那个负责人说没有。那他们为什么要做这个脚本呢?他说是测试人员对这个感兴趣,觉得这个比较有技术含量,而且做出来给老板演示,老板会看得很高兴。”这个故事中没有说为什么这个脚本没有运行起来,我们这里不深究。现在思考一下自动化测试是否有用。答案是肯定的。如果拿bug来衡量自动化测试成果的话,那是错误的。纯粹为了发现bug的话,还是手工测试来的更快些。可以说自动化脚本中覆盖的测试用例大多是已经手工执行过的用例,它起到的作用也就是回归测试和验证软件功能的作用,但是它所作的这些工作也是必不可少的。我们只有正确认识到自动化测试所充当的角色,才能够肯定它的作用。
因此,我认为自动化测试的目的就是,用快速运行的工具替代测试人员的一部分工作,并且随着工具不断改进和脚本的不断完善,使我们的测试工作越来越高效。
GBQ 熊志男
2008.12.28