当前位置: 首页 > 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。...

Newtonsoft.Json反序列化空值报错?5分钟搞定System.Int32类型转换问题

Newtonsoft.Json反序列化空值处理实战指南 当你在C#项目中处理JSON数据时,是否遇到过这样的报错信息?"Error converting value {null} to type System.Int32"——这几乎是每个C#开发者在使用Newtonsoft.Json进行反序列化时都会碰到的经典问题。…...

SITS2026权威发布:基于12家头部平台实测数据,多模态推荐提升GMV 18.7%的4个不可复制因子

第一章:SITS2026多模态推荐系统权威实测全景概览 2026奇点智能技术大会(https://ml-summit.org) SITS2026是面向下一代工业级推荐场景设计的开源多模态协同推理框架,由ML-Summit联合实验室于2025年Q4正式发布。本实测覆盖其在电商、短视频、新闻资讯三…...

如何轻松下载网络视频:VideoDownloadHelper完全使用指南

如何轻松下载网络视频:VideoDownloadHelper完全使用指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 在当今数字化时代&#x…...

VMware macOS解锁神器:Auto-Unlocker完全指南与实战解析

VMware macOS解锁神器:Auto-Unlocker完全指南与实战解析 【免费下载链接】auto-unlocker Unlocker for VMWare macOS 项目地址: https://gitcode.com/gh_mirrors/au/auto-unlocker 在虚拟化技术日益普及的今天,许多开发者和技术爱好者都希望在Win…...

深入解析和(checksum)校验算法:从原理到实践

1. 什么是校验和算法? 校验和(Checksum)算法是一种简单但极其重要的数据校验方法。它的核心思想就像超市收银员核对购物小票总金额——把一堆数字加起来,看看结果是否符合预期。我在处理嵌入式系统通信协议时,几乎每天…...

保姆级教程:用Docker Compose一键部署Mineru 2.5 API与Gradio服务(昇腾310/910B)

保姆级教程:用Docker Compose一键部署Mineru 2.5 API与Gradio服务(昇腾310/910B) 在AI应用开发领域,如何快速部署高性能的推理服务一直是开发者关注的焦点。Mineru 2.5作为基于华为昇腾NPU优化的开源项目,通过VLLM引擎…...

Harness Engineering与Context Engineering:差异与协同

Harness Engineering与Context Engineering:差异与协同 副标题:从「如何用好提示词」到「如何把大模型能力彻底工程化落地」的全链路实践体系 第一部分:引言与基础 1.1 摘要/引言 问题陈述 如果你是一名刚接触大语言模型(LLM)应用开发的开发者,可能会遇到这样的困境:…...

如何快速掌握LyricsX:Mac桌面歌词显示的终极解决方案

如何快速掌握LyricsX:Mac桌面歌词显示的终极解决方案 【免费下载链接】Lyrics Swift-based iTunes plug-in to display lyrics on the desktop. 项目地址: https://gitcode.com/gh_mirrors/lyr/Lyrics LyricsX是一款专为Mac用户设计的免费开源iTunes歌词插件…...

新手必看:如何根据无人机轴距选择螺旋桨?附常见型号对比表

无人机螺旋桨选型指南:从轴距到性能的全面解析 当你第一次打开无人机配件网站,面对琳琅满目的螺旋桨型号时,是否感到无从下手?8045、9047、1045这些数字背后究竟隐藏着什么秘密?本文将带你深入理解螺旋桨与无人机轴距的…...

WPS JS宏进阶:解锁单元格复制与动态重定位的实战技巧

1. 从基础复制到智能定位的跨越 很多刚开始接触WPS表格JS宏的朋友,最常用的操作就是简单的单元格复制粘贴。就像这样: Range("A2:D6").Copy(Sheets("Sheet1").Range("A1"));这行代码确实能把A2到D6区域的内容原封不动地复…...