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

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...

【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...