【测试开发篇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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/1478.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Keil5安装和使用小记

随着keil版本的更新,一些使用问题一随之产生。本文针对安装目前最新版本keil软件和使用问题做一些总结。 目录1 Keil5下载&安装1.1 官网下载链接1.2 软件安装1.2.1 安装说明1.2.2 关于 51 和 ARM 共存的问题1.3 软件破解2 pack包安装 & 破解2.1 下载2.2 安装…

智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)

摘要:智能生活垃圾检测与分类系统用于日常生活垃圾的智能监测与分类,通过图片、视频和摄像头识别生活垃圾,对常见的可降解、纸板、玻璃、金属、纸质和塑料等类别垃圾进行检测和计数,以协助垃圾环保分类处理。本文详细介绍基于YOLO…

找一找马里奥-第14届蓝桥杯STEMA测评Scratch真题精选

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第110讲。 蓝桥杯选拔赛现已更名为STEMA,即STEM 能力测试,是蓝桥杯大赛组委会与美国普林斯顿多…

《Linux的权限》

本文主要对linux的一些基本权限进行讲解 文章目录前言Linux权限(1)权限的概念(2)linux下用户分类(root,普通)(3)linux的文件属性文件属性的分类文件权限修改文件权限1、chmod2、chown和chgrp3、fiile权限的三个重要的问题第一个问…

Java面向对象:接口的学习

本文介绍了Java中接口的基本语法, 什么是接口, java中的接口 语法规则, 接口的使用,接口的特性,如何实现多个接口,接口间的继承,以及抽象类和接口的区别 Java接口的学习一.接口的概念二.Java中的接口1.接口语法规则2.接口的使用3.接口的特性4.实现多个接口5.接口间的继承三.抽象…

C++线程池理解

线程池基本信息 线程池是一种结合池化思想衍生出来的一种线程管理及使用的方案 其主要针对服务器端多线程场景下,服务器频繁接收请求,每个请求都分配一个单独的线程去处理。 使用线程的开销: 创建和销毁线程调度线程 线程池主要解决的核…

你是真的“C”——结构体中鲜有人知的“秘密”

你是真的“C”——结构体中的精髓剖析【内存对齐】 【位段】 😎前言🙌结构体内存对齐:😊结构体内存对齐存在的意思是什么?😘内存对齐例子详细剖析:😘结构体中的位段:&…

基于Vue+Vue-cli+webpack搭建渐进式高可维护性前端实战项目

本文是专栏《Vue SpringBoot前后端分离项目实战》的实战第一篇,将从Vue脚手架安装开始,逐步带你搭建起一套管理系统所需的架构。当然,在默认安装完成之后,会对文件目录进行初步的细化拆分,以便后续功能迭代和维护所用…

ChatGPT没有API?OpenAI官方API带你起飞

目录ChatGPT没有API?OpenAI官方API带你起飞安装 OpenAI 的 API 库包装个函数包装个UIAPI 调不通怎么办?ChatGPT没有API?OpenAI官方API带你起飞 前段时间ChatGPT爆火,OpenAI 的 GPT API也被大家疯狂调用, 但其实这个AP…

超详细的堆排序,进来看看吧。

1.堆的基本概念1.1什么是堆堆是一种叫做完全二叉树的数据结构,1.2大堆和小堆大堆:每个节点的值都大于或者等于他的左右孩子节点的值小根堆:每个结点的值都小于或等于其左孩子和右孩子结点的值1.3完全二叉树节点之间的关系leftchild parent*2 1rightchild parent*…

string类(上)

string类(上)1.标准库中的string类2.string类对象的常见构造①string()②string(const char* s)③string(size_t n,char c)④string(const string&s)⑤string(const string& str,size_t pos,size_t lennpos)⑥string(const char* s,s…

【基于协同过滤算法的推荐系统项目实战-2】了解协同过滤推荐系统

本文目录1、推荐系统的关键元素1.1 数据1.2 算法1.3 业务领域1.4 展示信息2、推荐算法的主要分类2.1 基于关联规则的推荐算法基于Apriori的算法基于FP-Growth的算法2.2 基于内容的推荐算法2.3 基于协同过滤的推荐算法3、推荐系统常见的问题1、冷启动2、数据稀疏3、不断变化的用…

java 每日一练 (9)

文章目录1. 单选2. 编程1. 单选 1. 下面程序的输出是:() A : FmNwxy B :fmnwxy C :wxyfmn D : Fmnwxy 答案 : D , 这里主要考察 toUpperCase 和 replace 方法 , 注意点 : toUpperCas…

动态规划-基础(斐波那契数、爬楼梯、使用最小花费爬楼梯、不同路径、不同路径II、整数拆分、不同的二叉搜索树)

动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的。动态规划问题,五步走:状态定义&am…

【数据结构】双向链表

🚀write in front🚀 📜所属专栏: 初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是…

海思SD3403/SS928V100开发(7)mcp2515-SPI转CAN驱动开发

1. 前言 需求: 需要一路can进行收发 分析: 根据目前使用较多的方案是使用主控端SPI接口 接入MCP2515芯片进行CAN协议转换 硬件: MCP2515->SPI2->SS928 2. Uboot开发 2.1 pinmux复用配置 2.1.1 修改uboot参数表 路径: osdrv/tools/pc/uboot_tools/ SS928V100…

Android 进程间通信机制(三) 系统进程与应用进程通信

一. 概述 Android中有一个重要的系统进程(system_server),运行着系统中非常重要服务(AMS, PMS, WMS等), 针对Activity而言,系统进程需要不断地调度Activity执行,管理Activity的状态; 每一个APK都需要运行在一个应用进程中&#xf…

【动态规划】最长上升子序列(单调队列、贪心优化)

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

jvm-题库

1、JVM内存模型 JVM内存区域总共分为两种类型 线程私有区域:程序计数器、本地方法栈和虚拟机栈 线程共享区域:堆(heap)和方法区 特征 线程私有区域:依赖用户的线程创建而创建、销毁而销毁,因用户每次访问都…

带头双向循环链表

在前面我们学习了单链表,发现单链表还是有一些不够方便,比如我们要尾插,需要遍历一遍然后找到它的尾,这样时间复炸度就为O(N),现在我们引入双向带头链表就很方便了,我们先看看它的结构。通过观察,我们发现一…