测试常见异常总结

news2024/11/24 4:29:42

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


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

一、常见的异常

空指针异常(NullPointerException)

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

数据库异常

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

IO 异常

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

数组越界异常(ArrayIndexOutOfBoundsException)

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

类型转换异常(ClassCastException)

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

数字格式异常(NumberFormatException)

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

网络异常

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

并发异常

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

配置异常

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

自定义异常

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

二、如何触发异常场景?

边界值测试

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

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

错误输入测试

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

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

性能测试

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

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

异常环境测试

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

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

异常操作测试

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

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

配置测试

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

中断测试

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

三、结语

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Microsoft Dynamics 365 CE 扩展定制 - 7. 安全

在本章中,我们将介绍以下内容: 构建累积安全角色配置业务单元层次结构基于分层位置配置访问配置和分配字段级安全组建团队并共享设置访问团队对静止数据进行加密以满足FIPS 140-2标准管理Dynamics 365在线SQLTDE加密密钥简介 Dynamics 365是一个强大的平台,具有超过10年的良…

电脑风扇控制软件 Macs Fan Control Pro mac中文版功能介绍

Macs Fan Control mac是一款专门为 Mac 用户设计的软件,它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度,以提高设备的散热效果,减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温…

LT498. 对角线遍历

498. 对角线遍历 问题描述 给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。 示例 1: 输入:mat [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,4,7,5,3,6,8,9]示例 2&#xf…

机器学习实战:基于sklearn的工业蒸汽量预测

文章目录 写在前面工业蒸汽量预测1.基础代码2.模型训练3.模型正则化4.模型交叉验证5.模型超参空间及调参6.学习曲线和验证曲线 写在后面 写在前面 本期内容:基于机器学习的工业蒸汽量预测 实验环境: anaconda python sklearn 注:本专栏内所有…

uniapp小程序才到第五层就报错navigateto:fail webview count limit exceed

错误截图 原因 小程序官方描述是说可以跳转10层,但是使用uniapp开发的程序在小程序中才运行到第五层就报错了,原因是因为没有设置appId。如果设置了就正常了。

基于APM(PIX)飞控和missionplanner制作遥控无人车-从零搭建自主pix无人车无人坦克

前面的步骤和无人机调试一样,可以参考无人机相关专栏。这里不再赘述。 1.安装完rover的固件后,链接gps并进行校准。旋转小车不同方向,完成校准,弹出成功窗口。 2.校准遥控器。 一定要确保遥控器模式准确,尤其是使用没…

按键精灵中的UI界面操作

1. 按键精灵中UI界面常用的控件 1. 文字框 界面1: {标签页1:{文字框:{名称:"文字框1",显示内容:"显示内容",文字大小:0,高度:0,宽度:0,注释:"文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性&qu…

easyHttp -- 轻量级的 HTTP 客户端工具包

easyHttp gitte地址:easy-http 介绍 easyHttp 是一个轻量级的 HTTP 客户端工具包,专为 Java 设计,使得基本的 HTTP 请求变得异常简单。该库主要针对常见的 HTTP 请求提供了简洁的 API,使得开发者无需面对复杂的设置。当前版本已支持基本的请…

游戏服务器频繁遭到攻击是什么原因?

这可能是来自竞争对手的恶意攻击,使您的服务器无法正常运行。如果游戏被卡住或攻击,所有服务器都将瘫痪。玩家的游戏体验不好,自然会选择别家的游戏。当然,也不排除游戏中的一些玩家对游戏中或游戏公司中的一些人不满,…

自动驾驶算法(七):基于遗传算法的路径规划(下)

目录 1 遗传选择 2 遗传交叉 3 遗传变异 4 结语 1 遗传选择 我们书接上回,我们完成了种群的初始化,将所有的种群放入了new_pop1中,这个new_pop1是一个(种群大小 * 路径)的一个矩阵,我们来看如何进行遗传…

软件外包开发需要注意的问题

软件外包开发是一种常见的商业实践,可以帮助企业降低成本、提高效率和获得专业技能。然而,要确保成功的外包开发项目,需要注意以下一些关键问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司…

数组的存储结构、特殊矩阵和稀疏矩阵的压缩存储

数组的存储结构、特殊矩阵和稀疏矩阵的压缩存储 1.数组的存储结构、特殊矩阵、稀疏矩阵的压缩存储1.1 数组的存储结构1.1.1 一维数组的存储结构关系式1.1.2 多维数组的存储结构关系式 1.2 特殊矩阵的压缩存储1.2.1 对称矩阵1.2.2 下三角矩阵1.2.3 上三角矩阵1.2.4 三对角矩阵 1…

Cesium:WFS请求两种方式

以本地发布的上海市浦东区行政区划WMS地图服务为例,讲述Cesium中WFS请求的两种方式及其优缺点。 服务加载地址及其参数如下, 服务加载地址:http://localhost:8089/geoserver/pudong/wms 加载参数:layerName:pudong:distractservice: "WMS",request: "GetMa…

基于材料生成算法的无人机航迹规划-附代码

基于材料生成算法的无人机航迹规划 文章目录 基于材料生成算法的无人机航迹规划1.材料生成搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用材料生成算法来优化无人机航迹规划。 …

以华为为例:GTM岗位主要是做什么的?如何做好GTM工作?

如何让产品上市以后卖得更好?这是一个系统工程。 许多公司在学习华为(尤其是做消费者业务,通俗地说就是2C业务的公司或产品),设立GTM相关的岗位。我们来看一下,GTM岗位主要做些什么,如何才能胜…

宠物领养系统jsp+servlet+mysql

设计不同用户的操作权限、注册和登录方法。 管理员可以在管理员管理、用户管理、宠物管理、评论管理、团队活动管理、志愿者的申请等等模块中进行查询、添加、删除、修改。 管理员可以在领养管理中通过领养时间查询所有宠物被领养的信息,修改是否同意领养宠物&#…

色彩大师:纽约公寓的大胆装修之旅

这对夫妇刚从西海岸搬到了纽约,最初尝试自己布置家居。但在设计中心寻找面料和家具时,他们感到有些不知所措。 在海外期间,他们深受英国乡村别墅装饰的魅力所吸引,希望将类似的风格带到他们的纽约公寓。我们喜欢英国乡村别墅的随…

nn.embedding函数详解(pytorch)

提示:文章附有源码!!! 文章目录 前言一、nn.embedding函数解释二、nn.embedding函数使用方法四、模型训练与预测的权重变化探讨 前言 最近发现prompt工程(如sam模型),也有transform的detr模型等都使用了nn.Embedding函…

时序预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab实现SVM-Adaboost时间序列预测(风…

解决ERR: cURL error 77: Unable to initialize NSS: -8023

研发反映一个问题,上传文件时失败,日志内错误信息如下: ERR: cURL error 77: Unable to initialize NSS: -8023 (SEC_ERROR_PKCS11_DEVICE_ERROR) ... 这个功能使用了腾讯云的点播服务。因此立即联系了腾讯云客服。 搞了很久问题依旧。 反复测试,发现上传视频文件,错…