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

测试报告踩坑的点

  测试报告作为测试人员的核心输出项,是体现自己工作价值的重要承载工具,需要我们认真对待,所以我们要重视测试报告的输出,那么在编写测试报告的时候,我们有哪些点需要注意的呢?

  01 不要乱用模板

  很多测试新人在编写测试报告时,都会去找别人要一份所谓的测试报告模板,总感觉别人的报告是好的,而没有考虑到自己团队的实际情况,不是说不能套用模块,这里有两个小坑需要注意下:

  页眉页脚:在正规的公司里,对于文档的页眉页脚都有会明确的要求。但我们的阅读习惯又是会把这块内容隐藏起来。这就会导致你在套用模板的时候,忽略了这部分内容的修改,笔者曾经阅读过一份测试报告,页眉页脚上的说明和Logo竟然是别的公司,这就很尴尬了。

  空白标题:模板一般会讲究大而全,所以会有很多标题项,给到有需要的人去填写,比如项目背景、术语解释等,但是这些内容是需要根据实际情况去做裁剪的。但新手们可能不知道怎么写,就放在那里,也不删除。笔者见过一份测试报告,里面有2~3项只有标题而没有内容,你是想让读者给你补上么?

  02 没有明确测试范围

  在测试报告中,我们需要明确的给出测试范围是哪些,如果版本的内容较多,可以适当的简写,但不能不写。产品给的版本内容好比是预售出去的火车票。而测试报告中的测试范围,就是上车前的检票环节,要对齐,不能有缺失,也尽量不能有夹带,否则火车可能会失控。

  变更的点要明确出来:如果版本周期比较长,或者在研发过程中需求发生了变化,需要在测试范围中明确的标注出来,让阅读报告的人能够清楚的知道哪些点是做过变更的,有助于他们评估影响范围。

  裁剪的要特别明确出来:由于各种原因,原来计划的功能或者需求没有得到实现,被裁剪的功能要特别的明确标注出来,让大家清楚的知道最终上线的是哪些内容。避免因为信息不对称引发误解。

  

  ​

  03 内容描述不清晰

  不要把测试报告的内容写成一篇中篇小说。各种修饰词,流水话一大堆,导致看的人雾里看花,似是而非。我看过有把测试报告写成文章的,通篇报告都是文字,我认为、我想、他们应该等一大堆称谓词,最后草草下个结论,让人不明所以。

  测试报告应该尽量避免主观看法,加入一堆的主观认识。而应该客观的、简明扼要的把过程表述清楚。并且尽可能结合图文和表格辅以说明。这样的测试报告才令人赏心悦目,也让人一目了然,从而把测试结果很好的呈现给客户。

  04 没有风险说明

  这点是在测试报告经常被忽略但又非常重要的一个点。在一些核心版本、变更较大的版本中,我们需要明确给出一些风险项,最好能给出必要的解决方案或者应对方法。常见的风险一般会有以下几类:

  缺陷遗留风险:有些版本缺陷并会被完全修复,那么遗留缺陷的风险是什么,如何应对,是否需要对外统一话述等。

  测试策略风险:在测试时间紧张、业务功能特别复杂的场景中,我们使用了特定的测试策略,可能引发或者遗留的风险项是什么,是否做好了预案。

  发布升级风险:重要的变更、涉及历史数据迁移、中间件版本升级等内容时,除了做好全面的验证外,还需要给出必要的回退方案。

  业务风险:是否依赖其它子系统的同步升级配合,是否有第三方系统参与升级,新业务带来的用户操作变更是否做好了对应的培训或者有对应的操作文档(特别是To B的产品),是否预留了用户意见反馈通道等等。

  05 没有测试结论

  你见过没有测试结论的测试报告么?嗯,我见过。给某个版本的测试工作下结论是需要非常谨慎的,因为你需要对测试结论负责(很多人忽略了这一点,然后就被甩锅了)。在结合测试过程和测试风险后,我们需要给出明确的测试结论:通过、不通过、有条件通过(某些功能被裁剪了,或者某些场景是通过Mock等方式能过的,可能存在风险)。谁说测试结论一定要是通过呢?

  在编写测试报告时,还有些小坑需要特别注意的,比如: 不能有错别字、排版要规范、图表要清晰等,不要让这些小细节让别人对整个测试报告留下不好映象。

  06 小结

  一份好的测试报告至少应当包含以下几点内容:

  测试范围:你最终的测试范围是什么,覆盖了哪些功能点。哪些是原来迭代规划的,哪些是临时增加的,又有哪些转动了下个迭代中。这些都是需要明确出来的,看报告的人并不一定会全程参与到研发过程中,所以需要你的测试报告来体现真实的迭代内容是什么。

  测试结论:从测试人员专业的角度,给出迭代的质量评估,是否达到了发布标准,是否可以发布,如果不能,说清楚原因。

  测试风险:在测试过程中遇的考虑到的风险,上线后可能发生的风险,如果你知道,请明确出来,让团队各角色(研发、产品、部门负责人等)根据你的风险分析,一起来决定是否发布版本。

  当然,测试报告不仅仅只包含以上内容,但是以上内容是看报告的人最注的内容,除此以外,还应该包含但不限于测试策略、人员投入、BUG分析(对研发团队很重要)、测试改进意见等等。

  如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司

 

相关文章:

测试报告踩坑的点

测试报告作为测试人员的核心输出项,是体现自己工作价值的重要承载工具,需要我们认真对待,所以我们要重视测试报告的输出,那么在编写测试报告的时候,我们有哪些点需要注意的呢? 01 不要乱用模板 很多测试新人在编写测试…...

【Java】创建多线程的四种方式

一、方式1:继承Thread类 步骤: 创建一个继承于Thread类的子类重写Thread类的run()方法 ----> 此线程执行的操作声明在方法体中创建当前Thread子类的对象通过实例对象调用start()方法,启动线程 ----> Java虚拟机会调用run()方法 注意…...

【数据结构】队列的接口实现(附图解和源码)

队列的接口实现(附图解和源码) 文章目录队列的接口实现(附图解和源码)前言一、定义结构体二、接口实现(附图解源码)1.初始化队列2.销毁队列3.队尾入队列4.判断队列是否为空5.队头出队列6.获取队列头部元素7…...

日本知名动画公司东映动画加入 The Sandbox 元宇宙

与 Minto 合作将东映动画的 IP 呈现在元宇宙。 The Sandbox 很荣幸能与东映动画合作,与 Minto 携手在 The Sandbox 元宇宙中创建基于东映动画 IP 的相关体验。 作为日本动画的先驱,东映动画制作了日本最大和世界领先的动画作品,包括《龙珠》、…...

QuickHMI Hawk R3 Crack

基于网络的 SCADA / HMI 系统 QuickHMI Hawk R3 QuickHMI是一个 100% 基于网络的SCADA/HMI 系统。 得益于HTML5、SVG和Javascript等现代网络技术,可视化可以在任何当前浏览器和设备中显示。作为浏览器的替代品,可以使用“独立查看器”和移动应用程序。 Q…...

【C语言】寻找隐藏字母游戏

编程实现一个游戏程序,会将连续三个字母中的一个隐去,由玩家填写隐去的那个字母,如屏幕上显示A ? C,则玩家需要输入B;屏幕上显示?B C,则玩家需要输入A。记录玩家完成20次游戏的时间以及正确率。…...

【C++】list 相关接口的模拟实现

list 模拟实现回顾准备构造析构函数的构造构造方法析构方法赋值运算符重载容量相关接口元素获取元素修改相关接口push 、popinserterase清空交换迭代器 **(重点)迭代器基本概念迭代器模拟实现回顾 在上一篇博客中我们大致了解了 list 相关接口的使用方法…...

快速找到外贸客户的9种方法(建议收藏)

所有外贸企业想要做好外贸出口的头等大事,就是要快速的找到优质的外贸客户和订单,没有订单的达成,所有的努力都是图劳,还有可能会陷入一种虚假的繁荣,每天都很忙,但是没有结果。今天,小编就来分…...

TCP状态转换

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 TCP状态转换专栏:《Linux从小白到大神》《网络编程》 TCP状态转换示意图如下 针对上面的示…...

3500年里,印度被11个文明征服

转自:3500年里,印度被11个文明征服,如今看似统一,实际上却是缝合怪 (qq.com)今天的印度是亚洲第二大国,南亚第一大国,世界第二人口大国。如果我们将时间线拉长,纵观历史的长河,就会惊…...

Java编程问题top100---基础语法系列(一)

Java编程问题top100---基础语法系列一一、Java 操作符实质二、将InputStream转换为String使用IOUtils自己写轮子三、将数组转换为List四、如何遍历map对象使用For-Each迭代entries(方法一)使用For-Each迭代keys和values(方法二)使…...

【C#基础】C# 异常处理操作

序号系列文章6【C#基础】C# 常用语句讲解7【C#基础】C# 常用数据结构8【C#基础】C# 面向对象编程文章目录前言1,异常的概念2,处理异常3,自定义异常4,编译器异常结语前言 🌷大家好,我是writer桑,…...

系统分析师---操作系统思维导图

进程管理(5星) 进程与线程:共享:内存地址空间、代码、数据、文件等不能共享:独立的cpu运行上下文和栈指针、寄存器 信号量与PV操作:信号量,一种特殊的变量分为:信号量可以表示资源数…...

Linux | Ubuntu20.04系统使用命令从移动硬盘/U盘拷贝文件到服务器上

*确认自己移动硬盘、U盘的格式,本文为exfat格式STEP1:把移动硬盘插到Ubuntu系统的主机上查看disk默认位置#查看移动硬盘/U盘在哪个位置命令 fdisk -l #查询后出现了包含电脑系统的所有硬盘查看最后的位置,我的显示为Device, 位置为 /dev/sdb1…...

【经验总结】10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?

【经验总结】一位近10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的? RT-Thread绝对可以称得上国内优秀且排名靠前的操作系统,在嵌入式IoT领域一直享有盛名。近些年,物联网产业的大热,更是直接将RT-Thread这…...

一起Talk Android吧(第五百零九回:约束布局中的组功能一)

文章目录功能介绍使用方法GroupLayer对比总结各位看官们大家好,上一回中咱们说的例子是"多层布局功能",这一回中咱们说的例子是"约束布局中的组功能"。闲话休提,言归正转, 让我们一起Talk Android吧! 功能介…...

2023安徽省“中银杯”职业技能大赛“网络安全” 项目比赛任务书

2023安徽省“中银杯”职业技能大赛“网络安全” 项目比赛任务书2023安徽省“中银杯”职业技能大赛“网络安全” 项目比赛任务书A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux)A-2:Ngi…...

观测云产品更新|新增用户访问监测自动化追踪;新增 CDN 质量分析;新增自定义查看器导航菜单等

观测云更新 用户访问监测优化 新增用户访问监测自动化追踪 用户访问监测新增自动化追踪,通过“浏览器插件”的实现方式,使用浏览器记录用户访问行为,创建无代码的端到端测试。更多详情可参考文档【 自动化追踪 】https://docs.guance.com/…...

大数据技术生态全景一览

大数据技术生态全景一览大数据平台ETL数据接入大数据平台海量数据存储大数据平台通用计算大数据平台各场景的分析运算分布式协调服务任务流调度引擎大数据平台ETL数据接入 大数据有很多的产品,琳琅满目。从架构图上就能看出产品很多。这些产品它们各自的功能是什么…...

CI/CD | 深入研究Jenkins后,我挖掘出了找到了摆脱低效率低下的方法

在本系列的第一篇文章中,您已经了解了一些关于如何管理Jenkins的内容,主要是为无序的人带来秩序。在这篇文章中,我将更深入地探讨我效率低下的问题,提出我们工作流中一些安全性、治理和合规性的挑战。这不仅仅是你在网站上或展览横…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...