《Web测试囧事》——2.5 异常场景处理不全面导致功能缺陷

简介:

本节书摘来自华章计算机《Web测试囧事》一书中的第2章,第2.5节,作者 黄勇 雷辉 徐潇 杨雪敏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 异常场景处理不全面导致功能缺陷

很多测试人员在面试时会被问到如何针对特定产品测试,需要考虑哪些方面时,思路都会从两方面发散:正常场景、非正常/异常场景开始回答。从思维模式来说,测试人员就不同于开发人员比较习惯的正向思维,而是更多地从异常场景、用户场景等出发,全面地考虑使用产品时会出现的各种可能性,并通过给这些场景分配优先级来指导测试的执行。

但是测试人员并不是无所不能的,有很多异常场景光了解功能性需求是不够的,还需要了解一些架构与部署等非功能性需求。所以在设计测试场景,尤其是异常的测试场景时,很容易遗漏非功能性异常场景。小蔡最近就遗漏了一个关乎用户体验的异常测试场景。

产品在用户账户设置页面提供了收货地址管理的功能,用户可以增删改查自己的收货信息(见图2-7)。不过最近用户经常反映会有自己保存信息之后,下次打开信息丢失的情况。

image

小蔡在测试环境重现这个问题时,发现无论如何都重现不了。所以她经过申请,拿到了生产环境上的测试账号,尝试在真实环境中重现这个问题。

然而即便使用了生产环境,小蔡依然不能百分之百地重现这个问题,对收货地址的增删改查,只是有时能重现这个问题。

image
image

开发人员根据运维人员提供的信息,在日志中查看到确实如此,用户在保存信息时,虽然在前台看到信息已经被保存并且刷新了,但是由于发送的请求超时,后台服务器已经报错并记录在日志中了,不过后台并没有重新提交的机制,所以导致这一部分的信息丢失了。

这个问题时不时会出现,确实是由于负载均衡的服务器转发请求导致的,从日志里也能印证这一点。

一切正常的情况下,也是大多数情况下产品代码对用户收货地址的增删改查都不会出现问题,但是在网络环境不好等异常情况出现时,代码的处理就导致了功能缺陷的产生。

小蔡和开发及运维人员讨论到,虽然不希望产品代码是通过过度的防御式编程的模式编写出来的,但是对于异常场景的处理,尤其是前后台服务器之间的信息传递,需要更全面的覆盖。

就拿现在这个特定的问题来说,解决方案是首先解决负载均衡服务器转发超时的问题,此外还需要在产品代码相应的处理逻辑中添加请求超时重新提交的功能。

image
image
image
image

相关文章
|
3月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
65 4
|
3月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
165 5
|
28天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
83 19
Selenium IDE:Web自动化测试的得力助手
|
30天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
176 17
Selenium:强大的 Web 自动化测试工具
|
29天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE是开源的Web自动化测试工具,适用于Chrome、Firefox等多款浏览器。它提供简单的录制与回放功能,用户可通过录制浏览器操作自动生成测试脚本,支持导出为多种编程语言,便于非专业测试人员快速上手,有效提升测试效率与质量。
229 6
Selenium IDE:Web自动化测试的得力助手
|
1月前
|
监控 测试技术
slb测试会话保持功能
slb测试会话保持功能
40 6
|
3月前
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
229 56
|
2月前
|
JavaScript 安全 编译器
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
57 6
|
2月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
38 4
|
2月前
|
Rust 前端开发 JavaScript
Wasm在即时通讯IM场景下的Web端应用性能提升初探
简单的来说,Wasm就是使用C/C++/Rust等语言编写的代码,经过编译后得到汇编指令,再通过JavaScript相关API将文件加载到Web容器中(即运行在Web容器中的汇编代码)。Wasm是一种可移植、体积小、加载快速的二进制格式,可以将各种编程语言的代码编译成Wasm模块,这些模块可以在现代浏览器中直接运行。尤其在涉及到GPU或CPU计算时优势相对比较明显。
42 0
下一篇
开通oss服务