软件缺陷
1. 软件缺陷的定义
IEEE 1983 of IEEE Standard 729中对软件缺陷作了一个标准的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
因此软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的需求。
2. 软件缺陷的表现
- 功能,特征没有实现或部分实现
- 设计不合理,功能特征不明确,逻辑不清楚或存在矛盾
- 产品实际结果与预期结果不一致
- 没有达到需求规格说明书所规定的性能指标
- 运行出错,包括运行中断,系统崩溃,界面混乱
- 数据不正确,精度不够,不完整或格式 不统一
- 用户不能接受的其他问题,如存取时间过长,界面不美观
- 硬件或系统软件上存在其他问题
3. 软件缺陷示例
-
软件未达到需求规格说明书表现的功能
计算器说明书一般声称该计算器将准确无误地进行加、减、乘、除运算。如果测试人员或用户选定了两个数值后,随意按下了“ ”号键,结果没有任何反应。
-
软件出现了规格说明书指明不会出现的错误
假如计算器说明书指明计算器不会出现崩溃、死锁或者停止反应,而在用户随意按、敲键盘后,计算器停止接受输入或没有了反应
-
软件的功能超出了需求规格说明书指明的范围
若在进行测试时,发现除了规定的加、减、乘、除功能之外,还能够进行求平方根的运算,而这一功能并没有在说明书的功能中规定。
-
软件未达到需求规格说明书未指明而应该达到的目标
若在测试过程中发现,因为电池没电而导致了计算不正确,但软件需求规格说明书未能指出在此情况下应如何进行处理。
-
软件测试人员认为软件难以理解、不易使用、运行速度慢、或者最终用户认为不好
测试人员或最终用户发现计算器某些地方不好用,比如,按键太小、显示屏在亮光下无法看清等。
4. 软件缺陷的信息
软件的缺陷信息有:
缺陷ID 唯一的缺陷ID,可以根据该ID追踪缺陷
**缺陷状态 ** 缺陷状态指缺陷通过一个跟踪修复过程的进展情况
缺陷标题 描述缺陷的标题
缺陷的严重程度 对软件产品的影响程度,分致命、较严重、严重、一般、低
缺陷的优先级 缺陷修 复的先后顺序,即哪些缺陷优先修正,哪些稍后修正
缺陷所属模块 缺陷所属的项目和模块,要能较精确的定位至模块
缺陷记录者 提交缺陷的人员姓名
缺陷提交时间 缺陷提交的时间
缺陷处理人 处理缺陷的处理人
处理结果描述 对处理结 果的描述, 描述处理情况和代码修改说明
缺陷处理时间 缺陷处理的时间
缺陷验证人 对被处理缺陷验证的验证人(回测者)
验证结果描述 对验证结果的描述:(通过、不通过)
缺陷详细描述 缺陷的重现步骤
缺陷环境说明对测试环境的描述
必要的附件如涉及到附件的或错误现象的图片等
4.1 缺陷状态
缺陷状态:打开、已修复、关闭、拒绝、重复、重新打开、推迟、保留、不能重现;
a)打开:问题还没有解决,确认“提交的缺陷”,等待处理,如新报的缺陷;
b) 已修复:已被开发人员检查、修复过的缺陷,通过单元测试,认为已经解决但还没有被测试人员验证;
c) 关闭:测试人员验证后,确认缺陷不存在之后的状态;
d)拒绝:开发人员认为不是缺陷;
e) 重复:开发人员认为此缺陷与某打开的缺陷重复;
f)重新打开: 测试人员验证后,确认缺陷仍然存在后的状态;
g) 推迟:这个软件缺陷可以在下一-个版本中解决;
h)保留: 由于技术原因或者第三方软件的缺陷,开发人员不能修复的缺陷;
i) 不能重现:开发人员不能再现这个缺陷,需要测试人员确认缺陷再现的步骤;
4.2 缺陷严重程度
按照CMM5,缺陷级别(严重等级)可分为3-5个等级,根据公司实际情况来决定缺陷级别的划分。
这里将缺陷划分为四级:致命、严重、一般、轻微。
致命
系统任何一一个主要功能完全失效,用户数据受到破坏,系统崩溃、悬挂、死机或者危机人身安全。
严重
系统的主要功能部分失效,数据不能保存,系统的次要功能完全丧失,系统所提供的功能或服务受到明显影响.
一般
系统的次要功能没有完全实现,但不影响用户的正常使用。
轻微
使操作者不方便或遇到麻烦,但它不影响功能的操作和执行。
4.3 缺陷优先级
1-Low 最低优先级。时间和资源允许时修正。
2-Medium 低优先级。不会延迟发布,但是会在以后修正这个错误。
3-High 中优先级。如果这个错误存在与系统中,会制约开发和测试的活动的进行,如果先前没有修复它,那么需要在发布前修复它。
4-VeryHigh 高优先级。错误对这套系统的能力产生严重的影响。
5-Urgent 最高优先级。在这个错误影响下,系统几乎不可用。
5. 缺陷报告注意事项
尽量确保缺陷可以重现。
如果提交的缺陷无法重现,会影响开发人员的工作效率。
简洁、准确、完整
测试人员在提交缺陷报告时,要站在开发人员的角度上思考问题,要确保开发人员能迅速定位问题,而不会产生理解上的歧义。
一个缺陷一个报告