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

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

什么是自动化测试?

自动化测试是指利用软件测试工具自动实现全部或部分测试,它是软件测试的一个重要组成 部分,能完成许多手工测试无法实现或难以实现的测试。能够正确、合理地实施自动测试,可以 快速、全面地对软件进行测试,从而提高软件质量,节省经费,缩短软件发布周期。

自动化测试一般分为UI 自动化测试和接口自动化测试。

UI自动化测试是指基于界面元素的自动化测试。需要先定位界面元素的路径,然后通过脚本 实现自动化。这种方法因为界面需求的变更频繁,脚本更新频繁,不利于后期的维护工作,造成 自动化工作的成本巨大,已经慢慢被各大公司所淘汰。

随即演变出的就是接口自动化了。接口自动化是指模拟程序接口层面的自动化,由于接口不 易变更维护成本小,所以它深受各大公司喜爱。接口自动化也是本书的重点。它包含两个部分, 功能性的接口自动化测试和并发接口自动化测试。

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

自动化测试和手工测试并没有高低贵贱之分,虽然划分在不同的阶层,但只是出于对测试人 员个人的价值评判而已。以下详细解析这两者的区别。

1.测试目的不同

虽然都是测试,但这2种测试的目的却是截然相反的。

  • 手工测试的目的在于通过“破坏”发现系统有bug。
  • 自动化测试的目的在于“验证”系统没有bug。

当测试系统处于前期不稳定的时候,做自动化测试将毫无意义,因为程序运行到一半就会因 为某个bug而停止的,而当这个bug未被修复之前所有的自动化测试都会卡在这里无法往下执行。 而当测试系统处于稳定的时候,通过手工测试重复着一样的操作也会变得烦琐和枯燥,所以这两 者在不同的测试阶段都有着不可替代的作用。

2.覆盖范围不同

除了目的的不同,覆盖范围也是不同的。

  • 手工测试可以尽可能地覆盖测试系统的各个角落。
  • 自动化测试只能覆盖测试系统的主要功能。

试想把所有的测试用例都弄成自动化是一件多么美好的事情,但代价实在太大了,投入的时 间和产出完全不成正比,不夸张地说如果要做到完全自动化测试,所需要的代码量会远远超过开 发编写程序的代码量。所以自动化测试只能挑一些重要和稳定的功能来做,而更多的一些细节的 测试还需要手工测试来完成。

3.智能判断不同

自动化和手工测试还有一个最大的区别是智能判断方面。 计算机程序对于人而言是绝对的服从和诚实的。

举个例子,用计算机程序去计算1+1,结果必然等于2(除非你的程序本身写的有bug, 这不是计算机程序的问题),而如果问一个人1+1等于几,可能会有一个答案“1+1等于我 们”,那这个结果是对还是错呢?如果交给程序判断必然是错的。因此智能判断是自动化测试的 瓶颈,一个操作出现多种结果可能都是对的,但又可能都是错的。

再举个电商的例子,比如有个特价产品只有一份,需要秒杀,有可能抢到,也有可能抢不到。 对于能抢到来说,只有“他”1个人抢到是对的,如果多个人都能抢到那就是错的。对于不能抢 到来说,已经有1个人抢到就是对的,如果没有一个人抢到的话就是错的,这个时候自动化测试 程序该如何判断结果的对错呢?这样的情况比比皆是,虽然有办法通过程序去预置各种条件让结 果唯一化,但需要花大量的时间和精力去优化自动化测试代码,并且还需要分多个自动化测试程 序完成,这个时候还不如人工介入测试进行判断来得方便。

这样看来其实自动化测试能做的还是非常有限的,而更多的时候还是需要手工测试,利用工具也好,逻辑判断也好,又或者让开发修改程序来配合测试也好,总之能达到测试的最终目的就好,从这个意义上来说手工测试也并非没有技术含量,而自动化测试也没有那么无所不能。

自动化测试的困境

自动化测试具有很大的优势,一劳永逸地用程序代替人力,人力干活8小时,而程序可以24小时不停止地干活。但是自动化测试还有一个很大的困境,即由于自动化测试很难持续维护,导致在大多数公司无法普及这种测试方式。

IT行业的竞争日益激烈,产品要保持自身的竞争力就需要不断高速迭代新版本、新功能。这就意味了原来写的自动化测试程序变得不可用了(其中的部分程序),而留给测试人员的时间又往往是很少的,于是只能手工测试保证按时上线,等上完线之后可能过几天又有新的功能要测试。留给测试的时间不够完成自动化测试程序的维护更新,周而复始,久而久之,原来的自动化测试程序已经和当前版本相去甚远了,最后自动化测试就不了了之了。我想这就是人们常说的“愿望是美好的,但现实总是残酷的”。

既然知道是困境,必然就是很难解决的,那有没有折中的办法来减少一定的维护成本,又可以达到一定的自动化测试的目的呢?回答这个问题之前先要看透自动化测试的核心本质,就是元素识别+元素操作+验证结果,大多数自动化测试工具都会提供元素识别和元素操作(鼠标点击、键盘输入、屏幕 touch等),只有在验证结果的时候需要写代码提取实际结果,然后和预期结果进行比较,最后得出测试通过或者不通过的结论。

其实对于写代码的部分来说都是通用的,不同的地方在于获取实际结果的方式变更或者预期结果的变更,工作量并不多。真正烦琐之处在于元素的识别,每个元素其实都由唯一标识来识别,这样才能保证不会操作错元素,好处在于如果元素不变,那唯一的标识也永远不会识别错,这是自动化测试可以实施的基础。但有利自然有弊,一旦元素变了,原来的标识就不可用了,那自动化测试就无法实施了。说到这里如果可以绕过元素识别这一步,将元素操作以接口的形式通过脚本完成,就可以抛弃重量级的自动化测试工具,而通过测试脚本直接实现接口自动化测试。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1136991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零实现:AUTOSAR架构图建模流程指南

一张图读懂汽车“大脑”:手把手教你构建 AUTOSAR 架构图你有没有想过,现代一辆智能汽车里藏着几十个“小电脑”(ECU),它们各司其职又协同工作——从发动机控制到自动刹车,从空调调节到车载大屏。这些系统如…

入门级详解:USB接口引脚定义与测量方法

从引脚到实战:彻底搞懂USB接口的底层逻辑与测量技巧你有没有遇到过这样的情况?手机连上电脑,明明插好了线,却死活不识别——既不能传文件,也不弹出“选择连接模式”的提示。可奇怪的是,充电倒是正常的。或者…

“S2B2C模式:库存去化与渠道激励的双重解决方案”

传统生意越来越难做?库存积压、渠道滞销、顾客流失——这不仅是实体店的困境,更是整个经销体系面临的共同挑战。有没有一种方式,能让库存流转起来、让渠道活跃起来、让顾客主动帮你卖货?这就是S2B2C正在解决的问题。一、传统经销困…

ST7789V引脚功能详解:一文说清所有信号线

一文吃透ST7789V引脚设计:从接线到驱动的硬核实战指南你有没有遇到过这种情况?买来一块1.3寸TFT彩屏,兴冲冲接上STM32或ESP32,结果屏幕要么全白、要么花屏、甚至完全没反应。调试半天发现——不是代码写错了,而是某个关…

MySQL【bug】- spatial key

【bug1】 MySQL建Spatial索引的前提条件是列定义NOT NULL,而当location列中有GEOMETRYCOLLECTION EMPTY 的值时,这里GEOMETRYCOLLECTION EMPTY变相绕过了这个限制,会导致报错。 插入空集合 GEOMETRYCOLLECTION EMPTY,空集合占一行…

社区小店如何借助S2B2C模式实现40%营业额增长

开门店的老板们,是不是经常面临这样的困境:明明店开在热闹地段,但生意就是上不去?库存积压越来越多,资金周转越来越慢?想拥抱线上,却不知道从何入手?如果你正在经历这些烦恼&#xf…

vTaskDelay底层数据结构分析:图解说明任务延时链表

揭秘 vTaskDelay:FreeRTOS 中任务延时链表的底层实现在嵌入式开发的世界里,vTaskDelay是每个用过 FreeRTOS 的人都写过的函数。它看起来如此简单——“让任务等一会儿”,但你有没有想过,这短短一行代码背后,藏着怎样的…

开发具有视觉理解能力的AI Agent

开发具有视觉理解能力的AI Agent 关键词:计算机视觉、深度学习、视觉理解、AI Agent、多模态学习、注意力机制、目标检测 摘要:本文深入探讨如何开发具有视觉理解能力的AI Agent,从基础概念到实际实现全方位解析。我们将首先介绍视觉理解的核心概念和技术背景,然后详细讲解…

UDS 19服务实战案例:从请求到响应的完整流程

UDS 19服务实战解析:从一次故障读取看汽车“自诊”的底层逻辑你有没有想过,当4S店技师插上诊断仪、几秒钟后屏幕上跳出一串红色故障码时,背后到底发生了什么?这背后的核心技术之一,就是UDS 19服务—— 汽车ECU的“病历…

【2025最新】基于SpringBoot+Vue的大学生就业招聘系统管理系统源码+MyBatis+MySQL

💡实话实说:CSDN上做毕设辅导的都是专业技术服务,大家都要生活,这个很正常。我和其他人不同的是,我有自己的项目库存,不需要找别人拿货再加价。我就是个在校研究生,兼职赚点饭钱贴补生活费&…

系统学习AUTOSAR NM模块唤醒机制的设计要点

深入理解AUTOSAR NM模块的唤醒机制:从原理到实战在现代汽车电子系统中,ECU数量持续增加,整车网络复杂度呈指数级上升。如何在保证通信可靠性的同时实现极致低功耗?这不仅是OEM关注的核心问题,也是嵌入式软件工程师必须…

L298N驱动直流电机多电源域供电方案解析

L298N驱动直流电机:多电源域供电为何是稳定控制的“隐形护盾”?你有没有遇到过这样的场景?智能小车刚一启动,单片机突然复位;机器人转向时电机“啪”地一声冒火花;遥控信号一远,控制就失灵……这…

前后端分离校园资料分享平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

💡实话实说:CSDN上做毕设辅导的都是专业技术服务,大家都要生活,这个很正常。我和其他人不同的是,我有自己的项目库存,不需要找别人拿货再加价。我就是个在校研究生,兼职赚点饭钱贴补生活费&…

掌握WinDbg Preview内存转储:新手教程快速上手指南

从崩溃中学习:手把手带你用 WinDbg Preview 玩转内存转储分析 你有没有遇到过这样的场景? 一台服务器突然蓝屏重启,日志里只留下一行冰冷的 BugCheck 0x9F ; 某个关键应用毫无征兆地崩溃,用户抱怨“点一下就没了”…

提示工程监控预警系统的可视化设计:这5个仪表盘让问题一目了然

提示工程监控预警系统的可视化设计:这5个仪表盘让问题一目了然 关键词 提示工程(Prompt Engineering)、监控预警(Monitoring & Alerting)、数据可视化(Data Visualization)、仪表盘设计(Dashboard Design)、异常检测(Anomaly Detection)、AI运维(AI Operatio…

1688价格API:批量报价功能,谈判优势!

在当今快节奏的商业环境中,获取准确、及时的商品价格信息至关重要。1688价格API作为阿里巴巴平台的核心接口之一,提供了强大的批量报价功能,帮助企业高效管理采购流程,并在谈判中获得显著优势。本文将深入解析该API的技术细节、功…

小天才USB驱动下载后无法连接?一文说清常见问题

小天才USB驱动装了却连不上?别急,这份硬核实战指南帮你彻底解决 你有没有遇到过这种情况: 辛辛苦苦从网上“小天才USB驱动下载”了一个安装包,兴冲冲地双击安装、插上线、打开电脑助手——结果设备管理器里还是个“未知设备”&a…

SpringBoot+Vue 古典舞在线交流平台管理平台源码【适合毕设/课设/学习】Java+MySQL

💡实话实说:CSDN上做毕设辅导的都是专业技术服务,大家都要生活,这个很正常。我和其他人不同的是,我有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。摘要 古典舞作为中国传统文化…

基于与或非门的全加器实现:完整指南

从零搭建全加器:用与或非门实现二进制加法的底层逻辑你有没有想过,计算机是如何做加法的?我们每天都在敲代码、调算法,但很少有人真正关心“112”在硬件层面是怎么完成的。其实,这一切的背后,都始于一个看似…

RS232和RS485的区别:差分与单端传输的硬件解析

RS232与RS485的真正区别:不只是接口,是两种通信哲学你有没有遇到过这样的场景?在工厂车间里,一台PLC通过一根长长的线连接上位机,结果数据时断时续、偶尔乱码;而隔壁同样距离的设备用另一套系统却稳如老狗—…