2.1 手工测试与自动化测试

手工测试和自动化测试是很多测试人员争相讨论的两种测试方法。有人对自动化测试趋之若鹜,也有人对自动化测试嗤之以鼻。在做出如何看待自动化测试的决定之前,首先要对自动化测试有一个清晰的概念。

2.1.1 手工测试的缺点

软件测试的一个显著特点是重复性,重复让人产生厌倦的心理,重复使工作量倍增,因此,人们想到用工具来解决重复的问题。

另外,手工测试还存在精确性的问题,尤其是面对大量的数据需要检查时,人工的比较和搜索不仅存在效率问题,而且容易出错,覆盖面偏低。

手工测试存在效率问题,这在软件产品的研发后期阶段尤其明显,因为随着产品的日趋完善,功能日渐增多,需要测试和检查的内容越来越多,很容易遗漏。加之产品发布日期日益临近,人工重复进行回归测试的难度加大,很难在短时间内完成大面积的测试覆盖。

2.1.2 什么时候使用自动化测试

手工测试有其不可替代的地方,因为人是具有很强智能判断能力的动物,而工具是相对机械、缺乏思维能力的东西。手工测试不可替代的地方至少包括以下几点:

· 测试用例的设计:测试人员的经验和对错误的猜测能力是工具不可替代的。

· 界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的。

· 正确性的检查:人们对是非的判断、逻辑推理能力是工具不具备的。

但是,自动化测试有很强的优势,它的优势是借助了计算机的计算能力,可以重复地、不知疲倦地运行,对于数据,能进行精确的、大批量的比较,而且不会出错。

因此,自动化测试适宜用在需要重复执行机械化的界面操作、计算、数值比较、搜索等方面。我们应该充分利用自动化测试工具的高效率来帮助测试人员完成一些基本的测试用例的执行,从而实现更加快速的回归测试,并且提高测试的覆盖率。

2.1.3 自动化测试——你准备好了吗

在进行项目的自动化测试之前,先要考虑以下5个方面,这5个方面是成功开展自动化测试需要考虑的方面,也可用于衡量目前的项目是否有足够的条件进行自动化测试:

(1)测试自动化类似于软件开发过程

录制/回放的脚本开发方式是不可能应付所有自动化测试的需求的,因此,需要测试人员掌握必要的开发知识和编码技巧。

(2)测试自动化是一个长期的过程

首先,不能期望自动化测试在短期内找到很多Bug,自动化测试只有在长期的多次运行后才能体现出它的价值。其次,不要认为只要购买了工具,录制一些脚本,然后,就可以安枕无忧地看着自动化测试实现想要的效果,需要考虑自动化测试脚本的维护成本,随着被测试应用程序功能的增加和修改,测试脚本的维护工作量会急剧地增加。

(3)确保测试自动化的资源,包括人员和技能

最好有专门的自动化测试工程师来保证测试自动化持续、顺利地进行下去,自动化测试工程师需要对项目的测试自动化负责,设计测试框架和脚本结构,解决各种测试脚本的开发问题,确保自动化测试得以计划、设计和有序地开发、维护。

(4)循序渐进地开展自动化测试

不要一开始就把自动化测试设想得很大,这往往是不可实现的,应该从小开始,先熟悉工具和自动化测试的基本技能,然后,整合资源开始实现一些基本的自动化测试用例,例如,冒烟测试类型的自动化测试脚本。先实现那些容易实现、且相对稳定的功能模块的自动化测试,然后再考虑逐步扩展和补充其他相对难实现,或者是比较不稳定的功能模块。

(5)确保测试过程的成熟度

如果软件企业的测试过程和项目管理过程的能力成熟度比较低,则实现自动化测试的成功率也比较低。在开展自动化测试之前,先考察一下软件企业各方面的管理能力,例如,测试是否独立进行?有无配置管理?进度控制能力如何?如果各方面的能力成熟度都比较差的话,则不要盲目引入测试自动化。