面试题:软件测试缺陷产生的原因有哪些?

软件缺陷产生的原因多种多样,一般可能有以下几种原因:

1.需求表述、理解、编写引起的错误。

2.系统架构设计引起的错误。

3.开发过程缺乏有效的沟通及监督,甚至没有沟通或监督。

4.程序员编程中产生的错误。

5.软件开发工具本身隐藏的问题。

6.软件复杂度越来越高。

7.与用户需求不符,即使软件实现本身无缺陷。

8.外界应用环境或电磁辐射导致的缺陷。

上述情况都可能产生缺陷,但常见的缺陷无外乎以下4种情況:

【1】遗漏

规定或预期的需求未体现在产品中,可能在需求调研或分析阶段未能将用户规格全部分析实现,也可能在后续产品实现阶段,未能全面实现。通俗而言,一是根本没记录需求,需求本身就遗漏了客户的原始需求;二是需求是齐备完整的,但在设计开发阶段,遗漏了某些需求。

【案例:OA 系统需求遗漏缺陷】

OA 系统需求调研时,用户提出需要实现发文回收功能,发出的通告信息可在对方末查收时撤销,需求开发工程师在需求调研阶段并未记录该需求,从而导致此需求遗漏。

另外一种情况是,需求开发工程师在需求规格说明书中已经详细阐明了需求,但开发工程师在实现时遗漏了。

【2】错误

需求是正确,但在实现阶段未將规格说明正确实现,可能在概要、详细设计时产生了错误,也可能是编码错误,即有此需求,但需求实现与用户期望不一致。例如,排序功能,用户期望的是按价格升序排列,实现时却是降序排列。

【案例:HTML代入注入错误】

OA系统中添加图书类别时,类别名称揄入 HTML 代码,系统未做安全性防御,未能屏蔽该代码,从而导致成功添加对应代码功能,如图5-1所示。

面试题:软件测试缺陷产生的原因有哪些?_第1张图片

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

【3】冗余

需求规格说明并未涉及的需求被实现,即用户未提及或无需的需求,在被测对象中得到了实现,如用户未提及查询结果分类显示,但在实际实现中,却以不同类别进行了显示。

一般而言,冗余功能从用户体验角度来看,如果不影响正常的功能使用,则可以保留,除非存在较大应用风险。

【4】不满意

除上述遗漏、 错误、冗余3种常见缺陷类型外,用卢对实现不满意亦可称为缺陷。例如,针对中老年人的系统在设计开发过程中,采用了时尚前卫的界面、细小隽秀的字体,导致终端用户不适应、看不清,这样即使所有需求都得到了正确的实现,但不符合用户使用习惯,也是一种缺陷。

在测试过程中,测试工程师需要时刻记住,功能再完美、界面再漂亮的系统,如果不是用户期望的,则该系统完全无效,所以测试过程中需处处以用户为基准,从需求角度出发。

【案例:用户体验缺陷】

图 5-2所示是用户通过“我的办公桌”流程链接跳转后的显示界面,在图中可以看到:“请注意查看待办流程:请假申请:[2006-01-01 04:37:37]”显示时出现了不恰当的换行, 04:37被错误换行,此种类型的错误即可认为是用户体验方面的缺陷。

面试题:软件测试缺陷产生的原因有哪些?_第2张图片

你可能感兴趣的:(软件工程师,程序员,互联网,软件测试,互联网,职场,java,就业)