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

简介:

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

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

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

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

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

image

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

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

image
image

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

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

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

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

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

image
image
image
image

相关文章
|
20天前
HDFS web Interfaces功能解读
HDFS web Interfaces功能解读
|
6天前
|
前端开发 机器人 测试技术
【RF案例】Web自动化测试弹窗处理
在进行Web自动化测试时,常会遇到不同类型的弹窗,如ajax、iframe、新窗口及alert/Confirm等。这些弹窗可通过Selenium进行定位与处理。其中,ajax弹窗直接定位处理;iframe需先选中再操作;新窗口类似iframe处理;而alert/Confirm则需特殊方法应对。在Robot Framework中,需先定义并获取窗口后使用特定关键字处理。此外,还有部分div弹窗需在消失前快速定位。希望本文能帮助大家更好地处理各类弹窗。
17 6
【RF案例】Web自动化测试弹窗处理
|
6天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
24 3
快速上手|HTTP 接口功能自动化测试
|
6天前
|
JavaScript 前端开发 数据库
数据库测试场景实践总结
本文介绍了数据库超时和应用锁表SSDB测试场景的验证方法,通过锁定数据表模拟写入失败情况,并利用SSDB进行重试。测试需开发人员配合验证功能。同时,提供了SSDB服务器登录、查询队列数量及重启服务等常用命令。适用于验证和解决数据库写入问题。
17 7
|
20天前
|
测试技术
基于LangChain手工测试用例转Web自动化测试生成工具
该方案探索了利用大模型自动生成Web自动化测试用例的方法,替代传统的手动编写或录制方式。通过清晰定义功能测试步骤,结合LangChain的Agent和工具包,实现了从功能测试到自动化测试的转换,极大提升了效率。不仅减少了人工干预,还提高了测试用例的可维护性和实用性。
30 4
|
18天前
|
Web App开发 测试技术 API
自动化测试之美:使用Selenium和Python进行Web应用测试
【8月更文挑战第31天】在软件开发的快节奏世界中,自动化测试如同一束明灯,照亮了质量保证之路。本文将引导你通过Selenium和Python的强大组合,探索如何构建高效的Web应用测试框架。我们不仅会讨论理论,还会深入代码,从一个简单的示例开始,逐步扩展至更复杂的场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。让我们一同揭开自动化测试的神秘面纱,体验它的魅力所在。
|
25天前
|
人工智能 Java 测试技术
自动化测试之美:如何用Selenium提升Web应用的质量保证
【8月更文挑战第24天】 在软件开发的海洋里,自动化测试如同一艘救生艇,帮助开发团队保持代码质量的同时,还能确保他们不会淹没在功能的迭代和bug修复中。Selenium,作为一个用于Web应用程序测试的工具,它的强大之处在于模拟真实用户操作的能力。本文将通过浅显易懂的语言和实际代码示例,引导读者理解Selenium的魅力所在,以及如何有效利用它来提升Web应用的测试效率和覆盖率。
|
4天前
|
jenkins 测试技术 持续交付
自动化测试的高效之路:如何利用Python进行Web应用测试
【9月更文挑战第13天】在软件开发的快节奏中,自动化测试是确保质量和效率的关键。本文将引导你了解如何使用Python语言及其强大的测试框架来提升Web应用的测试效率。我们将一起探索编写简洁而强大的测试脚本的技巧,以及如何通过持续集成(CI)实现自动化测试流程。准备好让你的测试工作飞一般的感觉!
|
27天前
|
XML JavaScript 测试技术
Web自动化测试框架(基础篇)--HTML页面元素和DOM对象
本文为Web自动化测试入门指南,介绍了HTML页面元素和DOM对象的基础知识,以及如何使用Python中的Selenium WebDriver进行元素定位、操作和等待机制,旨在帮助初学者理解Web自动化测试中的关键概念和操作技巧。
34 1
|
27天前
|
XML Web App开发 数据挖掘
Postman接口测试工具全解析:功能、脚本编写及优缺点探讨
文章详细分析了Postman接口测试工具的功能、脚本编写、使用场景以及优缺点,强调了其在接口自动化测试中的强大能力,同时指出了其在性能分析方面的不足,并建议根据项目需求和个人偏好选择合适的接口测试工具。
31 1