当前位置: 首页 > news >正文

【测试架构师修炼之道】读书笔记

六大质量属性

在这里插入图片描述

效率=性能

测试类型:六种-XX属性转化为XX测试

在这里插入图片描述

产品测试车轮图

在这里插入图片描述

一个软件测试者要从哪些方面(测试类型)用哪些方法(测试方法)去测试产品(质量属性)的关系图

全面性与深度

稳定性测试:多并复异

性能测试:

  • 系统能够正确处理新业务的最大能力,我们也称为"新建"。
  • 系统能够同时正确处理的最大业务能力,我们也称为"并发"。

测试步骤

在这里插入图片描述

测试覆盖

一般来说,在单元测试阶段,我们会主要使用语句覆盖或分支覆盖的方式来设计测试用例;

在集成测试和系统测试阶段,我们会主要使用最小线性无关覆盖;而对其中一些特别重要的部分,使用全覆盖;对一些不那么重要的部分,使使用语句覆盖或分支覆盖。

仅保证流程图中每个路径片段能够被至少执行一次,在这种覆盖策略下得到的最少路径组合,就是最小线性无关覆盖。

归根到底,最小线性无关覆盖也只是一种策略覆盖,从覆盖的角度来说也是有遗漏的。为了让测试更有效,我们可以根据经验再补充一些测试用例,例如:

  • 是否要增加一些需要覆盖的路径?
  • 是否要增加一些测试数据?
  • 有哪些地方是容易出问题的,是否还需要补充一些测试用例?

控制 用例粒度:测试点的拆分与组合

1.测试点:让测试点不要过粗或过细

在这里插入图片描述

2.策略覆盖

3.测试方式

错误推断法:通过缺陷分析

探索式测试:测试思维

基本思想CPIE模型:收集(C)、划分优先级(P)、分析调研(I)、实验(E)

避免集中在缺陷上导致对需求验证的偏离

将测试点作为测试用例进行测试(仅在探索式测试可用)

事实上,测试需要打交道的角色非常多,开发人员、测试人员、领导人员、市场人员、服务人员等。

"对人"意在强调我们在沟通时需要理解你的沟通对象,要学会换位思考,即使是同一件事情,在表达上也需要以对方能够理解的方式来表达。

🌰

需求是否可以测试?需要怎么测试?怎样才算验证通过了?

设计是否可以测试?需要怎么测试?怎样才算验证通过了?

如果你以这样的角度去阅读设计文档,除了关注它在功能上的设计实现,你还会关注它在非功能方面,如性能、可靠性、安全性、易用性、可移植性、可测试性等方面的设计考虑。

测试用例标题

推荐使用的句式:在怎样的条件下,谁,做了,怎样的事情,得到了怎样的结果

状语,主语,谓语,宾语,补语(可选)

·以条件作为用例标题;(更加适用)

·~~以参数作为用例标题。(~~多个参数情况,以参数组合为标题)

测试策略

四步测试策略制定法

在这里插入图片描述

1.明确质量目标

  • 我们的测试目标就是让产品在发布的时候能够满足事先约定的质量目标
  • 围绕产品质量目标进行刚刚好的测试
  • 将目标-行为-评估形成闭环

2.进行风险分析

提前识别项目中可能存在哪些会阻塞测试的风险,然后基于风险来调整测试策略

基于风险来加强和降低测试投入

  • 对高风险的部分加强测试投入。
  • 对低风险的部分降低测试投入。

3.适配"产品研发流程"

在这里插入图片描述

4.进行"测试分层"

在这里插入图片描述

产品质量评估模型特质

综上,一个优秀的产品质量评估模型,应该具备如下特质:

  • 多维度:能够覆盖质量评估的各个纬度,能够帮助评估者全面分析和考虑。
  • 定量+定性:指标和分析相结合,能够有效避免在只有指标的情况下,被"绕"过去,变得形同虚设。
  • 过程+结果:不仅评估测试的结果,还对过程进行分析和评估。

在这里插入图片描述

  1. 测试覆盖度评估:对测试范围及测试的深度与广度进行分析和评估。/需求和实现

  2. 测试过程评估:对测试过程和测试的投入情况来进行分析与评估。/测试用例

  3. 缺陷分析:对测试结果进行分析和评估。

    缺陷密度是指每千行代码发现的缺陷数。

    (引入阶段)对其他几类缺陷年龄,我们的期望是:

    • 没有继承或历史遗留引入的缺陷。
    • 没有新需求或变更引入的缺陷。
    • 没有缺陷修改引入的缺陷。

按照上述测试策略,我们希望的缺陷触发因素图包含的测试方法和对应的测试内容大致为:

  • 功能测试-单运行正常输入:进行基本功能测试,覆盖业务流程的基本路径测试时发现的问题。
  • 功能测试-单运行边界值测试:进行配置测试时发现的问题。
  • 功能测试-多运行相互作用:进行基本功能测试,覆盖业务流程的基本路径和配置测试时发现的问题
  • 性能测试:进行满规格测试时发现的问题。

风险识别

识别方法

在这里插入图片描述

风险识别清单

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

风险评估:确定风险的优先级

在这里插入图片描述

风险评估

需求:高

设计:缺陷

流程类(涉及规范、历史类):高

风险应对

应对种类

在风险管理中,风险应对主要分为如下4种:

  1. 回避风险:指主动避开损失发生的可能性。
  2. 转移风险:指通过某种安排,将自己面临的风险全部或部分转移给其他一方。
  3. 减轻风险:指采取预防措施,以降低损失发生的可能性和影响程度。
  4. 接受风险:指自己理性或非理性地主动承担风险。

"风险应对"举例:新需求在开发过程中不断被增加

"回避风险"的做法:置之不理。

"转移风险"的做法:将新需求外包。

"减轻风险"的做法:寻求额外资源或裁剪其他优先级低的需求。

"接受风险"的做法:将新需求加入项目范围,通过加班来完成我新需求。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

老功能分析

差异性分析沟通提纲

缺陷分析

进行遗留缺陷分析需要考虑的主要内容包括:

  1. 缺陷对用户的影响程度。
  2. 缺陷发生的概率。
  3. 缺陷风险评估和规避措施。

测试总体框架

在这里插入图片描述

以测试对象-测试方法-测试结果这样的方式来描述测试目标的好处是:强调了这个版本测试的要求,比数字指标更易于被测试团队理解和执行。

缺陷的改动越大,越需要尽早解决。

如果缺陷涉及需求、方案、设计,需要尽早解决。

·优先解决缺陷严重程度为"致命"和"严重"的缺陷。

缺陷回归

  1. 考虑回归功能范围
  2. 功能回归
  3. 自动化回归
    1. 先对需要多次执行的测试用例进行自动化。
    2. 优先自动化简单的、可靠的功能。

关于自动化率

自动化率需要与自动化工具、自动化技术和自动化平台以及研发能力匹配,不要盲目追求自动化率。

版本测试策略需要关注的所有内容

  1. 测试范围和计划相比的偏差。
  2. 本版本的测试目标。
  3. 需要重点关注的内容。
  4. 测试用例的选择。
  5. 测试执行顺序。
  6. 试探性的测试策略。
  7. 接收测试策略。
  8. 回归测试策略。
  9. 探索式测试策略。
  10. 自动化测试策略。

相关文章:

【测试架构师修炼之道】读书笔记

六大质量属性 效率性能 测试类型:六种-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元。 输入钱数,计算找零(找零时优先找回面额大的钞票)&#xff0…...

软件测试经理工作日常随记【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。...

大话软工笔记—需求分析概述

需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...