告别背锅侠!29个空场景及测试方法的实战指南

2012 篇文章 51 订阅
777 篇文章 1 订阅

软件测试面试刷题,这个小程序(永久刷题),靠它可以快速找到工作!https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

想必大家在日常的测试工作中,经常会碰到以下这些场景:

场景一

测试人员:有一个数据为空的场景还没有验证。

研发人员:这个场景不会出现,因为没有删除逻辑。

场景二

研发人员:本次需求时间紧任务重!这里肯定不会出现数据为空的情况,异常处理来不及加,先不加了或者忘记加了。

场景三

测试人员:逻辑删除了所有的测试数据,认为测试到了数据为空的情况。但实际上,底层数据逻辑会查询所有数据,然后在逻辑层根据“是否被删除”字段做处理,未能真正验证空数据的异常情况。

...等等

这些场景问题引发了一个思考"不存在的场景真的不存在吗?",今天我们就从案例出发剖析空场景的重要性,同时给大家分享29个常见空场景及测试方法!希望对大家有所启发帮助!

空场景的重要性

以下是京东开发者分析了过去十年中因空指针异常(NullPointerException, NPE)而导致的多起著名互联网公司事故:

例如:

·2016 年 API 故障,因空指针异常导致部分第三方应用无法正常使用,影响了许多依赖 Twitter 数据的应用程序;

·2017 年消息丢失,因空指针异常导致部分用户的消息丢失或无法发送;

· 2018 年乘车系统中断,因空指针异常导致乘车系统中断,用户无法呼叫车辆;

·2019 年“双 11”购物节故障,因空指针异常导致系统崩溃,部分用户在支付环节遇到问题;

·2020 年购物车故障,因空指针异常导致用户在结账时出现错误,无法完成购买;

· 2021 年支付系统故障,因一处空指针异常在高峰期出现支付系统故障,用户无法进行支付操作;

这些比较大的负面影响,导致用户满意度大幅下降,公司盈利损失,同时获客成本大幅提高。

这些案例警示我们,预防和解决空指针异常问题不仅是技术层面的挑战,更是关乎公司生存与发展的重要任务。

29个空场景及测试方法汇总

上面我们了解了空场景的重要性,那平常的工作中又该如何预防和干预呢?保持对空场景的敏感度,多记录多总结是必不可少的。

下面就给大家分享汇总的29个空场景及测试方法,帮助大家从此告别背锅侠!

01:未初始化的对象

场景:尝试调用未初始化的对象方法。

测试方法:确保所有对象在使用前都已正确初始化。

02:空返回值

场景:方法返回 null,而不是预期的对象。

测试方法:对所有方法的返回值进行 null 检查,特别是在接收外部数据或 API 调用的地方。

03:集合中的空元素

场景:集合(如 List、Set、Map)中包含 null 元素。

测试方法:在操作集合时添加 null 检查,避免对 null 元素进行操作。

04:外部库或 API 调用

场景:调用外部库或 API 时返回 null。

测试方法:对所有外部调用进行 null 检查,确保返回值不为空。

05:对象属性未初始化

场景:访问对象的属性时,属性未初始化。

测试方法:在对象初始化时确保所有属性都已赋值,或添加 null 检查。

06:依赖注入失败

场景:依赖注入框架未能正确注入依赖对象。

测试方法:在使用依赖对象前进行 null 检查,确保依赖已正确注入。

07:多线程环境

场景:多线程环境下的竞争条件导致对象未初始化。

测试方法:使用同步机制确保对象在多线程环境中安全初始化。

08:用户输入

场景:用户输入为空或非法值。

测试方法:对用户输入进行验证和检查,确保输入值不为空。

09:数据库查询结果

场景:数据库查询返回 null 结果。

测试方法:对所有数据库查询结果进行 null 检查,避免操作 null 结果。

10:配置文件或环境变量

场景:配置文件或环境变量中缺失关键配置。

测试方法:加载配置时进行 null 检查,确保所有关键配置已正确加载。

11:文件读取

场景:文件读取操作返回 null(例如文件不存在)。

测试方法:在读取文件前检查文件是否存在,确保文件读取操作返回非 null 值。

12:Web 请求参数

场景:Web 请求中缺少必需的参数。

测试方法:对所有 Web 请求参数进行验证,确保所有必需参数均已提供且不为空。

13:缓存失效

场景:缓存失效或未命中时返回 null。

测试方法:在使用缓存结果前进行 null 检查,确保缓存命中返回非 null 值。

14:序列化/反序列化

场景:对象序列化或反序列化时出现 null 值。

测试方法:在序列化和反序列化操作时进行 null 检查,确保过程正确完成。

15:后台服务返回值

场景:调用后台服务接口时,返回 null。

测试方法:对所有后台服务调用的返回值进行 null 检查,确保返回值不为空。

16:事件驱动系统

场景:事件处理过程中,事件对象为 null。

测试方法:在事件处理代码中检查事件对象,确保其不为空。

17:迭代器

场景:使用迭代器遍历集合时,迭代器的 next()方法返回 null。

测试方法:在遍历集合时检查每个元素,确保其不为空。

18:回调函数

场景:回调函数的参数为 null。

测试方法:在回调函数中添加参数检查,确保传递的参数不为空。

19:配置对象

场景:加载配置对象时,某些配置属性为 null。

测试方法:在使用配置对象前,检查其所有属性,确保不为空。

20:定时任务

场景:定时任务执行时,所需的依赖对象为 null。

测试方法:在定时任务执行前检查所有依赖对象,确保其已初始化。

21:动态加载类

场景:通过反射或动态加载类时,类实例为 null。

测试方法:在动态加载类后检查实例对象,确保其不为空。

22:分布式系统

场景:分布式系统中,远程调用返回 null。

测试方法:对所有远程调用的返回值进行 null 检查,确保返回值不为空。

23:日志记录

场景:日志记录过程中,日志对象为 null。

测试方法:在记录日志前检查日志对象,确保其不为空。

24:错误处理

场景:错误处理过程中,错误信息对象为 null。

测试方法:在处理错误时检查错误信息对象,确保其不为空。

25:依赖链

场景:多个依赖对象中的一个为 null,导致整个依赖链失效。

测试方法:在使用依赖链中的每个对象前进行 null 检查,确保所有依赖对象都已正确初始化。

26:多语言支持

场景:多语言支持时,语言资源对象为 null。

测试方法:在加载多语言资源时检查资源对象,确保其不为空。

27:插件机制

场景:插件机制中,加载的插件对象为 null。

测试方法:在加载插件后检查插件对象,确保其不为空。

28:缓存机制

场景:缓存机制中,缓存对象为 null。

测试方法:在使用缓存对象前检查其是否已正确加载,确保不为空。

29:API 网关

场景:通过 API 网关调用服务时,返回值为 null。

测试方法:在 API 网关处理请求时检查返回值,确保不为空。

看完这些空场景及测试方法,那么:

#1.你觉得因空场景导致线上出现问题,到底是谁的责任?测试人员如何杜绝背锅?

#2.你工作中都遇到过哪些印象深刻的空场景情况?

#3.你们公司针对测试部门有BUG数量的奖励计划吗?针对空场景未测试导致线上出现BUG一般都是如何处理的?

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

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

在这里插入图片描述

在这里插入图片描述

  • 16
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值