软件测试基础之软件缺陷处理

news2024/11/25 22:51:14

一、什么是缺陷

不满足用户确定需求、影响软件功能实现的问题、故障
缺陷就是人们通常所说的bug。

ex.一下哪一种选项不属于软件缺陷___。
A.软件没有实现产品规格说明所要求的功能
B.软件中出现了产品规格说明不应该出现的功能
C.软件实现了产品规格说明没有提到的功能
D.软件实现了产品规格说明书所要求的功能但因受性能限制而未考虑可移植性问题

答案:D

二、缺陷的识别

缺陷的产生原因

  • 人员(用户、设计、开发、测试、技术支持等)之间的沟通交流不够,交流上有误解或者根本不进行交流
  • 文档不完善甚至没有文档(尤其是国内中小软件企业)
  • 需求不断电变化
  • 参与人员技术能力上的局限
  • 程序设计本身有误
  • 软件复杂度大,缺陷很难避免(例如Windows、Word)
  • 工期短,任务重,时间压力大
  • 软件开发工具与系统软硬件的支持有局限

判断缺陷的依据

  • 通过参考文档来确认缺陷
  • 需求规格说明书
  • 概要设计、详细设计
  • 用户手册
  • ...
  • 通过了解软件行业标准、行业背景(或参考同类典型软件)来发现缺陷
  • 通过沟通来确认和识别缺陷(问开发人员、问需求人员、问用户... ...)

三、再现与优化缺陷

再现(又叫重现)与优化缺陷的必要性
优化缺陷并不是指优化缺陷本身,而是优化缺陷的再现步骤

为什么要再现与优化缺陷?
关于软件中“随机”出现的缺陷如何处理?

再现与优化缺陷的方法

  • 深入熟悉需求,从需求本身出发
  • 熟悉程序设计、从设计开发着手
  • 熟悉常用测试方法、手段、典型套路
  • 同一个缺陷用不同测试过程(含步骤、数据)多次验证,分析缺陷的现象与成因,找出规律和最简实现过程
  • 查找依赖关系和竞争条件
  • 不断积累处理缺陷的经验

四、怎样有效记录缺陷

保证重现缺陷

判断一个缺陷报告撰写好坏的简单方法:让非缺陷报告撰写者(技术人员)依据缺陷报告重现缺陷,如果能简单、迅速的重现缺陷,表明缺陷报告较好

分析故障——使用最少步骤重现缺陷

减少开发人员重复缺陷的时间
使开发人员更准确的定位缺陷

包含所有重现缺陷的必要步骤

测试人员假定常用的操作步骤开发人员不一定熟悉,省略了必要的步骤长处造成开发人员无法重现缺陷。

其他注意事项

方便阅读

举例:
概述:使用“记事本”仅保存“联通”二字后再打开该文件,出现乱码。
描述步骤:
1.点击“开始” → “程序” → “附件” → “记事本” 打开记事本软件;
2.仅输入“联通”二字,点击“文件” → 保存;
3.在打开的“另存为”对话框中保存文件后退出(文件名、保存位置任意);
4.打开保存的文件,出现乱码,不是“联通”二字。

注意自己的语气

举例:
概述:“记事本”中“另存为”对话框中默认文件后缀写成了“.txk”。
描述步骤:
1.点击“开始” → “程序” → “附件” → “记事本” 打开记事本软件;
2.仅输入“联通”二字,点击“文件” → 保存;
3.在打开的“另存为”对话框中,默认文件文件后缀应该是“.txt”,你们开发人员是不是用脚后跟考虑问题的,居然写成了“.txk”;

六、缺陷报告

缺陷报告是描述软件缺陷现象和重现步骤地集合。
软件缺陷报告Sottware Bug Report(SBR)或软件问题报告Software Problem Report(SPR)

缺陷报告的作用

1.缺陷报告是软件测试人员的工作成果之一,体现软件测试的价值
2.缺陷报告可以把软件存在的缺陷准确描述出来,便于开发人员修正
3.缺陷报告可以反映项目/产品当前的质量状态,便于项目整体进度和质量控制
4.软件测试缺陷报告是软件测试的输出成果之一,可以衡量测试人员的工作能力

缺陷报告的“5C”原则

  • 内容准确(Correct)
    每个组成部分的描述正确,不会引起误解
  • 步骤简洁(Concise)
    只包含必不可少的信息,不包括任何多余的内容
  • 内容清晰(Clear)
    每个组成部分的描述清晰,易于理解
  • 结构完整(Complete)
    包含重现该缺陷的完整步骤和其他本质信息
  • 风格一致(Consistent)
    按照一致的格式书写全部缺陷报告

缺陷报告的内容

缺陷的标题
缺陷的的基本信息:
1.测试的软件和硬件环境
2.测试的软件版本
3.缺陷的类型
4.缺陷的严重程度
5.缺陷的处理优先级
复现缺陷的操作步骤
缺陷的实际结果描述
期望的正确结果描述
注释文字和截取的缺陷图像

缺陷的二八定理

在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的缺陷,而系统测试又能找出其余缺陷中的80%,最后的4%的缺陷可能只有在用户大范围、长时间使用后才会暴露出来。

七、记录缺陷与缺陷报告

  • 使用较少的、必要的操作步骤确保缺陷能够重现
  • 记录缺陷时要使用专业术语、注意书写格式
  • 缺陷要言简意赅、尽量一个缺陷一个报告
  • 对于实在不可重现的缺陷也需要报告,并且尽快报告
  • 不能夸大缺陷的数量和缺陷的级别
  • 及时记录缺陷

八、缺陷的分类

按照严重程度分类、缺陷的优先级、缺陷的类型以及功能模块等进行分类

按严重程度

致命错误:如数据丢失、死机、系统崩溃
严重错误:如功能未完成,功能完成不正确
一般错误:如功能不完善,界面问题等
建议(轻微):测试人员认为怎么处理更好一些的问题

按照修改优先级

立即修改
在本版本修改
在产品发发布前修改
在发布版本中可以存在的问题

按照缺陷类型

功能、压力/负载、界面、兼容、易用、安装/卸载、安全

按照功能模块

功能模块1
功能模块2
功能模块3
功能模块4
......

缺陷报告的处理流程 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是抖音SEO,如何做好抖音短视频的SEO优化?

抖音SEO,全称是抖音搜索引擎优化,指的是在了解抖音搜索引擎自然排名机制及算法的基础上,对视频内容进行调整优化,让其排名靠前,从而增加用户点击的概率,达到排名和营销目的。 1、了解算法规则 每个平台都…

会员中心功能实现(小兔鲜儿)【Vue3】

会员中心 整体功能梳理和路由配置 整体功能梳理 个人中心 - 个人信息和猜你喜欢数据渲染我的订单 - 各种状态下的订单列表展示 路由配置(包括三级路由配置) 准备路由模版 <script setup> </script><template><div class"container">…

QML HTTP 请求

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 Web 开发中,实现与服务器的通信至关重要,其中 HTTP 便是最常用的方式之一。它是一种客户端 - 服务器协议,客户端向服务器发送请求,服务器则返回响应。常被用于在浏览器/客户端和 Web 服务器之间传输消…

一文秒懂HTTP协议到底是什么?原理?

目录 1.什么是http协议&#xff1f; 2.http协议的版本&#xff1f; 3.http文本框架 4.http请求报文 5.http报文格式 6.http响应报文 7.HTTP的状态码 8.HTTP首部介绍 9.什么是URL和URI&#xff1f; 10.CGI是什么&#xff1f; 1.什么是http协议&#xff1f; http&#…

嵌入式 C 语言程序数据基本存储结构

一、5大内存分区 内存分成5个区&#xff0c;它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 1、栈区(stack)&#xff1a;FIFO就是那些由编译器在需要的时候分配&#xff0c;在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。 ​…

【数据结构】八大排序详解

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f40c; 个人主页&#xff1a;蜗牛牛啊 &#x1f525; 系列专栏&#xff1a;&#x1f6f9;数据结构、&#x1f6f4;C &#x1f4d5; 学习格言&#xff1a;博观而约取&…

线性扫描寄存器分配算法介绍

线性扫描寄存器分配 文章目录 线性扫描寄存器分配1. 算法介绍2. 相关概念3. 算法的实现3.1 伪代码3.2 图示 参考文献 论文地址&#xff1a; Linear Scan Register Allocation ​ 我们描述了一种称为线性扫描的快速全局寄存器分配的新算法。该算法不基于图形着色&#xff0c;而…

20个互联网用户Python数据分析项目

这篇文章给大家整理了20个互联网用户数据分析的项目。所有收录的项目&#xff0c;进行了严格的筛选&#xff0c;标准有二&#xff1a; 1.有解说性文字&#xff0c;大家能知道每一步在干嘛&#xff0c;新手友好 2.数据集公开&#xff0c;保证大家可以在原文的基础上自行探索 更…

定长内存池设计ConcurrentMemoryPool

原理 还回来的内存用链表串联起来&#xff0c;称为自由链表 内存块自身进行链接&#xff0c;前四个字节存下一个的地址 结构 template<class T> class ObjectPool { public:T* New(){} private:char* _memory nullptr; //方便切割void* _freeList nullptr; };第一步…

ATF BL1 UFS初始化简单分析

ATF BL1 UFS初始化分析 1 ATF的下载链接2 ATF BL1 UFS 初始化简易流程图3 ATF BL1 ufs初始化简单过程分析3.1 调用过程3.2 hikey960_ufs_init3.3 dw_ufs_init3.3 ufs_init 以海思hikey960为例来介绍&#xff0c;简单介绍在ATF BL1阶段的初始化处理。 1 ATF的下载链接 https:/…

“解引用“空指针一定会导致段错误吗?

可能有些朋友看见这个标题第一反应是嵌入式的某些内存中,0地址也是可以被正常访问的,所以对0地址的解引用不会发生错误,但我要说的情况不是这个,而是指一个真正的空指针,不仅是c/c中的0,(void*)0,NULL,还有nullptr,一个真正的空指针. 在c语言中,想获得某结构体的成员变量相对偏…

HTTP 协议的基本格式和 fiddler 的用法

目录 一. HTTP 协议 1. HTTP协议是什么 2. HTTP协议的基本格式 HTTP请求 首行 GET和POST方法&#xff1a; 其他方法 经典面试题&#xff1a; URL Header(请求报头)部分 空行 ​HTTP响应 状态码总结: 二、Fiddler的用法 1.Fidder的安装 2.Fidder的使用 一. HTTP 协议 1. H…

netty学习分享(一)

TCP与UDP TCP 是面向连接的、可靠的流协议&#xff0c;通过三次握手建立连接&#xff0c;通讯完成时要拆除连接。 UDP是面向无连接的通讯协议&#xff0c;UDP通讯时不需要接收方确认&#xff0c;属于不可靠的传输&#xff0c;可能会出现丢包现象 端口号&#xff1a; 端口号用…

软考:中级软件设计师:文件管理,索引文件结构,树型文件结构,位示图,数据传输方式,微内核

软考&#xff1a;中级软件设计师: 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &#xff08;1…

数学运算1

正确答案&#xff1a;F 你的答案&#xff1a;E 参考答案&#xff1a;最大排列为100 1 99 2 98 3…51 49 50 所以和为999897…1(100-50)因为是一个圈所以&#xff0c;100和50相接&#xff0c;所以等于5000 知识点&#xff1a;数学运算

工作经验总结:RH850中SP、LP、PC寄存器间联系与入栈出栈操作简单整理

一、RH850系列中SP、LP、PC寄存器简介 SP&#xff1a;栈顶寄存器&#xff0c;保存最新栈顶的地址 LP&#xff1a;链接寄存器&#xff0c;保存函数跳转的地址&#xff08;当没发生调用子函数的操作时候&#xff0c;你可以通过单步调试发现&#xff0c;该寄存器的值不变&#x…

Golang-使用 gvm 进行版本控制

当你想为每个项目切换 go 版本时&#xff0c;gvm (Go Version Manager) 很方便。 这里&#xff0c;我将介绍“如何在Mac上安装gvm”和“如何使用gvm” 使用准备 仅适用于 Mac 的准备工作 按照MacOSX 要求中的说明执行以下命令。 xcode-select --install brew update brew …

JavaFx基础学习【一】:基本认识

一、介绍 JavaFX 是一个开源的下一代客户端应用平台&#xff0c;适用于基于Java构建的桌面、移动端和嵌入式系统。 它是许多个人和公司的共同努力的成果&#xff0c;目的是为开发丰富的客户端应用提供一个现代、高效、功能齐全的工具包。 二、JavaFx应用基本结构 想要开发一款…

浅谈医用IT隔离电源在医院特殊场所接地系统的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 【摘要】我们国家大部分医院的临床救治和确诊都是利用了医疗电气类设备和医用的医疗仪器&#xff0c;因此这些地方的接地问题应该引起我们的高度的重视。IT系统主要是利用了中性点没有直接接地的方式&#xff0c;所以可以减少电…

【【verilog 典型电路设计之加法器树乘法器】】

verilog 典型电路设计之加法器树乘法器 加法器树乘法器 加法器树乘法器的设计思想是“移位后加”&#xff0c;并且加法运算采用加法器树的形式。乘法运算的过程是&#xff0c;被乘数与乘数的每一位相乘并且乘以相应的权值&#xff0c;最后将所得的结果相加&#xff0c;便得到了…