05. 缺陷管理
2024年10月28日大约 12 分钟
05. 缺陷管理
- 能够说出软件缺陷判定标准
- 能够说出项目中缺陷的管理流程
- 能够使用Excel对于缺陷进行管理
- 能使用工具管理缺陷
1. 缺陷介绍
1. 缺陷定义
软件在使用过程中存在的任何问题都叫软件的缺陷,简称bug
- 从产品内部看:软件缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题
- 涵盖了在软件开发周期中的各个阶段,如需求分析、设计、编码、测试等,可能出现的各种错误和不完善之处
- 从产品外部看:软件缺陷是系统所需要实现的某种功能的失效或违背
- 意味着软件在运行过程中未能按照预期执行其功能,或者执行结果与用户的需求存在偏差
2. 缺陷判定标准
多功能、少功能、功能错误、隐形功能错误、不易使用
1.软件未实现需求(规格)说明书中明确要求的功能 – 少功能
- 软件未达到需求产品说明书表明的功能
- 意味着软件没能实现或部分实现文档中指定的功能或特性
- 软件未达到需求产品说明书表明的功能
2.软件实现的功能超出需求(规格)说明书指明的范围 – 多功能
- 软件的功能超出了需求产品说明书指明的范围
- 软件包含了文档中未提及或不需要的功能或行为,这可能导致用户困惑或不必要的复杂性
- 软件的功能超出了需求产品说明书指明的范围
3.软件出现了需求(规格)说明书中指明不应该出现的错误 – 功能错误
- 软件出现了需求产品说明书指明不会出现的错误
- 软件在运行时产生了文档中明确指出不应该发生的错误或异常情况
- 软件出现了需求产品说明书指明不会出现的错误
4.软件未实现需求(规格)说明书中虽未明确指明但应该实现的要求 – **隐性功能错误 **
- 软件未达到需求规格说明书虽未指明但应该达到的目标
- 通常指的是软件的隐含需求或期望,例如性能、安全性、稳定性等,虽然未在文档中明确,但用户或市场通常期望软件能够达到这些标准 (如支付超时SKU回库存……)
- 软件未达到需求规格说明书虽未指明但应该达到的目标
5.软件难以理解,不易使用,运行缓慢,用户体验不好 – 不易使用
- 软件测试人员认为软件难以理解、不易使用、运行速度慢、或者最终用户认为不好
- 涉及到软件的用户体验和质量方面,即使功能正确实现,但如果软件难以使用或效率低下,它仍然被认为是存在缺陷的
- 软件测试人员认为软件难以理解、不易使用、运行速度慢、或者最终用户认为不好
## 软件缺陷示例
- 软件未达到软件需求产品说明书表明的功能:
计算器产品说明书明确表明该计算器将准确无误地执行加、减、乘、除运算。然而,在测试过程中,测试人员或用户发现当按照正常操作输入一个数值后,按下"+"号,再输入另一个数值,最后按下"="号时,计算器并没有给出预期的计算结果,而是没有任何反应。这明显违反了产品说明书中声明的功能。
- 软件出现了软件需求产品说明书指明不会出现的错误:
计算器产品说明书明确指出该计算器在使用过程中不会出现崩溃、死锁或停止反应的情况。但在实际测试中,测试人员发现当用户随意按、敲键盘后,计算器突然停止接受输入或完全失去了反应。这种异常情况明显违反了说明书中的规定。
- 软件的功能超出了软件需求产品说明书指明的范围:
在进行计算器功能测试时,测试人员发现该计算器除了提供加、减、乘、除的基本运算功能外,还意外地包含了求平方根的运算功能。然而,这一功能在计算器的产品说明书中并没有提及或规定,因此它超出了说明书指明的功能范围。
- 软件未达到软件需求产品说明书未指明而应该达到的目标:
在测试过程中,测试人员发现当计算器电池电量不足时,会导致计算结果不准确。尽管这一情况在计算器产品说明书中没有明确指出,但作为一个合格的电子产品,它应该能够在电量不足时提供适当的提示或采取其他措施来确保计算的准确性。因此,这可以视为计算器未达到虽未指明但应该达到的目标。
- 软件测试人员认为软件难以理解、不易使用、运行速度慢,或者最终用户认为不好:
在测试和用户反馈中,测试人员或最终用户提出了一些关于计算器易用性和用户体验的问题。例如,有用户反映计算器的按键太小,容易误按;显示屏在强光下难以看清;在某些操作下,计算器的响应速度过慢等。这些问题虽然没有直接违反产品说明书的规定,但确实影响了用户对计算器的整体满意度和使用体验。
3. 缺陷产生原因
从开始到上线的任何环节出现问题都会产生缺陷 (木桶效应)
- 需求阶段:需求描述不易理解、有歧义、错误等
- 设计阶段:设计文档存在错误或者缺陷
- 编码阶段:代码出现错误
- 运行阶段:软硬件系统本身故障导致软件缺陷
4. 缺陷生命周期
- 缺陷生命周期
- 注入bug -> 发现bug -> 清除bug (有可能会注入新的bug)
- 回归测试
- 常规项⽬回归:项⽬本次发布新增2个模块,最基本要测新增模块功能及新增模块关联的旧模块
- ⾮常规项⽬(银⾏、部队、航天):新增功能,必须全部复测
- 回归bug
- 上⼀个版本发现的缺陷,开发修复完毕,在下个版本进⾏重新验证
5. 缺陷核心内容
缺陷核心内容 | 描述 |
---|---|
1.缺陷的标题 | 描述缺陷的核心问题 |
2.缺陷的预置条件 | 缺陷产生的前提 |
3.缺陷的复现步骤 | 复现缺陷的过程 |
4.缺陷的预期结果 | 希望得到的结果 |
5.缺陷的实际结果 | 实际得到的结果 |
6.缺陷的必要附件 | 图片、日志等信息(证据) |
6. 缺陷提交要素
缺陷报告编号
- 缺陷的唯一性标志
严重程度(给产品看)
- 严重(S1):主功能
- 一般(S2):次要功能
- 微小(S3):易用性、界面
- 建议(S4):建议性问题
缺陷优先级(给研发看)
- Priority 0:24小时之内解决
- Priority 1:发布前必须修复
- Priority 2:可以在下一个版本中修复
- Priority 3:建议
Bug类型
- 代码错误
- 兼容性问题
- 设计缺陷
- 性能问题
缺陷状态
- New: 新建
- Open: 打开
- Closed: 关闭
- Postponed: 延期
7. 缺陷优先级划分
- P0
- 冒烟正向业务用例
- P1
- 冒烟逆向业务用例
- 单功能正向
- P2
- 单功能逆向
- UI布局
- P3
- 建议
8. 缺陷类型
- 功能错误、界面(UI)错误、兼容性、数据(数据库)、易用性、改进、建议、架构
## 软件缺陷的表现形式
1. 功能缺陷
- 功能、特性没有实现或部分实现,导致软件无法完成预期的任务。
- 设计不合理,功能特性不明确,逻辑不清楚或存在矛盾,使得用户难以理解或使用软件。
2. 性能缺陷
- 产品实际性能与需求规格说明书所规定的性能指标不一致,如响应时间慢、吞吐量低等。
- 软件运行出错,包括运行中断、系统崩溃、界面混乱等,影响用户体验和软件的稳定性。
3. 数据缺陷
- 数据不正确,如计算结果错误、数据录入错误等。
- 数据精度不够,无法满足特定场景下的精度要求。
- 数据不完整,缺少必要的字段或信息。
- 数据格式不统一,导致数据交换或共享时出现问题。
4. 易用性缺陷
- 用户界面设计不合理,导致用户难以理解或使用软件。
- 软件操作流程繁琐,不符合用户的使用习惯。
- 软件响应时间过长,用户需要等待较长时间才能得到结果。
5. 用户体验缺陷
- 软件界面不美观,影响用户的视觉体验。
- 软件存在不必要的弹窗或广告,干扰用户正常使用。
- 软件在特定环境下(如弱光环境)使用效果不佳。
6. 兼容性问题
- 软件与特定硬件或操作系统不兼容,导致无法正常运行。
- 软件与其他软件或工具集成时出现问题,如数据格式不匹配、接口不兼容等。
7. 安全性缺陷
- 软件存在安全漏洞,可能被黑客利用进行攻击或数据窃取。
- 软件的权限管理不当,可能导致未授权访问或数据泄露。
8. 文档缺陷
- 软件的用户手册、帮助文档等存在错误或遗漏,导致用户无法正确理解或使用软件。
- 软件的需求规格说明书、设计文档等与实际实现不一致,给开发、测试和维护带来困难。
2. 缺陷编写
1. 缺陷报告示例
尤其要关注缺陷的标题,让人能看懂(详见下章节)
2. 缺陷跟踪流程
提交缺陷 -> 验证缺陷 -> 关闭缺陷
3. 提交缺陷注意事项
- 可重现
- 缺陷一定是可以复现的
- 唯一性
- 一个缺陷上报一个问题
- 规范性
- 符合公司或者项目要求
4. 缺陷编写规范
- 准确
- 描述的信息是正确的。
- 简洁易懂
- 描述简单容易理解。
- 具体
- 有细节且是真实特定的。
- 次序清晰
- 描述缺陷过程有条件,有先后顺序。
5. 使用Excel对于缺陷进行管理
缺陷标题
- 描述缺陷的核心问题
缺陷预置条件
- 缺陷产生的前提
缺陷复现步骤
- 复现缺陷的过程
预期结果
实际结果
严重程度
优先级
缺陷状态
指派人
缺陷类型
提交人
提交版本
1. 缺陷标题写法分析
- 分析缺陷标题作用 作用是什么?要达到什么效果?让人看明白哪里错了
- 分析缺陷标题写法
- 方式1
- 测试数据+执行结果(需求)
- eg:标题输入18位字符串;结果合法(需求:标题为15位字符串)
- 测试数据+执行结果(需求)
- 方式2
- 测试数据+执行结果(预期结果)
- eg:标题输入18位字符串;结果合法(预期:不合法)
- 测试数据+执行结果(预期结果)
- 方式3
- 测试数据+预期结果(执行结果)
- eg:标题输入18位字符串;预期不合法(实际:合法)
- 测试数据+预期结果(执行结果)
- 方式1
3. 缺陷管理工具
1. 禅道的介绍
特点: 国产、免费、开源、简单、轻量级,三管融合(产品管理、项目管理、质量管理)的项目管理工具
2. 禅道的特点
- 三权分立
- 产品部门: 构想者
- 研发部门: 执行者
- 测试部门: 保证者
- 四角协同
- 产品经理
- 项目经理
- 研发团队
- 测试团队
3. 禅道使用流程
- 详情见禅道系统使用演示: 网站:https://demo.zentao.net/user-login-L215Lmh0bWw=.html
4. 禅道私服搭建
- 宝塔安装禅道:https://www.zentao.net/book/zentaopms/299.html
禅道源码下载:https://www.zentao.net/download/zentaopms18.0-81998.html
- 访问链接:http://192.168.10.31:9001
- 用户名/密码:admin/123456
禅道关闭弱密码校验
5. 案例
1. 将以下用例通过禅道进行管理
用例编号 | 用例标题 | 项目/模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 | 实测结果 |
---|---|---|---|---|---|---|---|---|
qq_002 | 不合法(4位自然数) | P1 | 1、打开验证程序 | 1、输入账号 2、点击验证 | 账号:1234 | 不合法 | 不通过 | |
qq_003 | 不合法(12位自然数) | P1 | 1、打开验证程序 | 1、输入账号 2、点击验证 | 账号:123456789012 | 不合法 | 不通过 | |
tel_009 | 不合法(前缀为0开头的3位数字+其他正确) | 电话 | P1 | 1、打开电话验证程序 | 1、输入区号 2、输入前缀 3、输入后缀 4、点击验证 | 1、区号:123 2、前缀:034 3、后缀:1234 | 不合格 | 不通过 |
tel_010 | 不合法(前缀为1开头的3位数字+其他正确) | 电话 | P1 | 1、打开电话验证程序 | 1、输入区号 2、输入前缀 3、输入后缀 4、点击验证 | 1、区号:123 2、前缀:134 3、后缀:1234 | 不合格 | 不通过 |
title_001 | 不合法(长度为0) | 标题 | P1 | 打开验证程序 | 1、输入标题 2、点击验证 | 标题:为空 | 不合法 | 不通过 |
qq_001 | 合格(6位自然数) | P0 | 打开验证程序 | 1、输入QQ号 2、点击验证 | 123456 | 合格 | 不通过 | |
file_003 | 输出M和L(第一列非A或B,第二列是非数字) | 文件 | P1 | 打开验证程序 | 1、输入第一列 2、输入第二列 3、点击验证 | 1、第一列:C 2、第二列:a | 输出:M、L | 不通过,只输出L |
ATM_004 | 取款失败(取款金额错误) | ATM | P1 | 1、打开程序 2、银行卡余额为100000000 | 1、插入银行卡 2、输入密码 3、选择取款 4、输入取款金额 | 卡:银行卡 密码:正确密码 取款金额:150 | 取款失败,提示:错误,取款金额必须为100的整数倍,单次取款最大限制5000。 | 不通过 |