概述
有些开发团队十分推崇自动化测试,不可否认,自动化测试
在回归测试和检查冗余组件方面不失为安全有效的方法。但
是我们更应该坚信探索性的手动测试。虽然自动化测试变得
越来越复杂,但这始终需要人工驱动。实际上,自动化测试
通常是从最初的手工工作中转换过来的。这就是为什么开发
团队需要手动测试人员,不管是外包还是内部测试。
1.许多测试必须是手动的
用户体验可说是进行手动测试非常重要的原因。我们可
以通过用户得反馈得到宝贵的意见,即便是批评。因为在产
品推出的时候,用户不仅关注功能性,界面 UI 的第一印象
也非常重要,任何一个细节都逃不过用户的眼睛。虽然烟雾
测试可以实现自动化,人们还是倾向于人工测试。显然,由
测试人员在你的应用程序中搜索查看是否已经准备好进行核
心测试要比编写脚本来进行自动测试要快得多。况且早期阶
段的测试脚本不会持续太久,只有人工才能在针对多个区域
的产品中重复检查语言使用和其他关键本地化因素。
2.自动化测试授权人员
就像驾车有时需要急刹车一样,自动化测试同样不能缺
少人的监管。自动化测试软件节省了重复工作的时间,而手
工测试工作可以围绕创造性的实例展开。自动化测试最成功
的用途并不是试图使其行为像人类一样,而是通过创建新的
、独特的脚本来提高整体产品覆盖率。
3.Bug 总出现在你最不经意的地方
即使在测试特定的产品案例时,测试人员依然可以找到
他们没有预料到的 bug。这可不是一项小工程!在很多项目
中,大多数 bug 的发现其实是在测试人员寻找其他问题的时
候发现的。自动化测试无法发现没有编程的错误。
4.人工测试具有创造力和分析能力
虽然我们总在抱怨人类能力的不足,比如为什么我们
不能飞?但人工作业确实有自己的优点。测试人员带着自己
的技术和经验来制定策略,开始每一个新工程。在这个层面
上,人类的分析能力和速度是无法言喻的。
5.测试脚本的快速重写
在不断的反馈、快速反应的环境下使用测试脚本意味着
对产品流、UI 甚至特性的更改。几乎每次更改都要重新编
写一个 Sprint 自动化脚本。新的更改也会影响回归测试的脚
本,因此即使是典型的自动化测试也需要进行大量快速的更
新。这之中大量的工作需要开发团队考量应该在何处投放更
多资源。
6.自动化对于小型项目来说过于昂贵
自动化软件需要你花钱来支付,而且由于脚本编写和重
写以及设置和处理时间,你的维护和管理成本会更高。对于
长期项目或大型产品来说,高成本的付出是值得的。但对于
短平快的小项目来说,实施自动化测试是对时间和金钱的巨
大浪费。在计算自动化采购的潜在投资回报率时,还必须考
虑增加工时的因素。
7.自动测试更适合用于最后冲刺
我们希望技术能为我们做什么和我们实际能用它做什么
是有区别的。随着脚步不断的更新,很难保证自动化测试的
准确性。用原脚本测试修补后的程序是毫无意义的。成功的
自动化测试很早就开始了,而且从来没有在更新环节上落后
过。如果开发团队没有资源来实现这一目标,最好不要尝试
(除非团队正在进行长期投资以改进流程)。
8.人工测试人员更了解用户习惯
测试人员在漫长的工作过程中积累了丰富的经验,谁也
不想浪费这些经验和知识。因为人类测试人员通常像一个用
户,他们能提供的价值远远超过了产品当前性能的所及。测
试人员还可以在交付产品和反馈建议中引导产品朝新的方
向改进。
9.自动化无法捕捉人类没有意识到的问题
这个问题和我们谈到的第 3 点有些关联,bug 往往出现
在我们意想不到的地方。除此之外,在整个项目中还可能存
在其他我们没有意识到的风险。而探索性的测试可能会降低
这些风险的发生。无论测试团队依赖何种形式,做到运筹帷
幄永远是必要的。简单的一次性测试通过是不可能的,对于
那些细枝末节,手动测试的速度反而更快。
10.好的测试是可重复的,也是可变的
成功的测试有两个因素:重复和变化。自动化测试对于
持续检查过程非常有用,但这还不够。你还需要演进,还有
一些未知的变化。结合看来,这两个因素会使产品覆盖率提
高的机会更大。
11.移动设备的测试更为复杂
设备兼容性和交互不能用自动脚本覆盖。像在离开 wifi
环境和再次连接时,同时运行几个 app 时,设备的限制、接
收电话和消息都会潜在破坏应用程序的性能。更改滑动方向
和用手指轻敲的次数也会影响移动应用程序。如果你想让触
摸屏手机减少宕机的次数,进行手动测试是非常重要的。
12.手动测试的通过率更高
在测试中通过与否是需要考量的,我们要求自动测试软
件一边模拟使用,一边呈现所有的测试结果。但对于大多数
项目来说,可能发生更复杂的情况。Web 表单就是这方面
的一个主要例子。一个自动化脚本可以很容易地输入到一个
网页,但它不能实现两重检测,如果一个用户定位离开再返
回,测试的数据将被保存。至于提交的速度,在人工测试时
,测试员会注意到 Web 表单提交的速度是否过慢,特别是
当其他网站高速加载的时候。但速度并不能说明测试的通过
与否。
13.手动测试可以快速重现客户发现的错误
虽然你希望在部署之前捕捉到所有 bug,但你一定也希望
客户能把一些错误和问题直接反馈到你。手动测试人员可以
使用客户提交的信息提交错误报告,这对工程师是有帮助的
。通过手动测试,可以缩短从客户提出问题到修复之间的时
间。自动测试虽然很强大,但手动测试能提供的服务和优势
也是不可取代的。
最后
以上就是明理火为你收集整理的自动化能完全代替手动测试吗?的全部内容,希望文章能够帮你解决自动化能完全代替手动测试吗?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复