【测试架构师修炼之道】读书笔记
六大质量属性
效率=性能
测试类型:六种-XX属性转化为XX测试
产品测试车轮图
一个软件测试者要从哪些方面(测试类型)用哪些方法(测试方法)去测试产品(质量属性)的关系图
全面性与深度
稳定性测试:多并复异
性能测试:
- 系统能够正确处理新业务的最大能力,我们也称为"新建"。
- 系统能够同时正确处理的最大业务能力,我们也称为"并发"。
测试步骤
测试覆盖
一般来说,在单元测试阶段,我们会主要使用语句覆盖或分支覆盖的方式来设计测试用例;
在集成测试和系统测试阶段,我们会主要使用最小线性无关覆盖;而对其中一些特别重要的部分,使用全覆盖;对一些不那么重要的部分,使使用语句覆盖或分支覆盖。
仅保证流程图中每个路径片段能够被至少执行一次,在这种覆盖策略下得到的最少路径组合,就是最小线性无关覆盖。
归根到底,最小线性无关覆盖也只是一种策略覆盖,从覆盖的角度来说也是有遗漏的。为了让测试更有效,我们可以根据经验再补充一些测试用例,例如:
- 是否要增加一些需要覆盖的路径?
- 是否要增加一些测试数据?
- 有哪些地方是容易出问题的,是否还需要补充一些测试用例?
控制 用例粒度:测试点的拆分与组合
1.测试点:让测试点不要过粗或过细
2.策略覆盖
3.测试方式
错误推断法:通过缺陷分析
探索式测试:测试思维
基本思想CPIE模型:收集(C)、划分优先级(P)、分析调研(I)、实验(E)
避免集中在缺陷上导致对需求验证的偏离
将测试点作为测试用例进行测试(仅在探索式测试可用)
事实上,测试需要打交道的角色非常多,开发人员、测试人员、领导人员、市场人员、服务人员等。
"对人"意在强调我们在沟通时需要理解你的沟通对象,要学会换位思考,即使是同一件事情,在表达上也需要以对方能够理解的方式来表达。
🌰
需求是否可以测试?需要怎么测试?怎样才算验证通过了?
设计是否可以测试?需要怎么测试?怎样才算验证通过了?
如果你以这样的角度去阅读设计文档,除了关注它在功能上的设计实现,你还会关注它在非功能方面,如性能、可靠性、安全性、易用性、可移植性、可测试性等方面的设计考虑。
测试用例标题
推荐使用的句式:在怎样的条件下,谁,做了,怎样的事情,得到了怎样的结果
状语,主语,谓语,宾语,补语(可选)
·以条件作为用例标题;(更加适用)
·~~以参数作为用例标题。(~~多个参数情况,以参数组合为标题)
测试策略
四步测试策略制定法
1.明确质量目标
- 我们的测试目标就是让产品在发布的时候能够满足事先约定的质量目标
- 围绕产品质量目标进行刚刚好的测试
- 将目标-行为-评估形成闭环
2.进行风险分析
提前识别项目中可能存在哪些会阻塞测试的风险,然后基于风险来调整测试策略
基于风险来加强和降低测试投入
- 对高风险的部分加强测试投入。
- 对低风险的部分降低测试投入。
3.适配"产品研发流程"
4.进行"测试分层"
产品质量评估模型特质
综上,一个优秀的产品质量评估模型,应该具备如下特质:
- 多维度:能够覆盖质量评估的各个纬度,能够帮助评估者全面分析和考虑。
- 定量+定性:指标和分析相结合,能够有效避免在只有指标的情况下,被"绕"过去,变得形同虚设。
- 过程+结果:不仅评估测试的结果,还对过程进行分析和评估。
-
测试覆盖度评估:对测试范围及测试的深度与广度进行分析和评估。/需求和实现
-
测试过程评估:对测试过程和测试的投入情况来进行分析与评估。/测试用例
-
缺陷分析:对测试结果进行分析和评估。
缺陷密度是指每千行代码发现的缺陷数。
(引入阶段)对其他几类缺陷年龄,我们的期望是:
- 没有继承或历史遗留引入的缺陷。
- 没有新需求或变更引入的缺陷。
- 没有缺陷修改引入的缺陷。
按照上述测试策略,我们希望的缺陷触发因素图包含的测试方法和对应的测试内容大致为:
- 功能测试-单运行正常输入:进行基本功能测试,覆盖业务流程的基本路径测试时发现的问题。
- 功能测试-单运行边界值测试:进行配置测试时发现的问题。
- 功能测试-多运行相互作用:进行基本功能测试,覆盖业务流程的基本路径和配置测试时发现的问题
- 性能测试:进行满规格测试时发现的问题。
风险识别
识别方法
风险识别清单
风险评估:确定风险的优先级
风险评估
需求:高
设计:缺陷
流程类(涉及规范、历史类):高
风险应对
应对种类
在风险管理中,风险应对主要分为如下4种:
- 回避风险:指主动避开损失发生的可能性。
- 转移风险:指通过某种安排,将自己面临的风险全部或部分转移给其他一方。
- 减轻风险:指采取预防措施,以降低损失发生的可能性和影响程度。
- 接受风险:指自己理性或非理性地主动承担风险。
"风险应对"举例:新需求在开发过程中不断被增加
"回避风险"的做法:置之不理。
"转移风险"的做法:将新需求外包。
"减轻风险"的做法:寻求额外资源或裁剪其他优先级低的需求。
"接受风险"的做法:将新需求加入项目范围,通过加班来完成我新需求。
老功能分析
差异性分析沟通提纲
缺陷分析
进行遗留缺陷分析需要考虑的主要内容包括:
- 缺陷对用户的影响程度。
- 缺陷发生的概率。
- 缺陷风险评估和规避措施。
测试总体框架
以测试对象-测试方法-测试结果这样的方式来描述测试目标的好处是:强调了这个版本测试的要求,比数字指标更易于被测试团队理解和执行。
缺陷的改动越大,越需要尽早解决。
如果缺陷涉及需求、方案、设计,需要尽早解决。
·优先解决缺陷严重程度为"致命"和"严重"的缺陷。
缺陷回归
- 考虑回归功能范围
- 功能回归
- 自动化回归
- 先对需要多次执行的测试用例进行自动化。
- 优先自动化简单的、可靠的功能。
关于自动化率
自动化率需要与自动化工具、自动化技术和自动化平台以及研发能力匹配,不要盲目追求自动化率。
版本测试策略需要关注的所有内容
- 测试范围和计划相比的偏差。
- 本版本的测试目标。
- 需要重点关注的内容。
- 测试用例的选择。
- 测试执行顺序。
- 试探性的测试策略。
- 接收测试策略。
- 回归测试策略。
- 探索式测试策略。
- 自动化测试策略。
相关文章:
【测试架构师修炼之道】读书笔记
六大质量属性 效率性能 测试类型:六种-XX属性转化为XX测试 产品测试车轮图 一个软件测试者要从哪些方面(测试类型)用哪些方法(测试方法)去测试产品(质量属性)的关系图 全面性与深度 稳定性测试:多并复异 性能测试: 系统能够正确处理新业…...
C++ Functor仿函数
Functor 对象模拟函数 把类对象,像函数名一样使用。 仿函数(functor),就是使一个类的使用看上去像一个函数。其实现就是类中实现 一个 operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 operator() 语法格式 clas…...
【EI会议征稿通知】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)
重要信息 会议官网:www.icbase.org(查看详情) 中文主页:【往届会后3个月检索】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)_艾思科蓝_学术一站式服务平台 会议时间:2024年9月2…...
微信小程序多端框架实现app内自动升级
多端框架生成的app,如果实现app内自动升级? 一、Android 实现app自动升级,华为应用市场 1、获取 应用市场地址 下载地址 2、在微信开放平台进行配置 应用下载地址:应用市场点击分享,里面有一个复制连接功能 应用市…...
C# Log4Net应用
1 需求分析 日志记录是程序开发中必不可少的环节,对于bug调试和后期项目维护都十分重要.其中Log4net是C#环境下广泛使用的日志记录库,功能十分强大.本教程提供的日志记录需求如下 1,日志文件统一保存到项目启动目录下的logs文件夹 2,以天为单位进行日志…...
pytest8.x版本 中文使用文档-------32.示例:使用自定义目录收集器
默认情况下,pytest 使用pytest.Package来收集包含 __init__.py 文件的目录,使用 pytest.Dir来收集其他目录。如果你想要自定义目录的收集方式,你可以编写自己的pytest.Directory 收集器,并使用 pytest_collect_directory钩子来连接…...
c语言第七天笔记
作业题: 设计TVM(地铁自动售票机)机软件。 输入站数,计算费用,计费规则,6站2元,7-10站3元,11站以上为4元。 输入钱数,计算找零(找零时优先找回面额大的钞票)࿰…...
软件测试经理工作日常随记【8】-UI自动化_加密接口的传输
软件测试经理工作日常随记【8】-UI自动化_加密接口的传输 工具类 #utils_api.py class RequestUtils:classmethoddef send_request_splicing(cls, dicts, url): # 对应请求的入参及请求的函数Logger.logger_in().info(-----------------{}接口开始执行-----------------.for…...
基于FPGA的出租车计费系统设计---第一版--郝旭帅电子设计团队
欢迎各位朋友关注“郝旭帅电子设计团队”,本篇为各位朋友介绍基于FPGA的出租车计费系统设计—第一版 功能说明: 收费标准(里程):起步价5元,包括三公里;三公里之后,每公里2元&#x…...
商汤联合建工社共同打造“住建领域法规标准知识大模型”
近日,商汤科技与中国建筑出版传媒有限公司(下称“建工社”)共同发布“住建领域法规标准知识大模型”,共同探索新型知识服务模式。大模型聚焦建筑行业,以商汤“日日新SenseNova 5.5”大模型体系为基础,结合海…...
基于STM32的智能交通监控系统教程
目录 引言环境准备智能交通监控系统基础代码实现:实现智能交通监控系统 车辆检测模块交通流量分析模块通信与网络系统实现用户界面与数据可视化应用场景:交通管理与优化常见问题与解决方案收尾与总结 引言 随着城市化进程的加快,交通拥堵问…...
Git和TortoiseGit的安装与使用
文章目录 前言一、Git安装步骤查看版本信息 二、TortoiseGit安装中文语言包TortoiseGit 配置不同语言 Git基本原理介绍及常用指令 GitLab添加TortoiseGIT生成SSH Key 前言 Git 提供了一种有效的方式来管理项目的版本,协作开发,以及跟踪和应用文件的变化…...
改进YOLOv5:加入非对称卷积块ACNet,加强CNN 的内核骨架,包含VOC对比实验
🔥🔥🔥 提升多尺度、不规则目标检测,创新提升 🔥🔥🔥 🔥🔥🔥 捕捉图像特征和处理复杂图像特征 🔥🔥🔥 👉👉👉: 本专栏包含大量的新设计的创新想法,包含详细的代码和说明,具备有效的创新组合,可以有效应用到改进创新当中 👉👉👉: �…...
论文解读(12)-Transfer Learning
这个也是看论文的时候看到的,但是对这方面不是理解,需要对这方面知识点进行一个补充。 参考: 迁移学习概述(Transfer Learning)-CSDN博客 1. 什么是Transfer Learning? Transfer Learning就是迁移学习&…...
力扣高频SQL 50题(基础版)第三十八题
文章目录 力扣高频SQL 50题(基础版)第三十八题1484.按日期分组销售产品题目说明实现过程准备数据实现方式结果截图总结 力扣高频SQL 50题(基础版)第三十八题 1484.按日期分组销售产品 题目说明 表 Activities: ---…...
大模型下的视频理解video understanding
数据集 Learning Video Context as Interleaved Multimodal Sequences Motivation: 针对Narrative videos, like movie clips, TV series, etc.:因为比较复杂 most top-performing video perception models 都是研究那种原子动作or人or物 understandin…...
【网络安全】CR/LF注入+Race Condition绕过MFA
未经许可,不得转载。 文章目录 漏洞1:CR/LF注入前言正文漏洞2:Race Condition绕过MFA前言正文漏洞1:CR/LF注入 前言 ExaHub(此处为虚拟名称)是一个专为 Exa 编程语言的爱好者和专业人士量身定制的平台。Exa 语言以其出色的速度和性能而闻名,广泛应用于科学计算、机器学…...
深度学习入门——卷积神经网络
本章的主题是卷积神经网络(Convolutional Neural Network,CNN)。CNN被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以CNN为基础。本章将详细介绍CNN的结构,并用Python实…...
快团团供货大大团长帮卖团长如何线上结算和支付货款?
一、如何支付结算单? 团长在快团团小程序【我的供货商】—【结算单】—【待支付】中,找到需要支付的结算单,点击【去支付】即可。 当有多笔结算单待支付时,团长可筛选供货商和日期找到需要支付的结算单,点击【去批量…...
vite vue3 Webstorm multiple export width the same name “default“
系统格式不一样,导致代码文件格式冲突导致的,解决方法找到对应的文件,将文件类型切换成LF。...
Transformer预测模型及其Python和MATLAB实现
### 一、背景 在自然语言处理(NLP)领域,传统的序列到序列(Seq2Seq)模型大多依赖于循环神经网络(RNN)和长短期记忆(LSTM)网络。这些模型虽然在许多任务中取得了成功&…...
草的渲染理论
Unity引擎提供了基础的terrain工具,可以制作地形,在上面刷树刷草。对于树,Unity是支持带LOD的Prefab,不同距离显示不同细节的模型,效果还不错。对于草,Unity支持两种方式来刷草,一种是Add Grass…...
Redis:十大数据类型
键(key) 常用命令 1. 字符串(String) 1.1 基本命令 set key value 如下:设置kv键值对,存货时长为30秒 get key mset key value [key value ...]mget key [key ...] 同时设置或者获取多个键值对 getrange…...
bugku-web-source
kali中先用dirsearch工具扫描后台目录,然后用wget -r url/.git命令递归下载后,进入txt文件使用git reflog命令然后只用git show查看作者提交flag日志,用git show 一个一个去尝试,很多假的flag git reflog 是一个 Git 命令&#x…...
一键生成视频并批量上传视频抖音、bilibili、腾讯(已打包)
GenerateAndAutoupload Github地址:https://github.com/cmdch2017/GenerateAndAutoupload 如何下载(找到最新的release) https://github.com/cmdch2017/GenerateAndAutoupload/releases/download/v1.0.1/v1.0.1.zip 启动必知道 conf.py …...
Python WSGI服务器库之gunicorn使用详解
概要 在部署 Python Web 应用程序时,选择合适的 WSGI 服务器是关键的一步。Gunicorn(Green Unicorn)是一个高性能、易于使用的 Python WSGI HTTP 服务器,适用于各种应用部署场景。Gunicorn 设计简洁,支持多种工作模式,能够有效地管理和处理大量并发请求。本文将详细介绍…...
Java编程达人:每日一练,提升自我
目录 题目1.以下哪个单词不是 Java 的关键字?2.boolean 类型的默认值为?3.以下代码输出正确的是?4.以下代码,输出结果为:5.以下代码输出结果为:6.以下代码输出结果为?7.float 变量的默认值为&am…...
(35)远程识别(又称无人机识别)(二)
文章目录 前言 4 ArduRemoteID 5 终端用户数据的设置和使用 6 测试 7 为OEMs添加远程ID到ArduPilot系统的视频教程 前言 在一些国家,远程 ID 正在成为一项法律要求。以下是与 ArduPilot 兼容的设备列表。这里(here)有一个关于远程 ID 的很好解释和常见问题列表…...
提供三方API接口、调用第三方接口API接口、模拟API接口(一)通过signature签名验证,避免参数恶意修改
为什么要设计安全的api接口 运行在外网服务器的接口暴露在整个互联网中,可能会受到各种攻击,例如恶意爬取服务器数据、恶意篡改请求数据等,因此需要一个机制去保证api接口是相对安全的。 本项目api接口安全设计 本项目api接口的安全性主要…...
CDO学习
1.备份instie.mdb文件 2....
建国际网站需要多少钱/安徽网站seo公司
如何利用fg迅速回到vim中?当用vim修改某文件中的一个参数时,由于参数很长记不住。往往出现当我们刚刚用vim刚打开这个文件后,就忘记了刚刚的参数。这时我们需要暂时退出这个文件去一个目录中找参数。或者有多次打开关闭同一个文件的操作时。那…...
用手机怎么制作app软件/seo网络推广怎么做
一、元素背景是指哪些区域 默认情况下元素的背景是指元素border(包含border)以内的区域。 在CSS3中可用使用background-clip改变元素背景区域。 1.1 background-clip 指定背景在被应用元素上的绘制区域。元素盒模型包含content, padding, border, margi…...
做网站用python还是php/2345网址导航官网
今天由方老师带着大家复习前面所讲的知识,下面是方老师记录的日记: 由于大家普遍反映上课的知识量过大,迫切需要时间来消化。因此今天特意抽出一天时间重点消化及练习前两天袁老师讲解的sqlserver方面的知识。上午主要练习:数据库…...
企业网站seo优化交流/百度公司有哪些部门
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:茶艺师(初级)考试题根据新茶艺师(初级)考试大纲要求,安全生产模拟考试一点通将茶艺师(初级)模拟…...
西安网站建设电话咨询/互联网公司网站模板
7 天从 Java 工程师转型为 Go 工程师 为什么要舍弃 Java,投奔 Go? 我从 2014 年开始接触 Java,对 Java 这门语言有着一种母语情结。相比于 C,Java 拥有面向对象、支持跨平台、垃圾回收等优秀特性。且 Java 的强大而成熟的生态体…...
wordpress点餐主题/百度seo关键词排名优化工具
今天上午,微信出现重大Bug! 从其他App分享内容给个人或微信群,均无法正常分享。 此外,图片、文档的发送以及网页版微信登陆也短暂地出现了故障。 持续时间约30分钟,目前各项功能已全部恢复,相关帐号信息…...