**
一、 软件缺陷
**
1、软件缺陷
BUG
- Bug这 个词在计算机世界表示计算机程序中的错误或者 疏漏,它们会使程序计算出莫名其妙的结果,甚 至引起程序的崩溃。
缺陷的识别
什么是缺陷
- 不符合设计要求 • 不满足用户确定需求
注意 两个观点 • 有些问题看似错误但不是缺陷 • 有些问题看似正确但却是缺陷
产生缺陷的原因
01、人员之间的沟通交流不够,交流 上有误解或者根本不进行交流
02、文 档不完善
03 、需求不断的变化
04、 参 与人员的过度自信
05、 程序设计本身有错误
06 、软 件复杂性
07 、工期短,任务重,时间压力大
08、软 件开发工具或系统软硬件自身含
有缺陷
如何确认缺陷
1、通过参考文档来确 认缺陷
2、了解软件产品的行业背景 (或参考同类典型软件)来发 现缺陷
3、通过沟通来确认 和识别缺陷
缺陷报告的用途是什么?
1、 记录缺陷
2、缺陷分类
3、缺陷跟踪
缺陷的分类
从哪些角度给缺陷分类?
1、按问题引出不同
2、按功能(模块)
3、按缺陷的严重程度
• 影响进度的问题
• 死机
• 功能问题
• 界面问题
• 建议
4、按修复缺陷的优先级
缺陷报告的分类
• 一、按处理意见分类
• 已解决的
• 不是问题
• 无法修复
• 延迟解决
• 重复bug
• 无法复现
二、 按缺陷所处状态分类
• 待确认的
• 新提交的
• 已分配的
• 问题未解决的
• 待返测的
• 已关闭的
缺陷报告的处理流程
提交缺陷报告
返测报告
分配缺陷报告
处理缺陷报告
关闭缺陷报告 返测通过
关于处理缺陷
• 注意缺陷报告的处理成本
• 修改缺陷要量力而行
• 关注被推迟修改的缺陷
• 如果决定据理力争就一定要赢
二、软件质量
什么是软件质量
软件质量
• 经典的“软件质量”定义:软件质量特性的总和,软件满足规定或潜在用户需求的能力。 简单的说,软件质量就是客户的满意度。
软件测试与软件质量
• 软件质量与软件过程的关系
• 软件质量:
- 软件产品的特性可以满足用户的功能、性能需求的能力。 • 软件过程:软件生命周期中的活动,一般包括软件需求分析、软件设计、软件编码、 软件测试、交付、安装和软件维护。 • 过程决定质量,软件过程决定软件质量,软件质量是在软件开发过程中逐渐建立起来 的。 • 软件过程的优劣决定了软件质量的高低,好的过程是高效高质量的前提。人员和过程 是决定软件质量的关键因素,高质量的人员和好的过程应该得到好的产品。
• 软件测试与软件过程的关系
• 在软件过程中注意把握测试的对象
• 软件测试在软件生存周期中的位置
• 软件测试在软件生存周期中占有非常重要的位置,是对软件规格说明、设计和编码 的最后终审。
• 软件测试与软件质量的关系
• 软件测试是软件质量保证的重要手段,是规约、设计和编码的最终检查
软件质量特性
• 功能性:
- 软件在指定条件下使用时,满足用户明确和隐含需求的功能的能力
• 可靠性:
- 软件在指定条件下使用时,维持规定的性能级别的能力。
• 易用性:
- 在指定使用条件下,产品被理解、 学习、使用和吸引用户的能力
• 效率性:
- 在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力
• 可维护性:
- 软件可被修改的能力。修改可能包括修正、改进或软件对环境、需求和功能 规格说明变化的适应
•可移植性:
- 软件从一种环境迁移到另一种环境的能力 • 适应性:适应不同平台
质量管理体系
• ISO:
• CMM:
• CMMI:
• CMM的五个等级
• 初始级(等级1):
- 软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经 过定义的,成功依赖于个人的努力。
• 可重复级(等级2):
- 已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪 律已经就位,使具有类似应用的项目,能重复以前的成功。
• 已定义级(等级3):
- 管理活动和工程活动两方面的软件过程均已文档化、标准化、并集成到 组织的标准软件过程。全部项目均采用供开发和维护软件的组织标准软件过程中的一个经批准 的剪裁本。
• 已管理级(等级4):
- 已采集详细的有关软件过程和产品质量的度量。无论软件过程还是产品 均得到定量了解和控制。
• 优化级(等级5):
- 利用来自过程和来自新思想、新技术先导性试验的定量反馈信息、使持续 过程改进成为可能。