《Web测试囧事》——2.6 时区不一致造成邮件发送异常

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

2.6 时区不一致造成邮件发送异常

小蔡一直对产品的后台系统测试比较感兴趣,但是自己并没有这方面的测试经验,所以一直不敢向老牛提出自己想去测试后台系统的想法。她虽然没有明说,但是老牛却看在眼里。刚巧最近产品新增了根据用户收藏的商品,定期向用户发送邮件的功能。老牛就指派小蔡去做新功能的测试,也借这个机会锻炼一下她。

小蔡首先根据自己的经验设计了正向测试用例。

1)在用户收藏商品之后,当达到指定条件,系统会向用户发送邮件。

2)她还设计了逆向测试用例,包括邮件系统本身出错时的一些场景,例如:

image

小蔡觉得自己这次设计的测试用例很全面,应该会得到老牛的表扬,就带着这些测试用例去找老牛确认。

老牛首先表扬了小蔡思考的全面性,也夸奖了她这段时间的成长。此外,他告诉小蔡还可以从邮件发送的机制本身考虑是否存在测试点:发送邮件的脚本会每天定时从数据库里找到需要在当天发送的数据,然后根据指定的邮件格式进行发送,并在发送结束后在数据库里进行标记。这里面是否会存在问题呢?

小蔡马上想到可以使用之前学到的5个Why的方式进行追根溯源。

image
image

带着疑问,小蔡登录到执行邮件脚本的服务器,通过使用Linux的date命令,发现服务器使用的是中国标准时间CST(UTC + 8),和UTC可是差着8小时啊!

在脚本执行时,那些UTC~UTC + 8时间之内的数据都会被忽略,这些邮件用户当天接收不到,但是在数据库存储发送标记的时候,却会把这些数据标记成已发送,从而导致用户永远接收不到这些邮件。

小蔡马上把这一发现汇报给老牛,老牛很认可她的这一发现,并带着这个问题和开发人员以及项目经理进行协调,最后决定修改执行邮件脚本的服务器的时区设置。而为了避免以后出现类似问题,通用的服务器配置脚本里,也会增加对于时区的统一设置。

此外小蔡还了解到,有些国家和地区的时区有DST(Daylight Saving Time,也就是俗称的夏令时),而如果产品代码和某些特定时间相关,例如用户设置早上9点接收邮件报告等,就需要考虑到DST。还有如果某些国家或地区修改了自己的默认时区,比如时常变换时区的委内瑞拉,也是需要及时把修改后的时区反映到产品中的。

image
image
image
image

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值