【自动化测试总结】优点、场景、流程、项目人员构成
一、自动化测试的概念
以程序测试程序,以代码代替思维,以脚本的运行代替手工测试,可以大大提高工作测试的效率。
二、自动化测试的优点
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大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...