第八章 软件测试自动化
一、学习目的与要求
通过本章的学习,了解自动化测试应考虑的各种因素及如何衡量自动化测试成本,掌握自动化测试和手工测试的优缺点,能正确选择软件测试策略,了解测试工
具的分类和使用目的,熟悉常用的测试工具,了解自动化测试的过程。
二、考核知识点与考核目标
(一)自动化测试概述(一般)
- 理解:自动化测试的时机
并非一律用自动化测试就好,要考虑经济性、有效性,适当的进行自动化测试。
- 理解:自动化测试成本
创建一次自动化的测试所花费的时间要比一次手工测试所花费的时间多得多。测试成本因产品
的架构以及自动化测试的方式不同而异。由高到低
- 通过图形用户界面来测试产品;
- 使用GUI捕捉/回放工具来跟踪测试与产品之间的交互,同时建立脚本;
- 测试的是一个编译器;
- 理解:自动化测试生命周期 (创建测试——运行测试——代码改变——运行测试…——测试中止)
- 理解:自动化测试价值:自动化测试的价值必须要超过所有因此而放弃的手工测试的价值。
(二)自动化测试的特点(次重点)
- 理解:自动化测试与手工测试的比较:很多方面都有很大的不同,在执行测试和产生测试报告方面尤为突出
- 理解:自动化测试的优缺点
优点
- 对程序的新版本运行己有的测试,即回归测试。
- 可以运行更多更频繁的测试。
- 可以进行一些手工测试难以完成或不可能完成的测试。
- 充分地利用资源。
- 测试具有一致性和可重复性。
- 测试具有复用性。
- 缩短软件发布的时间。
- 增强软件的可靠性。
缺点
- 自动化测试不能取代手工测试,测试主要还是要靠人工的。
- 新缺陷越多,自动化测试失败的几率就越大。
- 工具本身不具有想象力
- 技术问题、组织问题、脚本维护
- 测试工具与其他软件的互操作性
(三)自动化测试工具的选择和使用(重点)
- 应用:自动化测试工具的选择和使用
目的:
- 提高测试质量;
- 减少测试过程中重复的手工劳动,提高测试效率;
- 实现测试自动化,充分利用测试资源。
分类:白盒测试工具、黑盒测试工具和测试管理工具三大类。
选择:
- 功能
1)报表功能;
2)自动化测试工具的集成能力;
3)操作系统和开发工具的兼容性;- 价格
- 对自动化测试工具进行评估。
- 引入自动化测试工具的目的是使测试自动化
应用:很多引入测试软件的公司并没有能够让测试软件发挥应有的作用,其原因主要有三个方面
- 没有考虑公司的实际情况,盲目引入自动化测试工具
- 没有形成一个良好的使用自动化测试工具的环境
- 没有进行有效的自动化测试工具的培训
(四)常见的自动化测试工具(次重点)
- 应用:JUnit
介绍:单元级的白盒测试工具
- 快速的编写程序
- 使用简单
- 检验测试结果并立即提供反馈
- 可以组成有层次的测试系统架构
- 开发测试成本低
- 提升软件稳定性
- 免费的
- 应用:C++Test
是C++单元测试工具
特性:
- 即时测试类/函数。
- 支持极端编程机模式下的代码测试。
- 自动建立类/函数的测试驱动程序和桩调用。
- 自动建立和执行类/函数的测试用例。
- 提供快速加入和执行说明和功能性测试的框架。
- 执行自动回归测试。
- 执行部件测试(COM)。
优点
- 帮助用户立即验证类功能性和构造。
- 将用户从编写测试驱动程序、桩和测试用例的繁重工作中解放出来。
- 自动化极端编程和其他编程模式的单元测试过程。
- 能够实现和执行100%的代码覆盖性。
- 支持紧急和短线开发项目。
- 降低调试和维护时间。
- 改善应用的可靠性。
- 防止简单错误的扩大。
- 应用:LoadRunner
介绍:LoadRunner是一种预测系统行为和性能的负载测试工具。通过模拟成千上万名用户和实施实时性能监测来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。其主要功能如下:
- 轻松创建虚拟用户
- 创建真实的负载
- 定位性能问题
- 分析结果精确定位问题所在
三、习题
- 自动化测试工具中,______是最难自动化的。
A. 测试执行
B. 实际输出与预期输出的比较
C. 测试用例生成
D. 测试录制与回放 - 下列()不是软件自动化测试的优点。
A.速度快、效率高
B.准确度和精确度高
C.能提高测试的质量
D.能充分测试软件 - 使用软件测试工具的目的不包括______。
A. 帮助测试寻找问题
B. 协助问题的诊断
C. 节省测试时间
D. 提高设计质量 - 简述软件测试自动化的意义。
- 提高测试效率;
- 降低对软件新版本进行回归测试的开销;
- 完成手工测试不能或难以完成的测试;
- 具有一致性和可重复性;
- 更好地利用资源;
- 降低风险,增加软件信任度。
- 在运用软件自动化测试时,应注意哪些缺点和事项?
- 软件自动化测试可能降低测试的效率;
- 测试首次运行时,可能发现大量错误,但当进行过多次测试后,发现错误的机率会相对较小,除非对软件进行了修改或在不同的环境下运行;
- 如果缺乏测试经验,测试的组织差、文档少或不一致,则自动化测试的效果比较差;
- 技术问题。作为第三方的技术产品,如果不具备解决问题的能力和技术支持或者产品适应环境变化的能力不强,将使得软件自动化工具的作用大大降低。
- 请解释LoadRunner下最大并发用户数、业务操作响应时间、服务器资源监控指标的含义与用途。
- 最大并发用户数是指应用系统在当前环境下能承受的最大并发的用户数。用来考察某系统的最大负载;在LoadRunner“事务性能摘要”图中可以获得业务操作的响应时间最大值、最小值和平均值,重点用于确定在方案执行期间响应时间过长的事务;
- 服务器资源监控指标包括内存和处理器。
- 内存:Linux资源监控中指标内存页交换速率(Paging rate),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。实际测试中,当并发点击数出现突然剧增前后,内存的PR值则居高25不下。说明目前测试的系统中内存存在瓶颈!
- 处理器:Linux资源监控中指标CPU占用率持续超过80%(对该值的要求,根据具体应用和机器配置而要求不同,有资料表明95%),表明瓶颈是CPU。实际测试中,当并发点击数出现突然增加前后,CPU的占用率持续保持在86%以上!
- 简述Junit的优点
- 提升程序代码质量的同时,能加快编程速度;
- 使用简单而且免费、开发测试成本低;
- 能够检验测试结果并立即提供反馈;
- 可以组织成一个有层次的测试系列框架;
- 使用Java语言开发;
- 提升软件的稳定性。
- 软件自动化测试的优点是
A速度快
B精确度高
C质量高
D能充分测试软件
E效率高 - 简述应用自动化测试工具的目的。
- 提高测试质量
- 减少测试过程中重复的手工劳动,提高测试效率;
- 实现测试自动化,充分利用测试资源
- 简述自动化测试的优点
- 对程序的新版本运行回归测试
- 可以运行更多更频繁的测试
- 可以进行一些手工测试难以完成或不可能完成的测试;
- 充分地利用资源;
- 测试具有一致性和可重复性;
- 增强软件可靠性,缩短软件发布时间
相关文章:
第八章 软件测试自动化
一、学习目的与要求 通过本章的学习,了解自动化测试应考虑的各种因素及如何衡量自动化测试成本,掌握自动化测试和手工测试的优缺点,能正确选择软件测试策略,了解测试工 具的分类和使用目的,熟悉常用的测试工具…...
科大讯飞勾勒生成式AI输入法“模样”,开启下一代输入法革命
回顾国内第三方输入法赛道近十余年的发展,移动互联网的市场红利催生了科大讯飞、百度、搜狗等颇具规模和实力的头部厂商。与此同时,历经多年、多方角逐,第三方输入法市场进入存量阶段,升级技术、优化用户体验来挖掘存量࿰…...
OV-VG: A Benchmark for Open-Vocabulary Visual Grounding
OV-VG: A Benchmark for Open-Vocabulary Visual Grounding 一、Abstract 写在前面 又是一周周末,光调代码去了,都没时间看论文了,汗。 这是一篇关于开放词汇定位的文章,也是近两年的新坑,但是资源也是需要不少。 …...
win10 javaweb 项目8080端口被占用
文章目录 前言出现场景:解决思路: 前言 提示:生活该走向何处?也许你还不知道答案,但是你一定是答案的一部分。 出现场景: 解决思路: 找到运行的进程直接干掉 打开命令窗口(win r…...
C语言每日一题(22)合并两个有序数组
力扣网 88. 合并两个有序数组 题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意…...
C++学习day--24 推箱子游戏图像化开发
环境要求: 1、VS2015以上 2、成功安装并配置图形库 项目注意事项:代码复制好以后,把下面的字符集改为多字节字符集 第 1 节 项目需求 实现一款推箱子游戏,效果如下图所示 , 具体规则: 1. 箱子只能推动而不能拉动…...
YOLOv8中的After Fuse指的是什么?
Fuse是指模型的一些模块进行融合。常见的就是conv和bn层进行融合,在训练的时候模型是存在conv和bn的,但在推理的过程中,模型在初始化的时候会进行模型fuse,把其中的conv和bn进行融合,通过一些数学转换把bn层融合到conv里面,还有一些例如DBB,RepVGG等等模块支持融合的这些在fuse…...
R-FCN: Object Detection via Region-based Fully Convolutional Networks(2016.6)
文章目录 AbstractIntroduction当前最先进目标检测存在的问题针对上述问题,我们提出... Our approachOverviewBackbone architecturePosition-sensitive score maps & Position-sensitive RoI pooling Related WorkExperimentsConclusion 原文链接 源代码 Abstr…...
Linux服务器部署Spring Boot项目的一些shell命令脚本
1.启动jar包的命令(根据jar包数量创建,并指定相对应的jar包) nohup java -server -Xms64m -Xmx128m -jar 项目jar包的名称.jar --spring.profiles.activeprod > 记录jar包的日志.log 2>&1 &可以写在start.sh文件里(…...
Youtube DNN:Deep Neural Networks for YouTube Recommendations
1.介绍 本文主要解决的三个挑战: 大规模的推荐场景,能够支持分布式训练和提供有效率的服务。不断更新的新物料。稀疏的用户行为,包含大量的噪声。 2.推荐系统 文章包含推荐系统的两阶段模型:召回和排序。 召回网络根据用户的历…...
Python 入门基础知识点有哪些?
Python是一种高级的、解释性的、面向对象的、动态类型语言,它在机器学习、数据分析、Web开发、科学计算等领域都有广泛的应用。下面是Python入门基础知识点的详细介绍。 1、变量和数据类型 在Python中,可以使用变量来存储数据。Python的数据类型包括整…...
【每日一题】补档 CF487B. Strip | 数据结构杂烩 -> 单调队列 | 困难
题目内容 原题链接 给定一个长度为 n n n 的数组,将这个数组进行拆分成若干个连续子数组, 使得每个子数组的最大值减去最小值小于等于 s s s , 且每个子数组的长度大于等于 l e n len len 。 问最少可以拆分成多少个连续子数组࿰…...
向量数据库和普通关系型数据库的区别,LAXCUS支持哪种数据库?
这是一位Laxcus用户在后台的提问,贴出来供大家参考: 1. 向量数据库与传统的关系型数据库主要有以下几个区别: 数据类型:向量数据库专门用于存储和查询向量数据,而传统数据库可以存储各种类型的数据,如文本…...
操作系统 --- 存储器管理
一、简答题 1.存储器管理的基本任务,是为多道程序的并发执行提供良好的存储器环境。请问好的存储器环境”应包含哪几个方面? 答: 2.内存保护是否可以完全由软件实现?为什么? 答:内存保护的主要任务是确保每…...
Python selenium无界面headless
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 …...
JavaScript 中的负无穷大是什么?
在 JavaScript 中,负无穷大表示为 -Infinity。它是一个特殊的数值,用于表示比任何实数都要小的值。 负无穷大用于表示超出数值范围的情况,例如在进行数学计算时发生了溢出或出现了无法表示的结果。它可以通过将负无穷大赋值给变量或通过某些…...
2023年十大地推和网推拉新app推广接单平台,一手单渠道
做地推最重要的一定是找好项目,找好项目最关键的一定是地推app接任务平台,所以这十大靠谱的地推拉新接单平台,都是我们精心筛选的,2023年从事地推和网推拉新作业。 1:聚量推客 “聚量推客”汇聚了众多市场上有的和没有…...
mybatis-plus的进阶使用
文章目录 自定义xml的sql脚本配置mybaits的全局配置文件mybatis-plus优化,指定select数据库乐观锁mybatis-plus实现数据库乐观锁mybatis-plus实现逻辑删除 自定义xml的sql脚本 这里的使用和mybatis一样 编写mapper.xml文件 <?xml version"1.0" enc…...
centos安装vim编辑器
第一步检查centos的vim编辑器包是否完整 rpm -qa|grep vim //查看Vim编辑器需要安装的四个包是否完整 第二步:一般安装vim编辑器需要一下四个安装包,缺失了之后可对应下载 vim-minimal-7.4.160-2.el7.x86_64vim-common-7.4.160-4.el7.x86_64 v…...
PostgreSQL InvalidMessage Cache 同步机制
文章目录 背景InvalidMessages 基本类型InvalidMessages 数据结构概览共享内存 的 "ring-buffer" 结构Backend 本地的 InvalidMessages管理SharedInvalCatalogMsgSharedInvalCatcacheMsgSharedInvalRelcacheMsgSharedInvalSnapshotMsgSharedInvalSmgrMsgSharedInvalR…...
3PEAK思瑞浦 TP2272-SO1R SOP8 精密运放
特性 增益带宽积:7MHz 高斜率:20V/us 宽电源范围:3.1V至36V或2.25V至18V 低失调电压:0.5mV(最大值) 低输入偏置电流:30pA(典型值) 轨到轨输出电压范围 单位增益稳定: 工作温度范围:-40C至125C...
如何在5分钟内体验完整的Windows 12网页版:创新系统模拟器终极指南
如何在5分钟内体验完整的Windows 12网页版:创新系统模拟器终极指南 【免费下载链接】win12 Windows 12 网页版,在线体验 点击下面的链接在线体验 项目地址: https://gitcode.com/gh_mirrors/wi/win12 想要在浏览器中运行完整的Windows系统界面吗&…...
客户总问案件进度?知识产权自助查询系统让咨询量直降 80%
做知产代理的伙伴一定深有体会:客服每天大半时间都在回复 **“案件到哪一步了?”“历史文件发我一下”“去年委托的案子状态是什么”**;找历史文档要翻遍聊天记录、文件夹,耗时又尴尬;高频次沟通占用大量人力ÿ…...
香港科技大学(广州)的研究者如何让AI记忆力翻倍
这项由香港科技大学(广州)主导的研究成果发表于2026年第43届国际机器学习大会(ICML 2026),会议地点为韩国首尔,论文收录于PMLR第306卷。论文预印本编号为arXiv:2605.05838,有兴趣深入了解的读者…...
PowerToys深度解析:Windows生产力工具集的高级配置与性能调优
PowerToys深度解析:Windows生产力工具集的高级配置与性能调优 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/Po…...
从零到一:DPDK高性能网络开发实战指南
1. 为什么你需要了解DPDK? 如果你正在开发需要处理高吞吐量网络数据的应用,比如视频流服务器、金融交易系统或者云计算平台,传统的Linux网络栈可能会成为性能瓶颈。我亲身经历过一个项目,用传统方式开发的网关每秒只能处理30万包…...
JPlag:17种编程语言的代码抄袭检测利器,如何精准识别学术不端与代码剽窃?
JPlag:17种编程语言的代码抄袭检测利器,如何精准识别学术不端与代码剽窃? 【免费下载链接】JPlag State-of-the-Art Source Code Plagiarism & Collusion Detection. Check for plagiarism in a set of programs. 项目地址: https://gi…...
ORAN专题系列-8:5G O-RAN Option7分体式小基站硬件白盒化的关键组件与部署场景剖析
1. 5G O-RAN Option7分体式架构的核心价值 第一次接触O-RAN Option7架构时,最让我惊讶的是它像乐高积木一样的模块化设计。这种分体式架构把传统基站拆解成三个独立部件:负责智能调度的O-DU(分布式单元)、承担信号转换的O-RU&…...
Kafka 场景化面试题top4: 消息积压(Lag)的紧急处理
场景:凌晨 3 点,监控系统报警,发现某个核心 Topic 的消息积压了上千万条,且消费速度远远跟不上生产速度。作为值班工程师,你该如何快速恢复业务,减少积压? 紧急处理四步走(SOP&#…...
面试题:文本表示方法详解——One-hot、Word2Vec、上下文表示、BERT词向量全解析(NLP基础高频考点)
1. 为什么面试官总爱问“文本表示方法”?1.1 这个问题的本质是什么任何 NLP 系统,不管是情感分析、文本分类、搜索推荐、智能客服,还是今天的大模型应用,本质上都绕不开一个前提:机器并不真正认识“文字”,…...
