测试常见异常总结

为了更好地保障测试质量,除了测试正向场景,也需要验证软件在异常情况下的行为和反应。本文分享一些测试过程中常见的异常。


通过模拟和触发各种异常情况,测试人员可以验证软件对异常的处理是否符合预期,是否能够正确地处理和恢复。那如何构造异常场景呢?首先我们需要了解有哪些常见异常,以及它们是如何触发的,才能有针对性地构造出异常场景。

一、常见的异常

空指针异常(NullPointerException)

当试图对一个值为 null 的对象进行操作时,例如访问 null 对象的属性或者调用 null 对象的方法,就会引发空指针异常。

数据库异常

数据库异常可能是由于数据库连接失败、SQL 语句错误、数据类型不匹配、事务处理错误等原因引起的。

IO 异常

IO 异常可能是由于文件不存在、文件权限问题、网络连接中断、读写错误等原因引起的。

数组越界异常(ArrayIndexOutOfBoundsException)

当试图访问数组中不存在的索引时,即索引超出了数组的范围,就会引发数组越界异常。

类型转换异常(ClassCastException)

当试图将一个对象转换为不兼容的类型时,例如将一个对象转换为其子类类型,或者将一个对象转换为与其无关的类型,就会引发类型转换异常。

数字格式异常(NumberFormatException)

当试图将一个无法转换为数字的字符串转换为数字时,就会引发数字格式异常。

网络异常

网络异常可能是由于网络连接超时、网络不稳定、网络请求错误等原因引起的。

并发异常

并发异常可能是由于多个线程或者分布式环境中对共享资源的并发访问引起的,例如出现竞态条件、死锁等情况。

配置异常

配置异常可能是由于配置文件的读取错误、配置项缺失或错误等原因引起的。

自定义异常

自定义异常是根据业务需求和设计而定义的异常类,用于特定的异常情况。

二、如何触发异常场景?

边界值测试

确定输入数据的边界值,并尝试使用边界值来触发异常情况。

例如,如果一个输入字段要求是 1 到 100 之间的整数,可以尝试输入 0、101 或非数字字符等边界值来触发异常。

错误输入测试

输入错误、非法或无效的数据,以验证软件在处理错误输入时的行为。

例如,输入错误的日期格式、超过最大长度的字符串、非法的字符、空值、包含特殊字符的字符串等。

性能测试

通过模拟多个用户同时操作、高负载的情况来触发并发异常或性能问题。

例如,模拟同时点击提交按钮、同时发送请求等情况。

异常环境测试

模拟异常环境来测试软件的稳定性和容错能力。

例如,模拟网络连接中断、数据库故障、硬件故障等异常情况,观察软件的反应和恢复能力。

异常操作测试

故意执行异常操作来触发异常情况。

例如,在特定的步骤中跳过必要的操作、按照错误的顺序执行步骤等。

配置测试

在配置文件中故意设置错误的参数或值,以测试软件对配置错误的处理能力。

中断测试

模拟外部干扰,例如中断网络连接、关闭关键服务、修改系统时间等,以验证软件在外部干扰情况下的稳定性和正确性。

三、结语

发现异常时,了解异常的原因和表现可以更快地定位问题,通过查看异常信息、日志、相关代码等方式。

结合对异常的了解,可以自己先尝试排查下异常发生的原因,也能帮助开发人员定位问题的根源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/118018.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Shopee买家通系统一款全自动操作虾皮买家号的软件

Shopee买家通系统可以全自动批量注册虾皮买家号,注册时可以自动调用手机号、自动接收短信验证、自动绑地址及支付卡,注册成功后还能自动绑定邮箱进行验证。 软件支持5个国家使用,越南、泰国、菲律宾、印度尼西亚、马来西亚。 内置防指纹技术 …

AD7792/AD7793 备忘

AD7792/AD7793 是一款 ∑-Δ ADC,3 通道、低噪声,内部集成仪表放大器和参考源。AD7792 为 16 位,AD7793为 24 位。 供电电压:2.7 ~ 5.25 V,并不支持负电压。转换速率:4.17 Hz ~ 470 Hz内置参考基准&#x…

[移动通讯]【Carrier Aggregation-12】【LTE Carrier Aggregation basics 】

前言: 参考: RF Wireless World: 《LTE Carrier Aggregation basics》 目录: Why Carrier Aggregation Carrier Aggregation in TDD LTE Carrier Aggregation in FDD LTE Carrier Aggregation frequency ba…

Win10 + VS017 编译SQLite3.12.2源码

参考: [1] WIN10 VS2019下编译GDAL3.0PROJ6SQLite_gdal 3 win10编译-CSDN博客 [2] 如何编译SQLite-How To Compile SQLite-CSDN博客 如何生成静态库: 参考: WIN10 VS2019下编译GDAL3.0PROJ6SQLite_gdal 3 win10编译-CSDN博客 如何生成exe:…

JavaEE-部署项目到服务器

本部分内容为:安装依赖:JDK,Tomcat,Mysql;部署项目到服务器 什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。 为什么我们需要…

vue二维码生成插件qrcodejs2-fix、html生成图片插件html2canvas、自定义打印内容插件print-js的使用及问题总结

一、二维码生成插件qrcodejs2-fix 1.安装命令 npm i qrcodejs2-fix --save2.页面使用 import { nextTick } from vue; import QRCode from qrcodejs2-fix; nextTick(() > {let codeView document.querySelector("#codeView");codeView.innerHTML ""…

【3D图像分割】基于Pytorch的VNet 3D 图像分割5(改写数据流篇)

在这篇文章:【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割2(基础数据流篇) 的最后,我们提到了: 在采用vent模型进行3d数据的分割训练任务中,输入大小是16*96*96,这个的裁剪是放到Dataset类…

Crypto(8) BUUCTF-bbbbbbrsa1

题目描述: from base64 import b64encode as b32encode from gmpy2 import invert,gcd,iroot from Crypto.Util.number import * from binascii import a2b_hex,b2a_hex import randomflag "******************************"nbit 128p getPrime(nbit)…

学习视频剪辑:巧妙运用中画、底画,制作画中画,提升视频效果

随着数字媒体的普及,视频剪辑已经成为一项重要的技能。在视频剪辑过程中,制作画中画可以显著提升视频效果、信息传达和吸引力。本文讲解云炫AI智剪如何巧妙运用中画、底画批量制作画中画来提升视频剪辑水平,提高剪辑效率。 操作1、先执行云…

吸引人的标题公式-爆款标题

有的朋友图文或视频质量明明很不错 但数据有时候却不尽人意 这个时候就可以考虑一下是不是标题的原因 这篇总结出万能公式以供参考

解决找不到msvcp120.dll,无法继续执行代码的办法,msvcp120.dll丢失的解决办法

在使用电脑的过程中出现了“找不到msvcp120.dll,无法继续执行代码”,通常出现这种错误的原因是因为电脑中的msvcp120.dll文件丢失,但是文件丢失就会导致电脑出现软件不能打开的情况,也可能会导致电脑出现其他的问题,所以今天就给大…

通过GFlags工具来复现因为野指针、内存越界等造成的程序崩溃

系列文章目录 C程序异常调查专栏 文章目录 系列文章目录前言一、GFlags是什么?二、如何获取GFlags三、使用步骤1.确认GFlags是否已经安装2.以管理员权限启动Command prompt3.GFlags有效设定4.检查GFlags有效设定是否成功5.根据客户复现步骤运行程序 总结 前言 客户…

“Java与Redis的默契舞曲:优雅地连接与存储数据“

文章目录 引言1. Java连接上Redis2. Java对Redis进行存储数据2.1 存储set类型数据2.2 存储hash类型数据2.3 存储list类型数据 总结 引言 在现代软件开发中,数据存储和处理是至关重要的一环。Java作为一门强大的编程语言,与Redis这个高性能的内存数据库相…

基于Chirp窄带扩频技术的无线混合组网应用,以多角色智能计量插座作为Chirp广域基站,构建边缘计算混合无线网络

随着物联网(IoT)的不断发展,无线通信技术的需求也在不断增加。Chirp窄带扩频技术是一种具有广泛应用潜力的无线通信技术,它在低功耗、广域覆盖、抗干扰等方面具备独特的优势。本文介绍了如何利用磐启微Chirp技术构建ECWAN无线混合…

Python之Excel数据相关

Excel Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsof…

【漏洞复现】Metinfo6.0.0任意文件读取漏洞复现

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现代码审计漏洞点 1.5、深度利用EXP编写 1.6、漏洞挖掘1.7修复建议 1.1、漏洞描述 漏洞名称:MetInfo任意文件…

线性代数 第六章 二次型

一、矩阵表示 称为二次型的秩。只含有变量的平方项,所有混合项系数全是零,称为标准形;平方项的系数为1、-1或0,称为规范形。 二次型的标准形不唯一,可以用不用的坐标变换化二次型为标准形;二次型的规范形唯…

nginx配置支持PHP

前言 Nginx是通过php-fpm来通信的,所以需要修改的监听9000端口。 当 Nginx 配置支持 PHP 时,它可以将 PHP 请求转发给 PHP-FPM,由 PHP-FPM 处理请求并返回结果。 要配置 Nginx 支持 PHP,你需要在 Nginx 配置文件中添加一个 locat…

vue3+ts 项目遇到的问题和bug

1.router中使用pinia报错 pinia.mjs:1709 Uncaught Error: [🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"? See https://pinia.vuejs.org/core-concep…

【k8s】pod集群调度

调度约束 Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。…
最新文章