BUG产生的原因那么多,这四个最常见!_开发产生bug的原因-程序员宅基地

技术标签: 缺陷类型  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用户体验缺陷

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43802541/article/details/85005054

智能推荐

IntelliJ IDEA 中自动生成 serialVersionUID 的方法_idea自动生成serialversionuid-程序员宅基地

文章浏览阅读2.2k次。幸运的是,IntelliJ IDEA 提供了一种自动生成 serialVersionUID 的方法,可以帮助我们简化这个过程。通过使用 IntelliJ IDEA 的自动生成功能,我们在类的定义行上右键单击并选择 “Generate”,然后选择 “Serializable class”,IntelliJ IDEA 将自动生成 serialVersionUID 字段。生成的 serialVersionUID 是基于类的结构和成员的哈希值计算得出的,因此在类的结构发生变化时,生成的值也会相应地发生变化。_idea自动生成serialversionuid

java智慧导诊系统源码,可应用于微信线上挂号、互联网医院、区域平台-程序员宅基地

文章浏览阅读85次。智慧导诊针对具体医院业务场景可接入科室介绍,专家介绍,门诊安排,就诊需知, 科室位置等,患者选择科室后可直接完成挂号。智慧导诊系统按照人体的性别差异,设计了男性/女性两种3D立体模型,用于病症库与自助导诊之间数据信息的读取与交互,在软件病症库中,将不同患者的常见病症进行分类整合,患者可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室,为患者提供直观就医指导,减少导诊台工作量。4、根据患者提供的信息,会根据情况提供相关建议,并最终推荐就诊的科室。1)实现患者自助、正确的导诊,提高挂号窗口的速度;

设置vim 显示行号及快速定位_vim显示行号-程序员宅基地

文章浏览阅读990次。【代码】设置vim 显示行号及快速定位。_vim显示行号

MATLAB——生成周期序列_用 matlab 绘制周期矩阵序列,周期为 n ,每个周期内非零值点数为2m+1-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏7次。MATLAB——绘制离散周期信号_用 matlab 绘制周期矩阵序列,周期为 n ,每个周期内非零值点数为2m+1

在ncnn上把玩mobileNet_ncnn mobilenet-程序员宅基地

文章浏览阅读1.6w次。ncnn是腾讯优图最近开源的适合移动端的深度学习框架。mobileNet是谷歌在2017年4月份发表的论文MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications中提出的网络。_ncnn mobilenet

网络分层及三次握手-程序员宅基地

文章浏览阅读386次,点赞9次,收藏7次。在传输数据层要先建立连接 websocket:双工。通信过程中链路会发生转换,但是网络层寻址是不变的。2个地址:ip:逻辑地址;真正一帧的内容:1460,tcp就要分段。20个头部 1500个字节-20-20。cdn&dns(包括cdn)的原理。tcp:安全 udp:快 丢就丢了。,dhcp:动态主机分配协议。具体的seq ack 及过程。每层协议指的就是约定和规范。数据传输 服务器如何响应。ip地址不变,mac会变。传输层:tcp/udp。tcp3次握手4次挥手。

随便推点

ultralytics的YOLOv8改为自用版本_from ultralytics.utils.plotting import annotator, -程序员宅基地

文章浏览阅读944次。由于需要用pyqt给yolov8做一个界面,而ultralytics一层嵌一层,不是很好用,所以对它的这个源码进行精简,具体代码我放到了这里,ultralytics使用的版本是8.0.54。具体代码如下,需要根据自己的情况来修改data的配置文件以及权值文件,在代码的49和50行。_from ultralytics.utils.plotting import annotator, colors, save_one_box modul

c++陈维兴第三版3.35_C++面向对象程序设计教程第3版—陈维兴,林小茶课后习题答案...-程序员宅基地

文章浏览阅读1.1k次。C++面向对象程序设计教程课后题答案1、1什么就是面向对象程序设计?面向对象程序设计就是一种新的程序设计范型、这种范型的主要特征就是:程序=对象+消息面向对象程序的基本元素就是对象。主要结构特点就是:第一,程序一般由类的定义与类的使用两部分组成;第二,程序中的一切操作都就是通过向对象发送消息来实现的。1、2什么就是对象?什么就是类?对象与类之间的关系就是什么?对象就是描述其属性的数据以及对这些数据..._c++面向对象程序设计 陈维兴,林小茶课后习题

uniapp怎么引入css_uni-app关于自定义iconfont 本地引入 和 线上引入的两种方式-程序员宅基地

文章浏览阅读993次。前言写这个文章原因就是 要考虑uni-app打包成ios或android -app调试离线情况下线上引入icon无法显示的原因;就是uni-app iconfont离线引入本地引入一、自定义iconfont阿里巴巴矢量图标库https://www.iconfont.cn,创建项目,查找图标加入购物车后添加进自建项目内二、线上引用 先点刷新提示红字后刷新在线代码,然后将代码复..._uniapp加载在线css

如何 vscode 文件标签栏多行显示?_vscode标签页多行-程序员宅基地

文章浏览阅读2.5k次,点赞4次,收藏8次。如何 vscode 文件标签栏多行显示?步骤:ctrl + shift + p输入:open workspace settings搜索:wrap勾选:wrap tabs设置之后 第二次打开vscode 还是回一行文件名显示解决办法是:将这个设置写入配置json文件ctrl + shift + p输入:open workspace settings(JSON)添加配置,配置可通过配置界面操作得到{ // add at end "workbench.editor_vscode标签页多行

列表是不是python数据类型的是_在Python中,一个列表中的数据类型是否可以不相同?(回答可以or不可以)...-程序员宅基地

文章浏览阅读299次。【单选题】Western Nebraska generally receives less snow than _______ Eastern Nebraska.【论述题】请同学们录制一段1分钟左右的课文朗读(中英文均可),给这段声音配上适合的背景音乐,将这两段音乐合成后保存为MP3格式,以学号后五位+姓名命名,以附件形式上传。【简答题】请把上面这首诗翻译成一首现代诗。注意从音韵、措辞、修辞手法等..._some students prefer to spend their time taking part time jobs

PyTorch: 点燃深度学习革新之火

PyTorch是一个开源的机器学习库,由Facebook的人工智能研究团队开发。它不仅支持强大的计算能力,而且提供了极大的灵活性和速度,这使得它非常适合进行研究原型的开发和生产部署。PyTorch的核心是提供了一个高度灵活的张量(Tensor)库,这与Numpy中的多维数组非常相似,但它可以在GPU上运行以加速计算。此外,PyTorch还提供了自动微分技术,即所谓的自动梯度计算,这对于深度学习模型的训练至关重要。随着深度学习技术的不断进步,对于专业性和高效性的需求也在不断提高。

推荐文章

热门文章

相关标签