【自动化测试总结】优点、场景、流程、项目人员构成
一、自动化测试的概念
以程序测试程序,以代码代替思维,以脚本的运行代替手工测试,可以大大提高工作测试的效率。
二、自动化测试的优点
1.回归测试更为方便,可靠。自动化测试最主要的任务和特点,特别是在程序修改比较频繁的时,效果最为明显。由于回归测试的业务流程流程操作和测试用例是预先完全设计好的,预期结果也是完全在项目人员掌握之中的,将回归测试交给计算机自动运行,可以极大提高测试效率,缩短回归测试时间。但是,上述说的程序修改比较频繁指的是新功能不断加入,而老公能的逻辑是不变或者很少变化的,不是指整个程序全部或者大批量的改动。因为这样是违反自动化测试原理的。
2.可运行更多,更为繁琐的测试,且快速高效。自动化测试可以实现在短暂的时间运行更多的test case。我们知道,有很大一部分业务功能由于业务逻辑极其繁琐,使用手工测试往往耗费大量的时间,测试1次,2次,3次还可以,但是如果测试10次以上或者更多,耐心会达到极致。
3.可以执行对于手工测试来说相当困难或者根本做不到的测试。比如,对于大量用户的测试并发,不可能同时让足够多的测试人员同时进行测试,但是却可以通过对自动化测试模拟同时有许多用户并发点击某一功能,从而达到测试的目的。再比如,人工不可能24小时不眠不休进行测试,但是计算机则不同休息。当然,类似的例子还有很多,无法全部列举出来。
4.更好地利用资源,使资源的使用更有价值。将方所的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员 解脱出来,投入更多精力设计更好的测试用例。有些测试不适合于自动化测试,仅适合手工测试,将可自动化测试的测试自动化后,可以让测试人员在专注于手工测试部分,提高手工测试的效率。
5.自动化测试脚本完全更有信任度。
6.自动化测试脚本完全具有复用性。
7.多个环境下进行测试。我们知道,一个系统,往往会被要求能够支持各种不同的环境并稳定运行,但是这么多不同的环境,比如常用浏览器有IE6,IE7,IE8,FireFox等,系统有Windows 2003,Windows XP,Windows Vista,Windows 7等,甚至还有杀毒软件,如卡巴斯基,360,诺顿等,这么多环境的组合,如果每一种环境组合我们都需要花人力,物力去把功能测试一遍,会无形加重负担。
三、适合引入自动化测试的条件
1.项目周期长,系统版本不断。如果你目前躲在测试的项目或者系统是属于一个周期比较长的项目的时候,可以说,的确非常适合引入自动化测试,把大量的回归测试托付给测试自动化是一个比较明智的选择。还有一种根据是从系统的版本数得来的,曾经测试领域专家有过相关的研讨并最后得出结论,一般自动化测试耗费的时间是手工测试的6-10倍,所以,如果你所在的项目版本数在10个以上,纳闷,引入测试自动化也同样非常的睿智。
2.需求变更不频繁,当项目的需求非常稳定,不会进场出现变更的时候,此时也很适合引入测试自动化。
3.系统中的测试对象基本可以正常识别。
4.系统中不存在大批量第三方控件。有实际项目经验的人一定会发现,无论什么系统,B/S架构也好,C/S架构也好,多少存在一些第三方控件,但是如果这些第三方的控件数量不多的话,经过详细的计划与评估后,完全可以引入测试自动化,当然,如果第三方控件数量庞大或者刑事种类庞大的话,就会带来很多麻烦。
5.需要反复测试。
PS:多数对象无法识别以及脚本维护频繁与艰难,二者有其一,自动化测试注定失败。如果项目中存在大量无法识别的空间(这种情况基本是发生在系统中存在大量的第三方控件)或者项目中没有获得相应的对象识别插件,是没有办法写出自动化测试脚本的。当然,对象的识别不一定要靠插件,还有其他解决方法,比如SDK插件扩展,或者让开发人员提供相应的DDL来识别等。
自动化测试工具对系统具有有效性。如果项目时间并不紧迫,项目需求也较为稳定,项目周期也较长,那么可想尝试开发自动化测试脚本,必须具备一款匹配的自动化测试工具,那么可以是开源的也可以是商业化的,甚至是自主研发一款。此时,就需要确切的了解这款测试工具是否真的能够应付项目需求,假设你所在的公司购买了一款商业化的自动化测试工具,项目系统中全部是一些java控件,但是测试工具自带的插件中又不包含java控件的识别插件,那么此时就算拥有这款自动化测试工具,但是由于无法有效的识别到项目中的控件,所以,对于项目来说是毫无作用的。
四、自动化测试的一个流程
1.合理的自动化测试切入点。通常,项目只有在经历了完整的系统测试后才算具备了基本的引入测试自动化的条件。一般也就在这个时间段,项目经理与测试经理才会以此定位自动化测试开始筹划与准备的时间点。到目前为止,绝大部分的公司都以系统测试完成为标准来作为自动哈UC屙屎的切入点,因为在这之前的任何阶段中都不是非常适合做自动化测试。
2.测试自动化分析
(1)可行性分析
(2)抽样demo分析 demo已经是一个实体案例,所以完全可以通过透析demo来发现是否存在技术上的致命问题通常在demo完成之后,有经验的自动化测试工程师或者组长就能对这个项目的自动化测试工作有一个答题的把握了,关于demo的选取,一般直接选择猫眼测试用例写成测试脚本,检查脚本是否能够成功运行通过,已设计的测试点是否全部执行到即可。
(3)测试需求分析 我们需要分析项目中具体哪些测试需求(功能点)准备进行自动化测试,一条测试需要可以包含多条自动化测试用例,通过测试需求分析来判定项目中此时自动化要做到什么程度。举个例子,在自动化测试用例的设计上,大体是一正向,反向划分,我们知道自动化测试是不需要也没有必要做到100%覆盖率,所以在测试需求分析这个阶段,确定测试覆盖率以及自动化测试粒度,测试用例上筛选等都是重点工作。
PS:正向测试用例就是正常的业务操作流,几乎没有什么非正常的情况,反向及时一场的业务操作流。
3.测试计划的定制
4.自动化测试设计阶段
(1)自动化测试框架设计,开发与搭建 自动化测试框架对于整个自动化测试项目来说就相当于一个架构,这个架构越好,功能越强大和使用,呢就可以给今后整个自动化测试项目的工作过程带来更多的好处,自动化测试框架是能保证测试的分布执行,脚本模块化,数据驱动,日志分析,错误截图,报表回收,共享对象库,公共函数库,环境配置,同一设计模式,异常处理,场景回复等一个无人值守,针对每个肚里项目的测试框架。
(2)自动化测试用例设计三部曲
.筛选手工测试用例的过程 首先要根据测试需求分析阶段得出的分析结果筛选出所有要被测试自动化的手工测试用例,在全部筛选完毕后,再分成两部分,一部分是可以直接二次复用的手工测试用例,不要客气,直接拿来即可,另外一部分则要经理下一个过程,实际上,大多数还是需要经历改造的,毕竟自动化测试用例的设计方法和手工测试用例的设计方法有点出入,哪怕是冒烟测试用例多少也要修改。
.转换手工测试用例的过程
.新增和补充自动化测试用例的过程
5.测试脚本设计与开发
在自动化测试中,测试脚本大致可以划分为5种
(1)线性脚本:通过录制直接产生的线性执行的脚本
(2)结构化脚本,具有顺序,循环,分支等结构的脚本
(3)可共享脚本:可以被多个测试用例使用,被其他脚本调用的脚本
(4)数据驱动脚本:测试数据和业务流程控制分离的脚本,通过读入数据文件来驱动流程进行的脚本
(5)关键词驱动脚本:脚本,数据,业务分离,数据和关键字在不同的数据表中,通过关键字来驱动测试业务逻辑,关键字驱动脚本的特点是,她看起来更像描述一个测试用例在做什么,而不是如何做
6.自动化测试执行
所有的自动化测试脚本全部开发完毕后会进入合并联调阶段,脚本联调成功后方能进入这一阶段。
脚本联调是一个关键的时期,联调如果不通过是无法进行下一个环节的,毕竟都到了这个阶段了,已经花了很多工时了
(1)无人值守的测试
.环境搭建,部署与配置
.自动化测试用例和测试脚本互相绑定
.自动化测试用例执行顺序排列与组合
(2)异常处理和场景恢复
(3)一个自动化测试执行实例,举一个QC自动化测试框架(Quality Center 一款集测试解决方案,测试流程管理,缺陷管理的工具,其本身也是一个自动化测试框架的例子)我们将测试脚本上传到QC服务器与相应测试用例绑定,最后,可以生成一个测试集,测试集里可以导入之前设计的测试用例,如果导入的用例和脚本有过绑定,则脚本也随之自动加载到测试集中,只需要点击执行按钮即可如果在执行过程中发生意外秦光,只要预先设置了各种异常情况及处理应对方式,QC就会自动进行处理,并把测试场景恢复到预置的状态重新自动执行测试。等测试集中的测试用例全部运行完毕后,QC就会显示这些测试用例的运行结果并生成图标,然后自动将缺陷提交到服务器中,方便测试工程师了解自动化测试运行以及完成的情况乃至发现的缺陷情况。
7.提交自动化测试产物
8.测试脚本维护
五、自动化测试项目的人员构成
1.自动化测试组长:自动化测试团队的最高管理,拥有发言权
2.高级测试开发工程师:团队中技术最牛的角色,通常负责自动化测试框架的设计与搭建,负责自动化项目实施过程中各类技术难点的解决;负责公共数据的提炼和开发,如公共函数库等
3.自动化测试用例设计人员:由团队中对业务和手工测试情况最熟悉的人员担当,负责自动化测试用例的设计开发工作,及今后的测试用例维护工作;负责测试脚本的验收工作,监督测试脚本业务逻辑时候与设计好的自动化测试用例一致
4.脚本开发人员:负责自动测试脚本的设计与开发;负责脚本合并联调工作,负责后期的脚本维护工作
5.自动化项目库管理人员:类似文职人员,可以没有代码开发经验,负责整个子弟欧诺个话团队中日常工作中的文档变更记录的整理,公共对象库管理,代码版本管理与公共函数库管理等
自动化测试用例的范围往往是核心业务流程或者重复执行率较高的
自动化测试用例的选择一般以正向为主
不是所有的手工测试用例都可以使用自动化测试来实现的
手工测试用例可以不用回归原点,而自动化用例往往是必须的
自动化测试用例和手工测试用例不同,不需要每个步骤都写预期结果
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

相关文章:
【自动化测试总结】优点、场景、流程、项目人员构成
一、自动化测试的概念 以程序测试程序,以代码代替思维,以脚本的运行代替手工测试,可以大大提高工作测试的效率。 二、自动化测试的优点 1.回归测试更为方便,可靠。自动化测试最主要的任务和特点,特别是在程序修改比较…...
杨中科 ASP.NETCore Rest
什么是Rest RPC 1、Web API两种风格: 面向过程(RPC) 、面向REST (REST) 2、RPC:“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString请求报文体给服务器传递数据。状态码。比如/Persons/GetAll…...
RTU数据采集终端
在现代工业控制系统中,数据采集是一个至关重要的步骤。RTU(远程终端单元)作为一种常用的数据采集终端设备,不仅可以实现数据的采集和传输,还可以实现现场设备的远程监控和控制。 一、RTU数据采集终端的工作原理 RTU数据采集终端是一种将现场…...
双指针--- 数组元素的目标和
目录 数组元素的目标和思路:暴力做法思路:双指针做法: 代码: 原题链接 数组元素的目标和 给定两个升序排序的有序数组 A 和 B ,以及一个目标值 x 。 数组下标从 0 开始。 请你求出满足 A[i]B[j]x 的数对 (i,j) 。 数据保证有唯…...
你的网站或许不需要前端构建(二)
前一阵,有朋友问我,能否在不进行前端编译构建的情况下,用现代语法开发网站界面。 于是,就有了这篇文章中提到的方案。 写在前面 这篇文章,依旧不想讨论构建或不构建,哪一种方案对开发更友好,…...
flutter 使用adb 同时连接 多个模拟器
MUMU模拟器 MuMu模拟器官网_安卓12模拟器_网易手游模拟器 传统只需要 连接一个 默认命令是 默认端口是7555 adb connect 127.0.0.1:7555 但是需要同时连接调试多个模拟器的时候 就需要连接多个 这里可以使用自带的多开 多开后 使用 1 是对应多开的序号 这样就可以查看对…...
网络四元组
文章目录 网络四元组 今天我们来聊聊 网络四元组 网络四元组 四元组,简单理解就是在 TCP 协议中,去确定一个客户端连接的组成要素,它包括源 IP 地址、目标 IP 地址、源端口号、目标端口号。 正常情况下,我们对于网络通信的认识可…...
[实践总结] 限制正则表达式匹配次数/时间 防止DoS攻击
思路 1、优化正则表达式 2、正则表达式无法优化的话,可以考虑限制匹配次数,或者限制匹配时间 限制 匹配次数 public class CountedCharSequence implements CharSequence {private final CharSequence charSequence;private long count;public Counte…...
ffmpeg 5.0版本调试 ffmpeg 5.01 static版本
ffmpeg 5.0版本调试 写法:ffmpeg -rtsp_transport tcp -re -i rtsp://admin:BYTtest2019192.168.1.2:554/h264/ch1/main/av_stream -q 5 -f mpegts -fflags nobuffer -c:v mpeg1video -an -s 960x540 http://127.0.0.1:12345/demo本地写法 ffmpeg -timeout 5000000…...
应用在游戏机触摸屏中的触摸感应芯片
触屏游戏机的屏幕是由液晶屏和触控层组成的。触控层分为电容式触屏和电阻式触屏两种。电容式触屏是将悬空电极和屏幕玻璃上的电极组成静电场,当人体接近屏幕时,就会改变静电场分布,从而实现触摸的位置探测。而电阻式触屏则是利用玻璃上的两层电极之间通电形成一个电阻值,当手指…...
D-Link DES-108 交换机
D-Link DES-108 交换机 1. 百兆交换机 8 口References D-Link Corporation is a Taiwanese multinational networking equipment manufacturing corporation headquartered in Taipei, Taiwan. Taiwanese:adj. 台湾的 n. 台湾人 headquarter [hedkwɔ:tə]&#…...
VIT用于图像分类 学习笔记(附代码)
论文地址:https://arxiv.org/abs/2010.11929 代码地址:https://github.com/bubbliiiing/classification-pytorch 1.是什么? Vision Transformer(VIT)是一种基于Transformer架构的图像分类模型。它将图像分割成一系列…...
MongoDB Certified Associate Developer 认证考试心得
介绍 前段时间通过了 MongoDB Associate Developer 考试,也记下了一些心得,结果忘记发出来了,现在重新整理下。通过考试后证书是这样的: MongoDB 目前有两个认证证书 1. MongoDB Associate Developer 认证掌握使用MongoDB 来构建现代应用…...
基于Java车间工时管理系统(源码+部署文档)
博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…...
2024.1.5
今天真是狂学了一天的C,什么期末考试,滚tmd(就一门政治,不能影响我c的脚步),今天还是指针,主要是函数指针和函数指针数组,将简单的两位数计算器程序用此方式更加简单的实现了&#x…...
水库大坝安全监测设计与施工经验
随着我国的科技水平不断上升,带动了我国的水电建设向更高层次发展。目前,我国的水电站大坝已有上百座,并且大坝安全检测仪器质量与先进技术不断更新发展,如今水电站大坝数据信息采集与观测资料分析,能够有效提高水库大…...
媒体捕捉-拍照
引言 在项目开发中,从媒体库中选择图片或使用相机拍摄图片是一个极为普遍的需求。通常,我们使用UIImagePickerController来实现单张图片选择或启动相机拍照。整个拍照过程由UIImagePickerController内部实现,无需我们关心细节,只…...
Typora+PicGo+Gitee构建云存储图片
创建Gitee仓库 首先,打开工作台 - Gitee.com,自行注册一个账户 注册完后,新建一个仓库(记得仓库要开源) 然后创建完仓库后,鼠标移动到右上角头像位置,选择设置,并点击ÿ…...
【话题】ChatGPT等大语言模型为什么没有智能2
我们接着上一次的讨论,继续探索大模型的存在的问题。正巧CSDN最近在搞文章活动,我们来看看大模型“幻觉”。当然,本文可能有很多我自己的“幻觉”,欢迎批评指正。如果这么说的话,其实很容易得出一个小结论——大模型如…...
通过大量生物、地球、农业、气象、生态、环境科学领域中案例,一起探索如何优雅地使用大模型吧!
以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...
Xcode 16 集成 cocoapods 报错
基于 Xcode 16 新建工程项目,集成 cocoapods 执行 pod init 报错 ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchro…...
在Zenodo下载文件 用到googlecolab googledrive
方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!࿰…...
