第八章 软件测试自动化
一、学习目的与要求
通过本章的学习,了解自动化测试应考虑的各种因素及如何衡量自动化测试成本,掌握自动化测试和手工测试的优缺点,能正确选择软件测试策略,了解测试工
具的分类和使用目的,熟悉常用的测试工具,了解自动化测试的过程。
二、考核知识点与考核目标
(一)自动化测试概述(一般)
- 理解:自动化测试的时机
并非一律用自动化测试就好,要考虑经济性、有效性,适当的进行自动化测试。
- 理解:自动化测试成本
创建一次自动化的测试所花费的时间要比一次手工测试所花费的时间多得多。测试成本因产品
的架构以及自动化测试的方式不同而异。由高到低
- 通过图形用户界面来测试产品;
- 使用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…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...