面试题:软件测试缺陷产生的原因有哪些?
软件缺陷产生的原因多种多样,一般可能有以下几种原因:
1.需求表述、理解、编写引起的错误。
2.系统架构设计引起的错误。
3.开发过程缺乏有效的沟通及监督,甚至没有沟通或监督。
4.程序员编程中产生的错误。
5.软件开发工具本身隐藏的问题。
6.软件复杂度越来越高。
7.与用户需求不符,即使软件实现本身无缺陷。
8.外界应用环境或电磁辐射导致的缺陷。
上述情况都可能产生缺陷,但常见的缺陷无外乎以下4种情況:
【1】遗漏
规定或预期的需求未体现在产品中,可能在需求调研或分析阶段未能将用户规格全部分析实现,也可能在后续产品实现阶段,未能全面实现。通俗而言,一是根本没记录需求,需求本身就遗漏了客户的原始需求;二是需求是齐备完整的,但在设计开发阶段,遗漏了某些需求。
【案例:OA 系统需求遗漏缺陷】
OA 系统需求调研时,用户提出需要实现发文回收功能,发出的通告信息可在对方末查收时撤销,需求开发工程师在需求调研阶段并未记录该需求,从而导致此需求遗漏。
另外一种情况是,需求开发工程师在需求规格说明书中已经详细阐明了需求,但开发工程师在实现时遗漏了。
【2】错误
需求是正确,但在实现阶段未將规格说明正确实现,可能在概要、详细设计时产生了错误,也可能是编码错误,即有此需求,但需求实现与用户期望不一致。例如,排序功能,用户期望的是按价格升序排列,实现时却是降序排列。
【案例:HTML代入注入错误】
OA系统中添加图书类别时,类别名称揄入 HTML 代码,系统未做安全性防御,未能屏蔽该代码,从而导致成功添加对应代码功能,如图5-1所示。

此处的缺陷是一个典型的功能错误,可定性为安全性缺陷,系统因注入的 HTML 代码而显示出删除操作功能代码。
【3】冗余
需求规格说明并未涉及的需求被实现,即用户未提及或无需的需求,在被测对象中得到了实现,如用户未提及查询结果分类显示,但在实际实现中,却以不同类别进行了显示。
一般而言,冗余功能从用户体验角度来看,如果不影响正常的功能使用,则可以保留,除非存在较大应用风险。
【4】不满意
除上述遗漏、 错误、冗余3种常见缺陷类型外,用卢对实现不满意亦可称为缺陷。例如,针对中老年人的系统在设计开发过程中,采用了时尚前卫的界面、细小隽秀的字体,导致终端用户不适应、看不清,这样即使所有需求都得到了正确的实现,但不符合用户使用习惯,也是一种缺陷。
在测试过程中,测试工程师需要时刻记住,功能再完美、界面再漂亮的系统,如果不是用户期望的,则该系统完全无效,所以测试过程中需处处以用户为基准,从需求角度出发。
【案例:用户体验缺陷】
图 5-2所示是用户通过“我的办公桌”流程链接跳转后的显示界面,在图中可以看到:“请注意查看待办流程:请假申请:[2006-01-01 04:37:37]”显示时出现了不恰当的换行, 04:37被错误换行,此种类型的错误即可认为是用户体验方面的缺陷。

总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。
相关文章:
面试题:软件测试缺陷产生的原因有哪些?
软件缺陷产生的原因多种多样,一般可能有以下几种原因: 1.需求表述、理解、编写引起的错误。 2.系统架构设计引起的错误。 3.开发过程缺乏有效的沟通及监督,甚至没有沟通或监督。 4.程序员编程中产生的错误。 5.软件开发工具本身隐藏的问…...
RabbitMQ 04 集群
01...
axure9勾选多个删除,弹框显示多个中继器编号
文本框 情形是删除逗号 文本框内插入数据...
Git 使用指南 --- 版本管理
序言 Git 是一个开源的 分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。对一个程序员来说,掌握 Git 的使用是必要的。 在这个系列中,将详细的介绍 Git 的使用和原理,话不多说,让我们开始吧。…...
C#进阶-ASP.NET实现可以缩放和旋转的图片预览页
本文详细介绍了如何在ASP.NET WebForms中实现一个功能丰富的图片预览页面。通过结合HTML、CSS和JavaScript,用户可以方便地对图片进行放大、缩小以及旋转操作。文章从页面的基本布局开始,逐步讲解了如何设置图片展示区、添加控制按钮、编写CSS样式以及实…...
【小程序 - 大智慧】深入微信小程序的核心原理
目录 课程目标背景双线程架构WebView 结构快速渲染 PageFrame编译原理Exparser通讯系统生命周期基础库解包跨端框架预编译半编译半运行运行时框架 主流技术Tarouni-app汇总 下周安排 课程目标 本次课程主要通过后台管理小程序回顾一下小程序的高阶语法,然后讲解整体…...
Qt 去掉QDialog对话框的问号
QT 对话框的问号是什么? QDialog默认的window flag中包含了Qt::WindowContextHelpButtonHint,这个flag意思是在窗口上提供“上下文帮助”按钮 使用方式/调用方式 void QWidget::setWhatsThis(const QString &)比如: ui->lineEdit_1->setWh…...
负载均衡 Ribbon 与 Fegin 远程调用原理
文章目录 一、什么是负载均衡二、Ribbon 负载均衡2.1 Ribbon 使用2.2 Ribbon 实现原理 (★)2.3 Ribbon 负载均衡算法 三、Feign 远程调用3.1 Feign 简述3.2 Feign 的集成3.3 Feign 实现原理 (★) 一、什么是负载均衡 《服务治理:Nacos 注册中心》 末尾提到了负载均…...
c/c++:CMakeLists.txt中添加编译/连接选项使用内存错误检测工具Address Sanitizer(ASan)
Address Sanitizer(ASan)是一个快速的内存错误检测工具。从gcc 4.8开始,AddressSanitizer成为gcc的一部分。 既然是gcc内置的内存检查工具,用起来比第三方的库更方便些。只要指定相应的编译链接参数就可以实现内存泄露检查了,如下是是cmake脚…...
armbian cups 远程打印机 1022
使用 CUPS Web 浏览器界面设置和管理打印机 - Oracle Solaris 管理:常见任务 N1刷armbian变身打印服务器,支持全平台无线打印PC扫描_存储设备_什么值得买 (smzdm.com) 第 6 章 使用 Web 界面向 CUPS 添加打印机 | Red Hat Product Documentation apt…...
three.js使用3DTilesRendererJS加载3d tiles数据
原生的 three.js 目前不支持 3d tiles 数据的加载,不过开源社区已经给出了一些解决方案,其中最活跃的要属 3DTilesRendererJS。它为 three.js 提供了加载和调度 3d tiles 数据的基本能力,虽说和 Cesium.js 对 3d tiles 的支持相比还有很大的差…...
坐牢第三十五天(c++)
一.作业 1.使用模版类自定义栈 代码: #include <iostream> using namespace std; template<typename T> // 封装一个栈 class stcak { private:T *data; //int max_size; // 最大容量int top; // 下标 public:// 无参构造函数stcak();// 有参…...
Conda离线部署django
要在没有网络连接的环境中使用conda部署Django,你需要预先在有网络连接的机器上创建一个包含所有必要包的环境,并导出该环境的配置文件。然后,你可以将这个配置文件和必要的包传输到目标机器上进行安装。 下面是详细的步骤: 1. …...
1. Fabric.js安装使用
安装 # 安装 fabricjs npm i fabric --save在需要使用的页面引入 import * as fabric from fabric...
Excel中.xls和.xlsx文件格式的区别,及C++操作Excel文件
文件结构和兼容性: XLS是Excel 97-2003版本的文件格式,而XLSX是Excel 2007及以上版本的文件格式。XLS格式是向下兼容的,意味着较新的Excel版本可以打开XLS文件,但较旧的版本无法打开XLSX文件。相反,XLSX格式是向上…...
php实用命令
php相关命令 命令错误级别 命令 命令命令介绍具体用法php -v查看php版本php -vphp -l检查php文件是否有语法错误php -lphp -m查看当前php安装的扩展php -mphp -i | grep extension_dir查看扩展安装的目录php -i | grep extension_dir 错误级别 命令命令介绍具体用法error_re…...
TypeError:未绑定方法
TypeError: unbound method 错误通常发生在类方法被调用时,但没有正确绑定到实例。这通常意味着你试图在类本身上调用一个实例方法,或者没有使用正确的方式创建类实例。 1、问题背景 某位开发者在尝试创建一个类似于经典的 Pratt 递归下降解析器时遇到了…...
Java虚拟机(JVM)的架构和工作原理,字节码执行流程
JVM的概念 JVM是Java Virtual Machine的缩写, 即Java虚拟机,也被称为Java程序运行的核心环境 。它是一种用于计算设备的规范,通过在实际的计算机上仿真模拟各种计算机功能来实现。JVM由一套字节码指令集、一组寄存器、一个栈、一个…...
416.分割等和子集
416.分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和…...
python初始化一个三维数组
文章目录 1.什么是三维数组2.那我应该如何初始化一个自定义长度的三维数组呢? 1.什么是三维数组 从最外层开始理解,可以理解为一维数组,里面套了一个二维数组(12等于三维数组) arr [ [[], []], [[], [], []], [[],[]]…...
LCD12864带字库开发实战:从引脚配置到中文显示
1. LCD12864带字库模块基础认知 第一次拿到这种带字库的液晶屏时,我盯着那20个引脚发呆了半小时。后来才发现,真正需要关注的只有7-8个关键引脚。这种128x64点阵的液晶模块最吸引人的地方在于它内置了GB2312字库,这意味着我们不需要自己造轮子…...
Nginx\Tomcat\Jetty\Netty
Nginx:高性能 HTTP 服务器 / 代理大门,接收请求、转发、负载均衡、静态资源、高并发纯异步非阻塞 多进程1 个 master 多个 worker一个线程能扛几万并发,整体能抗~10WQps只负责:接收请求 → 转发 → 返回结果Tomcat:J…...
智能运维避坑指南:高压断路器机器学习诊断中的5大常见数据陷阱
智能运维避坑指南:高压断路器机器学习诊断中的5大常见数据陷阱 在电力系统智能运维的浪潮中,高压断路器作为电网的"安全卫士",其故障诊断的准确性与及时性直接关系到整个电网的稳定运行。随着机器学习技术在工业领域的深入应用&…...
lora-scripts应用案例:电商主图自动生成,快速训练商品风格模型
LoRA-Scripts应用案例:电商主图自动生成,快速训练商品风格模型 1. 电商主图生成的痛点与解决方案 电商运营每天面临大量商品主图制作需求,传统方式存在三个核心痛点: 人力成本高:专业设计师单张主图制作成本50-200元…...
px、em、rem、vw、vh、clamp 怎么选?
整理了一套单位使用规范,新手可以直接套用,不用再纠结怎么选,高效又避坑: /* 1. 根字号:设置rem基准,避免浏览器差异 */ html { font-size: 16px; }/* 2. 字体:rem(全局统一…...
Ostrakon-VL像素终端实战:生成符合ISO 20252市场调研报告
Ostrakon-VL像素终端实战:生成符合ISO 20252市场调研报告 1. 项目背景与价值 在零售与餐饮行业,市场调研数据的采集和分析一直是一项耗时耗力的工作。传统方法需要人工记录货架商品、价格标签、店铺环境等信息,不仅效率低下,还容…...
Qwen3-0.6B-FP8部署教程:利用vLLM提升推理速度,Chainlit美化交互
Qwen3-0.6B-FP8部署教程:利用vLLM提升推理速度,Chainlit美化交互 1. 环境准备与快速部署 1.1 硬件与系统要求 显卡:NVIDIA GPU(RTX 3060 6GB起步,推荐RTX 4090/3090)驱动:NVIDIA Driver ≥ 5…...
Betterlockscreen缓存机制解析:为什么它比传统锁屏更快
Betterlockscreen缓存机制解析:为什么它比传统锁屏更快 【免费下载链接】betterlockscreen 🍀 sweet looking lockscreen for linux system 项目地址: https://gitcode.com/gh_mirrors/be/betterlockscreen Betterlockscreen是一款为Linux系统设计…...
STM8单片机外部晶振配置与故障排查指南
1. STM8单片机外部晶振配置基础STM8系列单片机作为意法半导体推出的8位微控制器,在工业控制、消费电子等领域应用广泛。其时钟系统设计灵活,支持内部RC振荡器和外部晶振两种时钟源。当我们需要更高精度的时钟信号或更高的工作频率时,通常会选…...
避开FMC的那些‘坑’:正点原子F429开发板驱动TFT屏和SDRAM的实战避坑指南
正点原子F429开发板FMC接口深度优化:TFT屏与SDRAM的高效驱动实践 硬件连接的关键细节 在FMC接口应用中,硬件连接的正确性直接决定了后续软件调试的成败。许多开发者往往在硬件连接阶段就埋下了隐患,导致后期出现各种难以排查的问题。 地址…...
