BUG产生的原因那么多,这四个最常见!

软件缺陷产生的原因多种多样,一般可能有以下几种原因。
1.需求表述、理解、编写引起的错误。
2.系统设计架构引起的错误。
3.开发过程缺乏有效的沟通及监督,甚至没有沟通或监督。
4.程序员编程中产生的错误。
5.软件开发工具本身隐藏的问题。
6.软件复杂度越来越高。
7.与用户需求不符,即使软件实现本身无缺陷。
8.外界应用环境或电磁辐射导致的缺陷。
上述情况都可能产生缺陷,常见的缺陷分为以下4种情况。

1.遗漏
规定或预期的需求未体现在产品中,可能在需求调研或分析阶段未能将用户规格全部分析实现,也可能在后续产品实现阶段,未能全面实现。通俗而言,一是根本没记录需求,需求本身就遗漏了客户的原始需求,二是需求是齐备完整的,但在设计开发阶段,遗漏了某些需求。
【案例1 OA系统需求遗漏缺陷】
OA系统需求调研时,用户提出需要实现发文回收功能,发出的通告信息可在对方未查收时撤销,需求开发人员在需求调研阶段并未记录该需求,从而导致此需求遗漏。
另外一种情况是,需求开发人员在需求规格说明书中已经详细阐明了需求,但研发人员在实现时遗漏了。

2.错误
需求是正确,但在实现阶段未将规格说明正确实现,可能在概要、详细设计时产生了错误,也可能是编码错误,即有此需求,但需求实现与用户期望不一致。例如,排序功能,用户期望的是按价格升序排列,实现时却是降序排列。
【案例2 HTML代入注入错误】
OA系统中添加图书类别时,类别名称输入HTML代码,系统未做安全性防御,未能屏蔽该代码,从而导致成功添加对应代码功能,如图1所示。

在这里插入图片描述
图1 OA系统缺陷示例

此处的缺陷是一个典型的功能错误,可定性为安全性缺陷,系统因注入的HTML代码而显示出删除操作功能代码。

3.冗余
需求规格说明并未涉及的需求被实现,即用户未提及或无需的需求,在被测对象中得到了实现,如用户未提及查询结果分类显示,但在实际实现中,却以不同类别进行了显示。
一般而言,冗余功能从用户体验角度来看,如果不影响正常的功能使用,则可以保留,除非存在较大应用风险。

4.不满意
除了上述遗漏、错误、冗余3种常见缺陷类型外,用户对实现不满意亦可称为缺陷。例如,针对中老年人的系统在设计开发过程中,采用了时尚前卫的界面、细小隽秀的字体,导致终端用户不适应、看不清,这样即使所有需求都得到了正确的实现,但不符合用户使用习惯,也是一种缺陷。
在测试过程中,测试工程师需要时刻记住,功能再完美、界面再漂亮的系统,如果不是用户期望的,则该系统完全无效,所以测试过程中需处处以用户为基准,从需求角度出发。
【案例3 用户体验缺陷】
图2是用户通过“我的办公桌”流程链接跳转后的显示界面,在图中可以看到:“请注意查看待办流程:请假申请:[2006-01-01 04:37:37]”显示时出现了不恰当的换行,04:37被错误换行,此种类型的错误即可认为是用户体验方面的缺陷。
在这里插入图片描述
图2用户体验缺陷

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页