自动化测试部署之决胜于开始
作者:网络转载 发布时间:[ 2013/12/20 11:20:26 ] 推荐标签:
自动化测试优与劣
为何要开展自动化测试?手工测试与自动化测试相比孰优孰劣呢?本节针对该问题展开论述与讲解。
测试工作中,往往需要面对很多问题。经常可以听到测试工程师的抱怨,其抱怨内容大体如下:
v 重复、频繁的工作太多;
v 测试工作任务重,测试周期短,工作压力大;
v 创新性的工作太少,无法体现自己的能力与自己的人生价值;
v 测试结果有时需要精确到秒,手工测试来做太难了。
那如何将测试工程师从繁杂的测试工作中解脱出来?如何体现测试工程师的价值,发挥测试工程师的特长?又如何将测试结果精确到秒呢?
上述问题均可以通过自动化测试来解决,一方面提高了测试的工作效率,另一方面可以通过自动化测试体现测试工程师的能力,改变众人对测试工作的观点。
1.1 自动化测试定义
既然自动化测试可以弥补手工测试的一些不足,并能体现测试工程师的价值,那何为自动化测试?它又具备哪些特性?
自动化测试即借助于测试工具、依照测试规范,从局部或全部代替人工进行测试以及提高测试效率的过程。其具备如下主要特征:
v 自动测试过程是通过模拟人工操作,完成对被测试系统的输入,并且对输出进行检验的过程。
v 自动测试是由软件代替人工操作,对被测试系统的GUI发出指令,模拟操作,完成自动测试过程。
相对于手工测试,自动化测试可概括为如下几点:
v 优化成本:降低劳动量,降低测试成本;
v 可靠:提高测试的全面性,提高测试精确度;
v 快速:加快测试速度;
v 规范化:提供规范化的测试流程;
v 可重用:提高测试的重用性;。
1.2自动化测试与手动测试的关系
自动化测试既然有如此大的优势,那手工测试是否可以退出测试舞台呢?首先,,让我们思考几个问题。通过对如下问题的讨论,来解答读者的疑问。
1. 手工测试与自动化测试相比谁发现的缺陷多?
测试的主要目的是通过发现缺陷、解决缺陷来提高软件质量。通常,测试的执行需要依赖测试用例。而测试工作中执行测试用例的通用方法往往是手工运行测试用例。假想一下,如果某个测试用例被自动化,则首先应对自动化后脚本的正确性进行测试。
据统计数据显示:手动测试可以发现80%以上的缺陷,而自动测试只能发现20%左右的缺陷。这恰恰反映出自动化测试源于手工测试,且只是替代人工的重复性劳动。
2. 测试质量孰高孰低?
自动化测试(工具)只能判断实际结果与期望结果之间的差异。因此,在自动化测试过程中,测试任务演变为验证实际结果与期望结果的一致性。而测试的目的是提高测试的质量。因此通过手动测试,测试质量更高一些。
3. 自动化测试与软件开发的关系?
自动化测试比手动测试更“脆弱”。软件开发过程中,部分功能的改变,也有可能使自动化测试崩溃。而由于自动化测试比手工测试开销大,并且需要不断的维护,这也限制了自动化测试的开展。
4. 自动化测试工具是否存在局限性?
自动化测试工具毕竟是软件,工具只可按预订指令执行。而自动化测试工具和测试者都可以按指令执行一组测试,但人拥有思想,可以按不同的方式、不同的思维完成相同的任务。
例如:测试工程师运行测试用例(或测试场景),执行测试执行过程中,经常需检查实际输出是否正确。此时,即使软件实际输出与期望输出一致,软件也有可能存在缺陷,测试者可以判断,而测试工具则不可。测试者可以发挥其想象力和创造力改进测试用例(或测试场景),而测试工具只有呆板的执行。
通过以上四个问题的讨论,可以得出结论:手动测试不会退出历史舞台,其有存在的价值。同时,手动测试比测试工具的优越性还有很多,手动测试可以灵活的处理意外事件。例如,网络连接中断时,手动测试可以尽可能快地解决问题,然而这样的意外事件却可以让自动测试的执行终止。
以上,1.2和1.3小节分别阐述了自动化测试与手动测试存在的必要性,那么在测试工作中,何时引入自动化测试呢?自动化测试又有哪些优势呢?下面通过以下几节,逐一揭示。
1.3何时开展自动化测试
什么时候适合开展自动化测试呢?
测试工作中,被测软件(或系统)需要多个版本的迭代。根据公司(或项目)的不同,版本发布的时间也存在差异。
开展自动化测试之前,首先需依照测试用例,对被测功能模块展开手动测试。当手动测试执行通过后,使用自动化测试工具,将手动测试的操作过程录制下来,并将正确的结果进行保存(被称为期望结果)。由于自动化测试工具记录的为关键性功能模块,被测软件(系统)的下一版本发布后,该模块仍应进行测试。
在软件新版本的测试中,启动自动化测试工具,运行前面录制好的自动化测试脚本。对比实际运行后的结果与预期结果,如不一致,则确定为缺陷;如一致,则认为该功能模块在新的版本中测试通过。
到此,可以得出一条结论:自动化测试,适合在被测软件(或系统)版本相对稳定后开展。如软件版本相对不太稳定,则会造成使用自动化测试工具录制的脚本在新的版本中回放失败,这样既浪费人力,又浪费时间。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11