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

Android笔记(二十九):利用python自动生成多语言

背景 项目需要支持十几种多语言,而且每个版本的新功能ui都有很多地方需要多语言,如果手动添加非常耗时,于是设计了一个python脚本,通过excel表格转化多语言到项目values/strings文件内 步骤 android工程项目结构 脚本位于langu…...

【C++STL基础入门】list的运算符重载和关于list的算法

文章目录 前言一、list运算符1.1 逻辑运算符1.2 赋值运算符 二、list相关算法2.1 查找函数总结 前言 C标准模板库(STL)是一组强大而灵活的工具,用于处理数据结构和算法。其中,std::list是STL中的一个重要容器,它实现了…...

查找内轮廓(孔洞)

一 说明 findContours( InputOutputArray image, OutputArrayOfArrays contours,OutputArray hierarchy, int mode,int method, Point offset=Point());参数列表中有个数据结构参数:hierarchy(译层次结构),hierarchy是一个向量,其元素个数与查找到的轮廓总数相同,每一个…...

Git(6)——GitHub

目录 一、简介 二、概要 三、注册 ​四、创建仓库 五、推送本地代码 六、拉取远端代码 一、简介 在Git(5)中,我们已经对Git分支的概念和用法有了一定了解,对于在本地进行代码版本管理,其实当前所学的东西基本已经…...

【RocketMQ专题】快速实战及集群架构原理详解

目录 课程内容一、MQ简介基本介绍*作用(解决什么问题) 二、RocketMQ产品特点2.1 RocketMQ介绍2.2 RocketMQ特点2.3 RocketMQ的运行架构 三、RocketMQ快速实战3.1 快速搭建RocketMQ服务3.2 快速实现消息收发3.3 搭建Maven客户端项目3.4 搭建RocketMQ可视化…...

[设计模式] 浅谈SOLID设计原则

目录 单一职责原则开闭原则里氏替换原则接口隔离原则依赖倒转原则 SOLID是一个缩写词,代表以下五种设计原则 单一职责原则 Single Responsibility Principle, SRP开闭原则 Open-Closed Principle, OCP里氏替换原则 Liskov Substitution Principle, LSP接口隔离原则 …...

基于Java+SpringBoot+Vue的旧物置换网站设计和实现

基于JavaSpringBootVue的旧物置换网站设计和实现 源码传送入口前言主要技术系统设计功能截图数据库设计代码论文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 摘 要 随着时代在一步一步在进步,旧物也成人们的烦恼,…...

Java基本语法2

目录 Java基本语法 第一个Java程序 基本语法 Java标识符 Java修饰符 Java变量 Java数组 Java枚举 Java关键字 Java注释 Java 空行 继承 接口 Java基本语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介…...

【数据结构】树的存储结构;树的遍历;哈夫曼树;并查集

欢~迎~光~临~^_^ 目录 1、树的存储结构 1.1双亲表示法 1.2孩子表示法 1.3孩子兄弟表示法 2、树与二叉树的转换 3、树和森林的遍历 3.1树的遍历 3.1.1先根遍历 3.1.2后根遍历 3.2森林的遍历 3.2.1先序遍历森林 3.2.2中序遍历森林 4、树与二叉树的应用 4.1哈夫曼树…...

CSS选择器练习小游戏

请结合CSS选择器练习小游戏进行阅读(网页的动态效果是没有办法通过静态图片展示的) 网址:请点击 有些题有多种答案,本文就不一一列出了 第一题 答案:plate第二题 答案:bento第三题 答案:#fa…...

沈阳网站建设q479185700棒/中国疾控卫生应急服装

当我们对数据库优化诊断时,需要收集相应的信息以供参考,从个人的使用经验来说,这种统计数据分为两大类 一类是数据库级别的统计信息 二类是os级别的统计信息 下面就分别介绍在不同的级别下,常用什么工具来收集信息帮助优化诊断 首…...

企业做网站的注意事项/河北疫情最新情况

在家用领域当中,无线网络WI-FI成为了我们生活中必不可少的一环。大家在选购路由器的时候经常会看到有的产品会在详情页中标注双频WIFI等字眼,这是什么意思呢?你有了解过吗?其实双频WIFI指的是“支持两个不同频段的无线信号”&…...

宁波网站建设与设计制作/百度商店

加油加油转载于:https://www.cnblogs.com/naliang/p/4974360.html...

网站建设到一半想换一家/免费网页代码大全

一、一些必知参数 堆的分配参数 -Xmx:堆内存的最大大小(max)-Xms:堆内存的初始大小(start)-Xmn:新生代大小(new)-XX:NewRatio 老年代和新生代(e…...

wordpress主题 missoften/如何被百度收录

【CF932E】Team Work 题意:求$\sum\limits_{i1}^nC_n^ii^k$,答案模$10^97$。$n\le 10^9,k\le 5000$。 【BZOJ5093】图的价值 题意:“简单无向图”是指无重边、无自环的无向图(不一定连通)。一个带标号的图的价值定义为…...

做电影网站需多大的空间/优化设计答案五年级上册

MATLAB概率分布函数mean Average or mean value of arraystd Standard deviationcorrcoef Correlation coefficientsmedian Median value of arraymax Largest elements in arraymin Smallest elements in array统计工具箱函数表Ⅰ-1 概率密度函数函数名对应分布的概率密度函数…...