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

【软件测试】对于测试中的bug,我们真正了解了吗?

目录

1.软件测试的生命周期

1.1.软件测试阶段流程

1.2.各流程的任务

2.什么是bug

2.1.bug的概念

2.2.怎么描述bug

2.3.bug的级别

2.4.bug的生命周期


1.软件测试的生命周期

在学习bug前,我们先来学习一下软件测试的生命周期,也就是测试人员进行测试的阶段,因而会测试出很多bug。而软件测试的生命周期贯穿软件的整个生命周期

1.1.软件测试阶段流程

下面这几步,就是软件测试的生命周期,也是测试需要经历的阶段

1.2.各流程的任务

(1)需求分析

要测试软件,就需要提前知道软件的需求是啥,才能更方便后续的测试任务和工作,主要有这三方面

  1. 用户角度:软件需求是否合理
  2. 技术角度:技术上是否可行,是否还有优化空间
  3. 测试角度:是否存在业务逻辑错误、冗余、冲突等问题

(2)测试计划

作为测试人员,我们要明确测试的时间。也就是需要指定测试计划,比如:

  1. 什么时候开发测试
  2. 什么时候结束测试
  3. 总共耗时多少

(3)测试设计

这个阶段,就需要参考需求文档、技术文档进行编写测试用例。对于测试用例,需要明确标注使用到的测试方法、测试工具和测试形式等

(4)测试执行

该阶段就是使用写好的测试设计对软件进行测试,尽可能对项目做到全面覆盖的测试

(5)上线

在项目测试结束阶段,就需要将项目发布到线上环境,测试人员全程跟踪并测试,实际的发布一般分为三个步骤:

  1. 沙盒:上线到企业内部的线上环境,仅供内部人员进行测试
  2. 小流量:只有部分线上真实的用户可以使用到,测试人员还需要在线上手动测试,观察是否有错误日志
  3. 全流量:这个阶段才是项目全部上线完成的阶段

(6)运行维护

对这个项目进行总结,测试人员需要演示产品/软件

2.什么是bug

这里介绍的bug,不仅仅是写代码时产生的bug,更是测试阶段发现的

2.1.bug的概念

(1)普通bug

⼀个计算机bug指在计算机程序中存在的⼀个错误(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault),这些bug使程序⽆法正确的运⾏。Bug产⽣于程序的源代码或者程序设计阶段的疏忽或者错误。

(2)对于测试来说的bug

  1. 当且仅当规格说明是存在的并且正确,程序于规格说明之间的不匹配才是错误
  2. 程序没有实现最终用户合理预期的功能要求时,就是软件错误

一句话就是:任何不符合用户产品需求的功能就是bug 

2.2.怎么描述bug

既然我们已经了解到什么是bug,那怎么将bug合理正确的描述给开发人员呢?

(1)描述bug的基本要素

  1. 问题出现的版本:比如使用某某浏览器打开某个网址,就需要描述该浏览器的版本号和网站的版本号
  2. 问题出现的环境:使用什么设备打开,就要描述该设备的环境,比如是windows某某版本等
  3. 问题出现的步骤:描述产生bug的步骤,方便后续开发人员复现bug
  4. 预期结果:如果没有产生bug的结果是什么样的
  5. 实际结果:产生了bug的时候结果是什么样的

(2)举例

我今天使用windows 8的电脑在 38浏览器中打开一个学习网址,但是画面只展示一般

1)出现问题的版本:38浏览器的版本号、学习网址的版本号

2)问题出现的环境:windows 8

3)问题出现的步骤:先是电脑连接上网络、打开浏览器、在导航栏输入网址域名回车、最后出现的bug

4)预期结果:应该是展示完整的页面

5)实际结果:只展示一半的页面

2.3.bug的级别

为什么会有bug级别,两个原因:一方面是评估程序员的开发能力,另一方面是给修复bug排序

(1)bug的基础等级定义为:崩溃、严重、一般、次要

在不同的公司,都有自己的一份“bug级别描述文档”,里面更加准确的定义了bug的等级

(2)出现的最严重bug级别一般为“严重”,这种bug都会马上进行处理;而对于“次要”级别的bug,一般是最后面才会进行处理,如果时间不够,就直接舍弃

2.4.bug的生命周期

对于bug来说,也是有生命周期的,如下流程图:

我们解释一下:

http://www.lryc.cn/news/384948.html

相关文章:

  • Packer-Fuzzer一款好用的前端高效安全扫描工具
  • 解决卸载TabX explorer软件后导致系统文件资源管理器无法正常使用问题
  • qt for android 使用打包sqlite数据库文件方法
  • MYBATIS大于等于、小于等于的写法
  • 基于堆叠长短期记忆网络 Stacked LSTM 预测A股股票价格走势
  • SpringCloud Alibaba Sentinel基础入门与安装
  • Arduino IDE下载、安装和配置
  • SOBEL图像边缘检测器的设计
  • Day35:2734. 执行字串操作后的字典序最小字符串
  • 【高考志愿】机械工程
  • ffmpeg将mp4转换为swf
  • 论文学习 --- RL Regret-based Defense in Adversarial Reinforcement Learning
  • 【Linux小命令】一文讲清ldd命令及使用场景
  • 自费5K,测评安德迈、小米、希喂三款宠物空气净化器谁才是高性价比之王
  • 1373. 二叉搜索子树的最大键值和
  • 基于java + Springboot 的二手物品交易平台实现
  • Shopee本土店选品有什么技巧?EasyBoss ERP为你整理了6个高效选品的方法!
  • 3D在线展览馆的独特魅力,技术如何重塑展览业的未来?
  • 基于SpringBoot的藏区特产销售平台
  • hudi系列-schema evolution(一)
  • Redis-实战篇-缓存雪崩
  • 线性代数|机器学习-P18快速下降奇异值
  • 本地离线模型搭建指南-中文大语言模型底座选择依据
  • 【代码随想录】【算法训练营】【第51天】 [115]不同的子序列 [583]两个字符串的删除操作 [72]编辑距离
  • 24下半年软考集合!30s打破信息差!
  • 如何在Xcode中设置库路径
  • 小程序的基本使用
  • [保姆级教程]uniapp设置字体引入字体格式
  • 【Webpack】前端工程化之Webpack与模块化开发
  • 【Android】记录在自己的AMD处理器无法使用Android studio 虚拟机处理过程