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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

上一篇:java中的浅拷贝和深拷贝


下一篇:.Net——动态调用方法