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

【测试开发】基础篇 · 专业术语 · 软件测试生命周期 · bug的描述 · bug的级别 · bug的生命周期 · 处理争执

【测试开发】基础篇

在这里插入图片描述

文章目录

  • 【测试开发】基础篇
    • 1. 软件测试生命周期
      • 1.1 软件生命周期
      • 1.2 软件测试生命周期
    • 2. 描述bug
    • 3. 如何定义bug的级别
      • 3.1 为什么要对bug进行级别划分
      • 3.2 bug的一些常见级别
    • 4. bug的生命周期
    • 5. 产生争执这么怎么办(处理人际关系)
    • 6. 如何开始第一次测试
    • 7. 测试的执行和bug管理
    • 8. 如何发现更多bug

【测试开发】基础篇

1. 软件测试生命周期

1.1 软件生命周期

  1. 需求分析
  2. 计划
  3. 设计
  4. 编码
  5. 测试
  6. 运行维护
  7. 停服

博文链接:【测试开发】概念篇 · 测试相关基础概念 · 常见开发模型 · 常见测试模型_s:103的博客-CSDN博客

1.2 软件测试生命周期

  1. 需求分析

    • 需求是否完整,需求是否正确
  2. 测试计划

    • 确定软件由谁测试,什么时候测试,什么时候结束测试,测试哪些模块
  3. 测试设计、测试开发

    • 写测试用例(手工测试用例,自动化测试用例),编写测试工具
  4. 测试执行

    • 执行测试用例
  5. 测试评估

    • 测试人员产生一个测试报告

    测试报告:

    在这里插入图片描述

没有这个报告,项目是不能上线的,如果上线出了问题,一定是上线的那个人背锅!

2. 描述bug

博文链接:【测试开发】概念篇 · 测试相关基础概念 · 常见开发模型 · 常见测试模型_s:103的博客-CSDN博客

在这里插入图片描述

bug的描述是很重要的,如果你只是指出开发人员的代码的一个bug,让他现在就改,他不得骂死你,所以你应该描述清清楚楚这个bug

具体描述bug:

  1. 在哪个版本下发现问题
    • 开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障
    • 并且版本的表示也有利于统计和分析每个版本的质量
  2. 在哪个环境下发现问题
  • 博客系统 => 127.0.0.1访问,但是别人访问不了,我们要部署到服务器上,这样别人就访问到了,这就是两个不同的环境
  1. 重现故障

    • 要求测试人员描述好,bug的出现流程,否则开发可能会找不到bug,说你乱提bug
    • 描述问题重现的最短最清楚的步骤

    例如以下bug描述:

    1. 在短信列表中,选择短信,进行删除,删除失败了!
    2. 在短信列表中,选择一条短信,进行查看,在查看页面,进行删除,删除失败

    显然,后者的描述更加精准,因为列表页和详情页删除是不一样的地点!

    我们要准确描述bug如何出现的!

  2. 预期行为的描述

    • 要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需求提出的故障,能写明需求的来源是最好的
    • 要相信:测试人员是最懂需求的。
  3. 错误行为的描述

    • 描述错误的现象。crash等可以上传log,UI问题可以有截图。
  4. 其他

    • 某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等
    • bug复现的前置条件、bug给谁…
    • 有些有==优先级的分类==,严重影响测试需要开发人员优先修改的,可以设置优先级为高
  5. 不要把多个bug放到一起

    • 在无法确认是同一段代码造成的故障时,不要将bug放在一起提交

3. 如何定义bug的级别

不同公司可能不一致~

3.1 为什么要对bug进行级别划分

现在有一个项目要在9点上线

此时还有三个bug,但是来不及了,三个bug不能都修复好,所以我们需要给bug进行级别划分,影响更严重的我们要优先处理~

3.2 bug的一些常见级别

  1. Blocker(崩溃)

    • 阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题
    • 如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。
  2. Critical(严重)

    • 系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试
    • 功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等
    • 如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误,数值计算统计错误等(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。
  3. Major(一般/主要)

    • 功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性
    • 如:操作时间长、查询时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等(该问题实际测试中存在最多)
  4. Minor(次要)

    • 界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等
    • 如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等(此类问题在测试初期较多,优先程度较低;在测试后期出现较少,应及时处理)

强调:

  • 如果发现崩溃级别的bug,那么此时我们就需要停止测试,测试打回,测试打回特别恶劣!
    • 写一个报告,打回给开发,开发就需要进行修复,修复完之后自己得仔细地测试一下,不然想着再次被打回吗

4. bug的生命周期

bug状态转换图:

在这里插入图片描述

  1. 缺陷状态变更流程每个项目团队的实际做法可能不大一样
  2. 并且需要结合实际的开发流程和协作流程来使用

5. 产生争执这么怎么办(处理人际关系)

背景:某一天萌新测试人员(QA-- 测试(QUALITY ASSURANC)发现一个bug,提交给老油条开发人员(RD),但是开发脸皮很厚,一直没处理

前提:一定不能吵架

  1. 先从自身出发,测试人员要保证自己操作没有问题,确保自己对需求理解的没有问题
  2. 沟通层面,好好说话,高情商礼貌去交流
  3. 站在用户角度考虑问题
    • 应该让开发人员了解到Bug对用户可能造成的困扰,这样才能促使开发人员 更加积极地、高质量地修Bug。在争执时,可以问一句:如果你是用户,你可以接受么?
    • 例如,删除某一篇文章,但是却把所有的文章都删了,用户直接炸毛了呀!
  4. 不光要发现问题,提出解决问题的方案

如果你都做到这份上了,开发人员还是不好好处理,就可以这样:

  1. 拉上相关人(那个开发和他的领导、我的领导、产品经理PM…)开一个第三方会议
    • 开会之前:但是我(测试)一定要明确问题产生原因,问题是什么,解决方案是什么
    • 开会之后:问题要不要解决,如果要解决,何时解决,谁去解决,知道这些才能散会
    • 有时确实不得不开,否则自己的领导就要追责你了~

6. 如何开始第一次测试

能自己解决就尽量自己解决!

  1. 充分理解需求
    • 文档(产品文档+ 技术文档)
    • 项目功能问题可以去问产品,模块底层如何实现问开发
    • 尽可能多地参加各种项目会议
    • 阅读已有地测试方案和测试案例
    • 熟悉项目所使用的测试管理工具、配置管理工具、获取对应的地址和登录方式
    • 阅读旧有的bug库,了解系统功能,尤其是团队保持一致的bug优先级规定
    • 了解公司的规范要求,特别是用例编写,用例执行规范…
  2. 确定测试计划
  3. 执行测试
    • bug开发修复了之后一定要验收!
  4. 项目上线+ 维护

7. 测试的执行和bug管理

在这里插入图片描述

8. 如何发现更多bug

  1. 软件测试同样存在二八原则80%的故障集中于20%的模块
    • 如果某部分问题较多,加强测试广度和深度!
  2. 开发人员也存在二八原则80%的故障集中于20%的开发人员
    • 如果某些开发人员的bug较多,加强他开发模块的测试广度和深度!
  3. 多进行逆向思维和发散性的思维
    • 依赖测试人员的经验多去写测试用例,多看优秀的人写的测试用例
  4. 不要局限于用例和需求文档
  5. 尽早介入项目, 不要等到开发的差不多了再介入项目
    • 尽早介入需求,就会尽早理解需求

和深度!

  1. 多进行逆向思维和发散性的思维
    • 依赖测试人员的经验多去写测试用例,多看优秀的人写的测试用例
  2. 不要局限于用例和需求文档
  3. 尽早介入项目, 不要等到开发的差不多了再介入项目
    • 尽早介入需求,就会尽早理解需求

文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆
重点:软件测试生命周期 · bug的描述 · bug的级别 · bug的生命周期 · 处理争执


相关文章:

【测试开发】基础篇 · 专业术语 · 软件测试生命周期 · bug的描述 · bug的级别 · bug的生命周期 · 处理争执

【测试开发】基础篇 文章目录 【测试开发】基础篇1. 软件测试生命周期1.1 软件生命周期1.2 软件测试生命周期 2. 描述bug3. 如何定义bug的级别3.1 为什么要对bug进行级别划分3.2 bug的一些常见级别 4. bug的生命周期5. 产生争执这么怎么办(处理人际关系)…...

​bing许少辉乡村振兴战略下传统村落文化旅游设计images

​bing许少辉乡村振兴战略下传统村落文化旅游设计images...

第三十一章 Classes - 继承规则

第三十一章 Classes - 继承规则 继承规则 与其他基于类的语言一样,可以通过继承组合多个类定义。 类定义可以扩展(或继承)多个其他类。这些类又可以扩展其他类。 请注意,类不能继承 Python 中定义的类(即 .py 文件中…...

华为云HECS安装docker并安装mysql

1、运行安装指令 yum install docker都选择y,直到安装成功 2、查看是否安装成功 运行版本查看指令,显示docker版本,证明安装成功 docker --version 3、启用并运行docker 3.1启用docker指令 systemctl enable docker 3.2 运行docker指令…...

MQ - 04 基础篇_存储_消息数据和元数据的存储设计

文章目录 导图概述元数据信息的存储消息数据的存储数据存储结构设计思路一 (Kafka的方案)思路二 (RocketMQ、RabbitMQ 和 Pulsar 的底层存储 BookKeeper 采用的方案)消息数据的分段实现根据偏移量定位根据索引定位 (RabbitMQ 和 RocketMQ的思路)使用场景消息数据存储格式…...

JavaScript:隐式转换、显示转换、隐式操作、显示操作

一、理解js隐式转换 JavaScript 中的隐式转换是指不需要显式地调用转换函数,而是在执行期间自动发生的数据类型的转换。即在使用不同类型的值进行操作时,JavaScript会自动进行类型转换。这种转换通常发生在不同数据类型之间进行运算或比较时。 序号分类…...

2023全新TwoNav开源网址导航系统源码 | 去授权版

2023全新TwoNav开源网址导航系统源码 已过授权 所有功能可用 测试环境:NginxPHP7.4MySQL5.6 一款开源的书签导航管理程序,界面简洁,安装简单,使用方便,基础功能免费。 TwoNav可帮助你将浏览器书签集中式管理&#…...

Android 12 源码分析 —— 应用层 六(StatusBar的UI创建和初始化)

Android 12 源码分析 —— 应用层 六(StatusBar的UI创建和初始化) 在前面的文章中,我们分别介绍了Layout整体布局,以及StatusBar类的初始化.前者介绍了整体上面的布局,后者介绍了三大窗口的创建的入口处,以及需要做的准备工作.现在我们分别来细化三大窗口的UI创建和…...

华为云ROMA Connect亮相Gartner®全球应用创新及商业解决方案峰会,助力企业应用集成和数字化转型

9月13日-9月14日 Gartner全球应用创新及商业解决方案峰会在伦敦举行 本届峰会以“重塑软件交付,驱动业务价值”为主题,全球1000多位业内专家交流最新的企业应用、软件工程、解决方案架构、集成与自动化、API等企业IT战略和新兴技术热门话题。 9月13日…...

虚拟线上发布会带来颠覆性新体验,3D虚拟场景直播迸发品牌新动能

虚拟线上发布会是近年来在数字化营销领域备受关注的形式,而随着虚拟现实技术的不断进步,3D虚拟场景直播更成为了品牌宣传、推广的新选择。可以说,虚拟线上发布会正在以其颠覆性的新体验,为品牌带来全新的活力。 1.突破时空限制&am…...

Linux arm64 pte相关宏

文章目录 一、pte 和 pfn1.1 pte_pfn1.2 pfn_pte 二、其他宏参考资料 一、pte 和 pfn // linux-5.4.18/arch/arm64/include/asm/pgtable.h#define pte_pfn(pte) (__pte_to_phys(pte) >> PAGE_SHIFT) #define pfn_pte(pfn,prot) \__pte(__phys_to_pte_val((phys_addr_t)…...

MVCC:多版本并发控制案例分析(一)

(笔记总结自b站马士兵教育课程) 一、简介 MVCC:全称multi-version Concurency control,多版本并发控制,是为了解决并发读写问题存在的。MVCC的实现原理由三部分组成:隐藏字段、undolog、readview。 二、概…...

以数据为中心的安全市场快速增长

根据Adroit Market Research的数据,2021年全球以数据为中心的安全市场规模估计为27.6亿美元,预计到2030年将增长至393.48亿美元,2021年至2030年的复合年增长率为30.9%。 研究人员表示,以数据为中心的安全强调保护数据本身&#x…...

AUTOSAR汽车电子嵌入式编程精讲300篇-经典 AUTOSAR 安全防御能力的分析及改善(下)

目录 4.4.2 Security 攻击 4.4.3 Security 要求 4.4.4 SDSA 有效性验证 经典 AUTOSAR 安全防御能力分析...

AI绘图提示词Stable Diffusion Prompt 笔记

基础 提示词分为正向提示词(positive prompt)和反向提示词(negative prompt),用来告诉AI哪些需要,哪些不需要词缀的权重默认值都是1,从左到右依次减弱,权重会影响画面生成结果。AI …...

xml元素值需要保留space

XmlReaderSettings.IgnoreWhitespace 属性 如果忽略空白,则为 true;否则为 false。 默认值为 false。 示例 下面创建一个设置对象,该对象可用于构造一个读取器,该读取器去除处理指令、注释和微不足道的空白。 StreamReader tex…...

Eclipse开源代码下载

当前插件开发,需要修改eclipse源码,如需要修改remote相关的代码,所以需要下载相关源码。网上大多资料都说的不清不楚的,也可能我太小白,不明白,反正就是折腾了一两天才感觉有点思路,改如何找源码…...

python多线程、进程

1、 并行和并发 (1)并发:一定周期内,多个任务来回切换执行,宏观上形成“该周期内有多个任务在同时进行”;但同一时间点,只有一个任务在执行。 举例: 你想在2小时内同时完成做饭、扫…...

Vue基础之模板语法介绍

前言 上篇我分享了关于Vue的入门,简单的入了个门。本篇文章将要分享的内容为Vue的模板语法。 一、插值 1.1、文本 1.2、html 1.3、属性 1.4、class、style绑定 1.5、表达式 在Vue的模板语法中,插值是一种常用的方式来动态地将数据渲染到视图中。Vue使用双…...

【SLAM】 前端-视觉里程计之特征点

前端-视觉里程计之特征点 参考资料: 以不变应万变:前端-视觉里程计之特征点 视觉SLAM——特征点法 task05 本次了解了特征点是由关键子和描述子组成,并且对比了SIFT、SURF等七种获取特征点的方法,同时对比了SIFT、SURF和ORB方法…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

线程同步:确保多线程程序的安全与高效!

全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...

数据可视化交互

目录 【实验目的】 【实验原理】 【实验环境】 【实验步骤】 一、安装 pyecharts 二、下载数据 三、实验任务 实验 1:AQI 横向对比条形图 代码说明: 运行结果: 实验 2:AQI 等级分布饼图 实验 3:多城市 AQI…...