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

【测试开发篇3】软件测试的常用概念

目录

一、软件测试的生命周期(5个步骤)

①需求分析(两个角度)

用户角度:

开发人员的角度:

②测试计划 

③测试设计、测试开发

④执行测试

⑤测试评估

二、软件测试贯穿项目的整个生命周期的体现

需求分析阶段

计划阶段

设计阶段

编码阶段

测试阶段

运行维护阶段

三、关于bug

如何描述一个bug(5个内容)

标题 

发现bug的版本

发现bug的环境

发现bug的具体步骤

期望结果&实际结果

bug的级别是什么

      NO.1崩溃(非常严重,并且比较少见)

      NO.2严重(主要的功能与预期存在严重不符)

      NO.3一般(很常见)

      NO.4次要(很常见)

bug的生命周期

发现bug

收到bug

修复bug

bug回归验证

如果测试人员认为是bug,开发人员不认为是Bug,怎么处理

一、反思自己

二、提bug一定要有理有据

三、合理友好地沟通

四、提出问题,最好可以提出解决方法(优秀)

五、提出评审(一定是最后的最后才作出这样的决定)


一、软件测试的生命周期(5个步骤)

①需求分析(两个角度)

需求分析需要站在两个角度进行分析:

用户角度:

检查需求的逻辑是否正确,是否符合用户的需求习惯等;


开发人员的角度:

思考需求是否可以实现/实现的难度大小


②测试计划 

 针对一个项目具体的测试计划(例如测试的工时人力的安排等等)


③测试设计、测试开发

      测试设计阶段:设计测试用例

      测试用例就是测试人员向待测试的软件提供的一组测试数据,包括以下的内容:

  测试环境、

  测试数据、

  测试步骤、

  预期结果

     每一个步骤是干什么的,已经在这一篇文章当中提到了。  【测试开发篇2】软件测试常用概念_革凡成圣211的博客-CSDN博客https://blog.csdn.net/weixin_56738054/article/details/129493584?spm=1001.2014.3001.5502

       在这两个阶段,经验丰富的白盒测试人员就可以开始进行单元测试了(关于什么是白盒测试、什么是黑盒测试,已经在这一篇文章当中提到了)


④执行测试

参考测试用例来执行测试。计划好了测试的计划,那么在这一个步骤就需要来具体地执行测试了。


⑤测试评估

测试人员需要记录测试、做好缺陷管理(例如记录bug、评估风险) 


二、软件测试贯穿项目的整个生命周期的体现

       之前我们提到了,软件测试是贯穿整个软件的生命周期的。那么,下面我们来回顾一下软件的生命周期是什么。

 需求阶段:产品经历根据用户需求转化为软件需求;

 计划阶段:进行软件开发的计划,包括项目的开发工时、人力等,产出计划文档;

 设计阶段:设计具体的开发步骤;产出设计文档;

 编码阶段:开发人员根据需求文档设计文档来进行软件开发;

 测试阶段:测试人员对于软件进行测试;

 运行维护阶段:发现项目当中旧的问题、对于当前项目的维护、以及预防可能发生的问题。

下面,我们具体来聊一下,在每一个阶段,软件测试人员需要做什么事情。


需求分析阶段

       在这个阶段,测试人员也需要了解用户的需求软件的需求等等。分析需求是否合理,站在开发人员的角度思考技术如何实现,针对技术难度来合理调整需求。


计划阶段

       在测试人员了解到具体的需求之后,就需要进入到计划阶段了。根据需求来编写测试计划测试方案


设计阶段

根据项目的设计细节,搭建测试框架,并且根据项目的计划编写一部分的测试用例


编码阶段

       测试人员一般不需要编码的。

       在这个阶段,白盒测试人员就可以参与进来进行测试了。同时,在这个阶段也需要完善、细化测试用例以及调整测试计划和方案


测试阶段

测试人员根据测试用例来进行测试,在执行的过程当中记录并且管理缺陷。

并且还需要在这一个阶段进行

总结:


运行维护阶段

     在这一个阶段:

①测试人员可以参与用户使用软件的培训;

②收集运行时候项目的问题并且反馈给相关的负责人


三、关于bug

关于什么是bug,也已经在前面的文章当中提到了:

软件需求正确的时候,软件的实际运行效果软件需求不一致的时候,那么这就是bug。


如何描述一个bug(5个内容)

标题 

对于一个bug的简单描述:一般是bug的现象是什么。


发现bug的版本

对于用户使用的版本,我们称之为"线上包"或者"正式包"

那么测试使用的版本就是"测试包"。因此,需要描述好是哪一个测试的版本发现的bug。


发现bug的环境

例如是在什么操作系统下面发现的bug,是移动端还是微信端还是pc端等等。


发现bug的具体步骤

指的是测试人员具体操作了哪些步骤,才发现了bug。

例如是:

用户登录之后,退出到首页的情况发现了bug

还是打开浏览器,进入首页的情况发现了bug


期望结果&实际结果

例如:期望的结果是什么,但是实际的结果又是什么,以及具体的描述。

bug类型:前端问题,bug等级...

(最好配有截图)


bug的级别是什么

       关于bug的级别,不同的公司有不同的规定,在定义级别之前首先需要查看公司的规范。一般分为以下几个级别:


      NO.1崩溃(非常严重,并且比较少见)

       这种bug,可以说是会直接导致系统崩溃的。例如:

  死循环、死机、数据库内容丢失等等,在测试的环节非常少遇见


      NO.2严重(主要的功能预期存在严重不符)

       例如在一个博客系统当中,用户点击了保存草稿,但是还是没办法保存成功一样。

       或者用户点击了登录,账号密码都输入正确了,但是还是没办法正常登录。


      NO.3一般(很常见)

       功能没有完全实现,但是不影响使用。

        主要功能存在缺陷,但是不影响系统的稳定性。


      NO.4次要(很常见)

       一些建议优化的措施。(例如调整前端页面的字段大小等等) 


bug的生命周期

发现bug

测试人员发现了新的Bug,同时测试人员要新建一个bug,这个bug的状态就是new


收到bug

       开发人员收到了bug,查看测试人员提出的bug是否是bug。如果是bug,就把这个bug的状态设置为open

       如果开发人员认为这不是一个bug,那么开发人员就把这个bug修改为rejected(拒绝),然后就直接进入closed状态。


修复bug

开发人员认定了bug之后,就需要采取修复的工作。

但是,就算是修复,也有两种措施:

delay:现在暂时不需要修复,于是采取的措施是:延迟修复。

fixed:立刻进行bug修复。


bug回归验证

把这一个bug的状态修改为reopen,重新交给开发人员。


画个图总结一下bug的生命周期流程图(圆圈为bug的状态):


如果测试人员认为是bug,开发人员不认为是Bug,怎么处理

一、反思自己

具备批判性的思维,先考虑一下:自己是不是对于bug描述地不清楚。

这个bug是不是无效的bug


二、提bug一定要有理有据

      不单止对于bug的描述,还需要有明确的依据(包括是在什么样的环境下面发现的bug,测试的版本、运行的截图等等)

      并且要严格规定bug的等级,不可以过低或者过高


三、合理友好地沟通

       如果开发人员并不太认可,可以站在用户的角度进行沟通。如果你是用户,那么可以接收这样处理嘛?


四、提出问题,最好可以提出解决方法(优秀)

如果bug太多的话,最好可以提出解决方案,帮助开发人员快速进行修正。


五、提出评审(一定是最后的最后才作出这样的决定)

邀请产品代表、开发代表、测试代表一起对这个bug进行评估。

包括以下的内容:

  (1)如何解决bug;

  (2)如何预防类似的bug。

相关文章:

【测试开发篇3】软件测试的常用概念

目录 一、软件测试的生命周期(5个步骤) ①需求分析(两个角度) 用户角度: 开发人员的角度: ②测试计划 ③测试设计、测试开发 ④执行测试 ⑤测试评估 二、软件测试贯穿项目的整个生命周期的体现 需求分析阶段 计划阶段 设计阶段 编码阶段 …...

javaEE初阶 — JavaScript WebAPI

文章目录什么是 DOMDOM 树获取元素1. querySelector2. querySelectorAll事件1. 事件三要素2. 代码案例获取 / 修改元素内容1. innerHTML获取 / 修改元素属性获取 / 修改表单元素属性获取 / 修改样式属性1. 修改内联样式(修改 style 属性的值)2. 修改元素…...

UE实现地面动态交互效果

文章目录 1.实现目标2.实现过程2.1 SphereMask2.2 材质实现2.3 位置更新3.参考资料1.实现目标 基于SphereMask材质节点实现人物在地面一定范围内的颜色高亮效果。 2.实现过程 实现原理是首先通过,SphereMask材质节点更具计算输出Mask值,其中在球体半径内的输入1,在外部的则…...

如何用自己的数据训练YOLOv5

如何训练YOLOv5 1. Clone the YOLOv5 repository and install dependencies: git clone https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt2. 整理数据,使其适配YOLO训练 Step1:Organize your dataset in the fo…...

【基础算法】数组相关题目

系列综述: 💞目的:本系列是个人整理为了秋招算法的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于代码随想录进行的,每个算法代码参考leetcode高赞回答和…...

MatBox—基于PyQt快速入门matplotlib的教程库

MatBox—基于PyQt快速入门matplotlib的教程库 __ __ _ _ _ _ _ _ _______ _ _ _ | \/ | | | | | | | | |(_)| | |__ __| | | (_) | || \ / | __ _ |…...

go channel使用

go语言中有一句名言&#xff1a; 不要通过共享内存来通信&#xff0c;而应该通过通信来共享内存。 channel实现了协程间的互相通信。 目录 一、channel声明 二、向channel发送数据 三、从channel读取数据 1. i, ok : <-c 2. for i : range c&#xff08;常用&#xff09…...

5. QtDesignStudio中的3D场景

1. 说明&#xff1a; 三维渲染开发是Design Studio的重要功能&#xff0c;且操作方便&#xff0c;设计效率非常高&#xff0c;主要用到的控件是 View3D ,可以在3D窗口中用鼠标对模型直接进行旋转/移动/缩放等操作&#xff0c;也可以为模型设置各种动画&#xff0c;执行一系列的…...

人工智能的几个研究方向

人工智能主要研究内容是&#xff1a;分布式人工智能与多智能主体系统、人工思维模型、知识系统、知识发现与数据挖掘、遗传与演化计算、人工生命、人工智能应用等等。 其中热门研究有以下几种。 一、计算机视觉 就包括图像识别&#xff0c;视频识别&#xff0c;具体应用有人…...

软件测试 - 常见的开发模型和测试模型

1.瀑布模型优点强调开发的阶段性, 强调早期计划及需求调查, 强调产品测试;缺点1. 由于瀑布模型是一种线型结构的模型, 也就意味着前一个阶段结束, 后一个阶段才能开始, 这就导致了风险往往会迟至后期的测试阶段才显露, 因而失去了及早纠正的机会.2. 瀑布模型中测试被后置, 导致…...

从零开始的机械臂yolov5抓取gazebo仿真(四)

Moveit与Gazebo联合仿真 上一篇博客已经将moveit!配置完毕&#xff0c;然而想要让moveit!控制gazebo中的机械臂&#xff0c;还需要进行一些接口的配置。现在我们有的功能包为sunday_description、sunday_moveit_config这两个功能包。且已经配置好xacro文件&#xff0c;本篇内容…...

C++修炼之筑基期第一层——认识类与对象

文章目录&#x1f337;专栏导读&#x1f337;什么是面向对象&#xff1f;&#x1f337;类的引入&#x1f337;什么是类&#x1f337;类的定义方式&#x1f337;类的访问限定符与封装&#x1f33a;访问限定符&#x1f33a;封装&#x1f337;类的作用域&#x1f337;类的实例化&a…...

IT 运营监控工具

在技术复杂性日益增加、业务竞争激烈的挑战以及消费者对服务中断接受度降低的世界中&#xff0c;IT 运营效率已成为增长、利润和成功的关键。IT 宕机的影响在几十年前威胁较小&#xff0c;现在意味着价值数百万美元的损失&#xff0c;有时甚至会损失各种规模的组织的业务和声誉…...

java线程之Thread类的基本用法

Thread类的基本用法1. Thread类的构造方法2. Thread的几个常见属性常见属性线程中断等待一个线程小鱼在上一篇博客详细的讲解了如何创建线程,java使用Thread类来创建多线程,但是对于好多没有相关经验的人来说,比较不容易理解的地方在于操作系统调度的执行过程. 我们通过下面代码…...

【js】多分支语句练习(2)

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大一在校生&#xff0c;web前端开发专业 &#x1f921; 个人主页&#xff1a;python学不会123 &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习…...

Redis与MySQL的双写一致性问题

Redis与MySQL的双写一致性问题更新缓存&#xff1f; 删除缓存&#xff1f;先更新缓存再更新数据库先更新数据库&#xff0c;再更新缓存先删除缓存再更新数据库先更新数据库&#xff0c;再删除缓存解决方案1. 重试2. 异步重试2.1 使用消息队列实现重试2.2 Binlog实现异步重试删除…...

Java基础:笔试题

文章目录Java 基础题目1. 如下代码输出什么&#xff1f;2. 当输入为2的时候返回值是多少?3. 如下代码输出值为多少?4. 给出一个排序好的数组&#xff1a;{1,2,2,3,4,5,6,7,8,9} 和一个数&#xff0c;求数组中连续元素的和等于所给数的子数组解析第一题第二题第三题第四题方案…...

spring三级缓存以及@Async产生循环引用

spring三级缓存以及Async产生循环引用spring三级缓存介绍三级缓存解除循环引用原理源码对应1、获取A&#xff0c;从三级缓存中获取&#xff0c;没有获取到2、构造A&#xff0c;将A置入三级缓存构造A(创建A实例)置入缓存3、注入属性&#xff0c;构造B扫描缓存实例的相关信息注入…...

【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(5)

目录 写在前面&#xff1a; 题目&#xff1a;P2036 [COCI2008-2009#2] PERKET - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 解题思路&#xff1a; 代码…...

【Unity3D】Unity3D中在创建完项目后自动创建文件夹列表

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 随着项目开发的体量增大&#xff0c;要导入大量的素材、UI、模…...

如何设计一个锂电池充电电路(TP4056)

这个是个单节18650锂电池的充电模块&#xff0c;这个是个18650的锂电池&#xff0c;18指的是它的直径是18mm&#xff0c;65指的是它的高度为65mm。这个18650电池的标称电压是3.7V&#xff0c;电池充满时电压为4.2V&#xff0c;一般电池电压越高也就代表它所剩的电量越大。这种锂…...

Spark了解

目录 1 概述 2 发展 3 Spark和Hadoop 4 Spark核心模块 1 概述 Apache Spark是一个快速、通用、可扩展的分布式计算系统&#xff0c;最初由加州大学伯克利分校的AMPLab开发。 Spark可以处理大规模数据处理任务&#xff0c;包括批处理、迭代式算法、交互式查询和流处理等。Spa…...

c++STL急急急

文章目录cSTL急急急vector头文件扩容过程用法&#xff1a;size/emptyclear迭代器begin/endfront/backpush_back() 和 pop_back()queue头文件用法循环队列 queue用法优先队列 priority_queue用法stack头文件deque头文件deque中控器&#xff1a;用法set头文件用法迭代器begin/end…...

【C++学习】模板进阶——非类型模板参数 | 模板的特化 | 分离编译

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 模板我们之前一直都在使用&#xff0c;尤其是在模拟STL容器的时候&#xff0c;可以说&#xff0c;模板…...

【C++】C++11新特性——可变参数模板|function|bind

文章目录一、可变参数模板1.1 可变参数的函数模板1.2 递归函数方式展开参数包1.3 逗号表达式展开参数包1.4 empalce相关接口函数二、包装器function2.1 function用法2.2 例题&#xff1a;逆波兰表达式求值2.3 验证三、绑定函数bind3.1 调整参数顺序3.2 固定绑定参数一、可变参数…...

ssm框架之spring:浅聊事务--JdbcTemplate

简介 JdbcTemplate 是 Spring 对 JDBC 的封装&#xff0c;目的是使JDBC更加易于使用&#xff0c;JdbcTemplate是Spring的一部分。JdbcTemplate 处理了资源的建立和释放&#xff0c;它帮助我们避免一些常见的错误&#xff0c;比如忘了总要关闭连接。他运行核心的JDBC工作流&…...

盘点Python那些简单实用的第三方库

文章目录前言关于本文使用 pip 命令下载第三方库1、phone 库&#xff08;获取手机号码信息&#xff09;2、geoip2 库&#xff08;IP 检测功能&#xff09;3、freegames 库&#xff08;免费小游戏&#xff09;4、jionlp 库&#xff08;解析地址信息&#xff09;5、pyqrcode 库&a…...

leetCode热题21-26 解题代码,调试代码和思路

前言 本文属于特定的六道题目题解和调试代码。 1 ✔ [160]相交链表 Easy 2023-03-17 171 2 ✔ [54]螺旋矩阵 Medium 2023-03-17 169 3 ✔ [23]合并K个排序链表 Hard 2022-12-08 158 4 ✔ [92]反转链表 II Medium 2023-03-01 155 5 ✔ [415]字符串相加 Easy 2023-03-14 150 6 …...

ChatGPT推出第四代GPT-4!不仅能聊天,还可以图片创作!

3月15日凌晨&#xff0c;OpenAI震撼发布了多模态预训练大模型 GPT-4。 根据官网发布的通告可以知道&#xff0c;GPT-4 实现了以下几个方面的飞跃式提升&#xff1a;强大的AI创作识图能力&#xff1b;文字输入限制提升至 2.5 万字&#xff1b;回答准确性显著提高&#xff1b;能够…...

二叉搜索树:AVL平衡

文章目录一、 二叉搜索树1.1 概念1.2 操作1.3 代码实现二、二叉搜索树的应用K模型和KV模型三、二叉搜索树的性能分析四、AVL树4.1 AVL树的概念4.2 AVL树的实现原理4.3 旋转4.4 AVL树最终代码一、 二叉搜索树 1.1 概念 二叉搜索树&#xff08; Binary Search Tree&#xff0c;…...