手工测试与自动化测试,你都了解了吗

前言

  最近我在和小伙伴讨论的时候,发现有一部分同学对这个手工测试与自动化测试总是有一些疑问,甚至于有一点误解,所以我在这里做一个总结,也是对自己知识的一个阶段性总结,当然啦,要是能帮助到你,那更好啦。

  注:如有纰漏或不妥之处,欢迎留言。

手工测试

  理解:手工测试大致的理解一下,就是用手动的方式,在可视化界面上输入一些数据或者是按照测试步骤来“点点点”,看实际结果与预期结果是否相同。

  概念: 按照测试文档,通过手动来进行操作,观察实际结果与预期结果的区别,就叫手工测试。

优点

  • 自动化暂时无法完全取代手工测试
  • 手工测试实际测试中发现的 bug 比自动化测试中发现的多
  • 要求技术门槛相对低
  • 手工测试成本低,风险小

自动化测试

  概念:通过测试软件或测试平台,将测试逻辑以脚本或者是代码的方式呈现,通过代码来进行实际结果与预期结果的比对,这种测试方法叫做自动化测试。

  自动化测试有:测试自动化、性能测试自动化、安全测试自动化等。(一般情况下,我们说的自动化是指功能测试的自动化)

  自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。

优点

  • 具有一致性和可重复性
  • 效率高
  • 脚本可复用
  • 软件可靠性高
  • 可以完成高要求的测试(如性能测试)

自动化实施的步骤:

(1)完成功能测试,版本基本稳定

(2)根据项目特性,选择适合项目的自动化工具,并搭建环境

(3)提取手工测试的测试用例转换为自动化测试的用例

(4)通过工具、代码实现自动化的构造输入、自动检测输出结果是否符合预期

(5)生成自动测试报告

(6)持续改进、脚本优化

手工测试与自动化测试的区别

:现在说的自动化测试,都建立在系统功能比较稳定的情况下。(要是每个版本功能都有较大的差别,每次都重新编写自动化脚本,那要累趴哦)

测试效率

  适合回归测试。由于自动化测试的脚本可复用性,在开发进行某些改动,但有不对功能进行改变时,为了防止对其他功能产生影响,无疑是要进行回归测试的,要是全用手工测试,是在不划算。

功能性

  同等时间的情况下,自动化测试能覆盖更多的功能,还能完成一些手工测试无法完成的测试。如性能测试,压力测试,负载测试,并发测试等
  例如并发测试,不可能找多个人一起同时测试吧,也不太现实

可靠性

  在手工测试的时候,往往会出现测试人员在测试时候发现了缺陷,可是由于时间过得太长,或者缺陷报告中操作步骤描述不清楚,或者其他因素,在给开发人员定位问题的时候不能重现。在排除一些偶发性问题的情况下,采用自动化测试可以有效地防止此类问题的发生。

  自动化测试具有一致性和可重复性,所以自动化测试一旦发现问题,在排除测试代码、测试数据、对需求误解的错误外,其结果还是可以信任的,因为它里面没有人的主观意识的参与。

难道自动化测试真的没有劣势?

大部分的bug是手工测试找出来的

  在目前如果不采用基于AI的自动化测试下,有机构做过统计,估计80%的缺陷是由人工测试发现的,自动化测试发现的缺陷仅占20%。

技术要求

  自动化测试工程师要会使用自动化测试工具,并且需要掌握至少一门编程语言,且对应这门语言的测试架构框架、对数据库操作能力等有一定的要求。所以采用自动化测试技术对人的要求是非常高的。这也使进入软件测试的门槛变高了。

成本投入、风险

  手工测试的成本投入低,风险小。自动化测试既要培养人才,又要研发工具、平台,或者购买商用工具、平台。

情感

  手工测试是具有一定的个人情感,在实际测试中容易发散思维,能进行个人感官测试,更能贴近客户体验,这是自动化测试所不能完成的。

常见问题

有同学是不是感觉手工测试很 low,没有技术含量?

  有部分同学陷入一个误区,认为手工测试因为技术门槛低,所以排斥、抵触以至于嘲讽。这是错误的认知!

  要知道手工测试是自动化测试的一个认知部分,并且每一个自动化测试工程师,都至少接触过手工测试,手工测试不仅仅是测试,它还是我们了解产品的一个最直接的方式,它通过输入、输出来直观的体会到它的功能或者是作用。在了解功能的基础上去学习底层代码,或许会更加的轻松和明了。

  话说来到正题上来。所谓技术含量,这个本来就很难界定。从单纯的“技术”角度上来讲,手工测试确实是没什么“技术含量”的,脑力劳动加体力劳动,没看到技术的影子在里面。

  想必支持正方观点的人大多是做测试的人,因为自尊心或者其他的原因,会把技术含量定义成更广泛的面–能力。所以支持正方观点的人是在说手工测试也是需要能力的,因为对测试悟得越透,经验越多,测试也就会做得越好,取得成效越好,从这个角度上讲,测试是很需要能力的,这种能力我们也可以理解成“技术含量”,这样,手工测试要做好自然也是需要技术含量的。
  
  再来揣测一下支持反方观点的人可能的想法。除了上面提到的“技术含量”理解上的偏差可能导致反方意见之外,还有一种可能是反方认为手工测试好入门,所以很简单,所以哪儿来的“技术含量”。这其实是对于技术的误解……

自动化测试会不会取代手工测试?

  首先我明确我的立场:自动化取代手工是一种必然趋势。
  虽然种种目前的现象,让许多人以为自动化不能完全取代手工。但是这其实只是一个假象,只能说的一点是目前的自动化不够完善,不够智能。但是随着我们认知以及技术的进步,这种全自动化的测试方式会被更多人了解跟使用。
  
  又有人说了,自动化不是也要编脚本呢?
  
  是。但我们都明白,编写脚本,录制脚本这些操作都是属于自动化的范畴的,因为其目的是要为自动化的工作进行铺垫。
  
  这里讨论的是自动化测试能够代替手工测试,并不是说机器能够代替人脑。
  
  问题的中心说的是“终究会取代”,这是一定的。但取代的只会是人工执行测试用例这一部份,而对于设计方法部份很难取代。
  
  当你用编程取代人工执行测试用例后,编程者的地位其实就是取代了执行用例者的地位,这也是测试的编程的价值所在,但是真正的核心价值在与设计与方法,所以自动化终究会取代测试执行的!

写在最后

如果你有好的建议或意见,欢迎留言讨论。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值