当前位置: 首页 > news >正文

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

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

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.使用模版类自定义栈 代码&#xff1a; #include <iostream> using namespace std; template<typename T> // 封装一个栈 class stcak { private:T *data; //int max_size; // 最大容量int top; // 下标 public:// 无参构造函数stcak();// 有参…...

Conda离线部署django

要在没有网络连接的环境中使用conda部署Django&#xff0c;你需要预先在有网络连接的机器上创建一个包含所有必要包的环境&#xff0c;并导出该环境的配置文件。然后&#xff0c;你可以将这个配置文件和必要的包传输到目标机器上进行安装。 下面是详细的步骤&#xff1a; 1. …...

1. Fabric.js安装使用

安装 # 安装 fabricjs npm i fabric --save在需要使用的页面引入 import * as fabric from fabric...

Excel中.xls和.xlsx文件格式的区别,及C++操作Excel文件

‌文件结构和兼容性‌&#xff1a; XLS是Excel 97-2003版本的文件格式&#xff0c;而XLSX是Excel 2007及以上版本的文件格式。XLS格式是向下兼容的&#xff0c;意味着较新的Excel版本可以打开XLS文件&#xff0c;但较旧的版本无法打开XLSX文件。相反&#xff0c;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 错误通常发生在类方法被调用时&#xff0c;但没有正确绑定到实例。这通常意味着你试图在类本身上调用一个实例方法&#xff0c;或者没有使用正确的方式创建类实例。 1、问题背景 某位开发者在尝试创建一个类似于经典的 Pratt 递归下降解析器时遇到了…...

Java虚拟机(JVM)的架构和工作原理,字节码执行流程

JVM的概念 JVM是Java Virtual Machine的缩写&#xff0c; 即Java虚拟机&#xff0c;也被称为Java程序运行的核心环境 。它是一种用于计算设备的规范&#xff0c;‌通过在实际的计算机上仿真模拟各种计算机功能来实现。‌JVM由一套字节码指令集、‌一组寄存器、‌一个栈、‌一个…...

416.分割等和子集

416.分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#xff1a;true 解释&#xff1a;数组可以分割成 [1, 5, 5] 和…...

python初始化一个三维数组

文章目录 1.什么是三维数组2.那我应该如何初始化一个自定义长度的三维数组呢&#xff1f; 1.什么是三维数组 从最外层开始理解&#xff0c;可以理解为一维数组&#xff0c;里面套了一个二维数组&#xff08;12等于三维数组&#xff09; arr [ [[], []], [[], [], []], [[],[]]…...

Bilibili缓存视频合并工具:告别碎片化,一键整合完整视频体验

Bilibili缓存视频合并工具&#xff1a;告别碎片化&#xff0c;一键整合完整视频体验 【免费下载链接】BilibiliCacheVideoMerge 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCacheVideoMerge 你是否曾为B站缓存视频的碎片化而烦恼&#xff1f;精心下载的视频…...

SecGPT-14B应用场景:DevSecOps流水线中嵌入安全问答节点实现CI/CD风险拦截

SecGPT-14B应用场景&#xff1a;DevSecOps流水线中嵌入安全问答节点实现CI/CD风险拦截 1. 安全自动化新范式 现代软件开发流程中&#xff0c;安全防护往往成为效率的"绊脚石"。传统安全审查需要人工介入&#xff0c;导致CI/CD流水线频繁中断。SecGPT-14B的出现为这…...

OpenCore Legacy Patcher终极指南:5步让旧Mac重获新生

OpenCore Legacy Patcher终极指南&#xff1a;5步让旧Mac重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为Mac无法升级到最新macOS而烦恼吗&…...

解决经典游戏兼容性难题:DDrawCompat工具的创新方案

解决经典游戏兼容性难题&#xff1a;DDrawCompat工具的创新方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DDrawCom…...

突破VMware macOS限制:Auto-Unlocker的完整解决方案

突破VMware macOS限制&#xff1a;Auto-Unlocker的完整解决方案 【免费下载链接】auto-unlocker Unlocker for VMWare macOS 项目地址: https://gitcode.com/gh_mirrors/au/auto-unlocker 当你准备在VMware中创建macOS虚拟机时&#xff0c;却发现系统选择列表中根本没有…...

我在OpenClaw 创建公司

我在OpenClaw 创建公司一、公司创立背景1.1 创立契机1.2 公司定位1.3 组织架构设计二、公司体系建设2.1 文档管理体系2.1.1 目录结构设计2.1.2 文档命名规范2.2 工作流程规范2.2.1 协作机制2.2.2 报告机制三、定时任务体系建立3.1 任务规划3.1.1 基础任务设置3.1.2 报告任务规划…...

大模型应用开发:从环境搭建到项目部署完整流程

大模型应用开发&#xff1a;从环境搭建到项目部署完整流程 标签&#xff1a;#人工智能、#大模型、#自然语言处理、#大模型开发、#智能体开发、#agent开发、#AI 系统封装学习规划&#xff08;从玩具到产品&#xff09; 打包成Docker&#xff1a;写一个Dockerfile&#xff08;我手…...

MPI并行编程避坑指南:实现Cannon算法时,你的进程通信真的高效吗?

MPI并行编程实战&#xff1a;Cannon算法性能调优的五大关键陷阱 当你第一次在集群上运行Cannon算法时&#xff0c;是否遇到过这样的场景&#xff1a;代码逻辑完全正确&#xff0c;计算结果也准确无误&#xff0c;但性能提升却远低于预期&#xff1f;或者更糟——程序莫名其妙地…...

Qwen3-ASR-1.7B在Ubuntu20.04上的Docker化部署教程

Qwen3-ASR-1.7B在Ubuntu20.04上的Docker化部署教程 1. 引言 语音识别技术正在改变我们与设备交互的方式&#xff0c;而Qwen3-ASR-1.7B作为一款支持52种语言和方言的开源模型&#xff0c;为开发者提供了强大的语音转文字能力。今天&#xff0c;我将带你一步步在Ubuntu 20.04系…...

终极指南:如何利用Everything Claude Code Bun运行时提升JavaScript开发效率

终极指南&#xff1a;如何利用Everything Claude Code Bun运行时提升JavaScript开发效率 【免费下载链接】everything-claude-code The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code…...