[技术讨论]关于前几天发布的京东bug上的问题分析

1.  起因

前两天我发布了一个京东微信端截取到的三张图,并简单阐述了这三张图中的bug发现过程:

有朋友的评价是图中这样的,可实际上,他根本没有看出来这个bug代表的内容有多少。今天心血来潮决定详细写一下,展现一下老程序员的酸腐气质!

2.  过程详述

京东微信端可以签到获取金币,每天一次一个金币,结果没有任何提醒,签到积累30金币的时候就不能签到了,我一直不知道怎么回事。

这一天决定兑换一下这种100-10的券,因为提示是早上9点开始,此前9点多点击,都没有抢到,我只是觉得奇怪。

今天我仍然在9点多进行了点击兑换,系统提示如下图所示:

系统告诉我兑换优惠券需要花费10金币,我点击立即兑换。

结果系统显示说,手速太慢,券已经被抢光了哦!明天记得早点来抢哦!

可是我明明记得抢光了应该是灰色的,而这时候是红色的。注意,不是上面已领取得券,而是金币30下方的券。

10点多,意外过来看了一眼,点了一下,居然兑换成功了,我连点了两次,结果扣了我20金币,系统告知只能抢一张,我没有太注意,也忘记截图了。

下午终于看到系统表示券已经被抢完了,截了张图如下。

这里才是抢光的结果,这时候,我看了一眼100-10的券,确实只有一张,晚上又看了一次,发现变成两张了,具体这里就先不分析这个问题了,因为要分析,我需要积累超过20金币以后才能进行这项测试。

下面我们来分析一下为什么会发生上面的情况,或者说,什么情况下会发生上面的情况。

3.  分析

下面逐项进行相关bug的分析描述。

3.1          实际兑换时间与界面提示兑换时间不同

实际可以兑换的时间是10点,而界面提示是9点。

从这个现象可以看到如下问题:

1,         京东的测试团队是分离的

业务逻辑测试团队和界面测试团队应该不是同一个人或者同一组人。

这在互联网软件测试中是有问题的。当然也可能就是同一个人,这个人太过于粗心了,不过,从常理来看一般不至于犯这样的错误。

2,         代码层面上界面推送和逻辑判断没有同步

这个问题很严重,常规来说应该有两种实现方式:

一种是懂一些技术的业务人员进行后台设定和前台页面修改,当然,最大的可能是一开始就考虑是9点,结果一个需求变更认为是10点,而开发人员忘记对页面进行修改,测试因为是两批人在做,也没有完成同步。

或者说,京东研发测试团队的需求跟踪做得不到位,需求变更发生后没有对所有涉及到该需求的点进行全面检视。

另一种是通过后台逻辑代码进行业务实现的设定和界面设定。

这种方式应该是最好的方式,也最容易避免这类问题。但,很明显京东没有这样做,可能是人力不足,也可能是仓促上线,但是上线已经半年的系统还是这样,就有点奇怪了。

Btw:我只能说京东的开发团队问题实在不是一般得多,大家可能会说,我靠打击京东来宣传自己,抱歉,如果这样说,我四年前给几个大学做的演讲中对腾讯的批评更多,其中涉及到腾讯游戏内部的很多管理问题和开发问题的推演分析结果,这些结果都是得到了腾讯游戏集团级专家人员的承认。

3.2          提示信息与逻辑不符

明显应该是灰色的时候才应该提示:手速太慢,券已经被抢光了哦!明天记得早点来抢哦!

却在早上9点还没有开始抢的时候做出了这样的提示。

这里能看出来,京东研发中的随意性,提示是默认设定的,而不是与逻辑关联的。

或者说,提示只是前端的推送和后台业务完全无关。这样的设定会使得推送的结果因为前端程序员的偷懒或者疏忽等问题而造成不必要的麻烦,甚至可能应该是每一个页面单独写提示,而不是系统进行的统一提示告警处理模块完成的。

对于成熟的系统,所有的异常和提示信息应该是同一模块统一完成的,要根据不同的逻辑展现不同的提示结果,不至于让用户觉得很奇怪。

当然,这里很有可能是为了减少前后台的交互而刻意做的提示结果,也就是我前面提到的,前端程序员疏忽或者偷懒就进行了默认设定,结果测试人员ye没有测出来或者不负责任就直接通过上线运行了。

3.3          提示信息欠缺

金币最多30枚,超过就不能领用,一个简单的提示都没有做,更可以看到京东系统的薄弱和问题所在。

这样的系统逻辑错误放在十多年前我们研发的电信行业业务系统中都是不可容忍的,京东的实际业务处理水平确实是相当得有问题。

3.4          前台提示与后台逻辑冲突后前台的错误提示

还是3.2问题的一个延续。

9点多点击,提示:兑换优惠券需花费10金币。说明这个业务逻辑没有走后台判断。

而被拒绝后,前台没有获取业务逻辑判断的提醒代码或者说没有代码,只是给了一个拒绝信息,于是只能提示用户:手速太慢,券已经被抢光了哦!明天记得早点来抢哦!

这说明后台逻辑的推送要么没有异常处理,要么就是前后台分离开发后,前台对后台的异常处理做了简单化地响应处理。

这在业务逻辑上是不可能被容忍的。而这样的错误居然都检查不出来,京东的测试团队的能力不是一般得弱小。

时间: 2024-08-01 19:06:09

[技术讨论]关于前几天发布的京东bug上的问题分析的相关文章

抛开时代背景,任何技术讨论都是瞎耽误功夫

前一阵和一群十几年从业经历的老工程师们小聚,当年技术都很出色但彼此差不多的一群人多年后基本分成三类. 1.有在IBM等大外企的一批,从当年的人前显贵,到现在无法压抑的悲观自嘲.比如一位写DB2核心的大哥说自己至今还坚持一线编程却明知DB2的消失只是时间问题,实在不知道自己这是在干什么. 2.有独自创业的一批,号称多年来从没停止过创业,然而多年过去却没有真的做起来,如今还能骄傲的就是当年的辉煌,见证了多少次身边的成功和至今仍是创业者的身份. 3.还有就是在京东,阿里这样的大互联网公司.显然这些人是

[Redhat9.0]Models-3安装备忘录之LINUX篇

[Redhat9.0]Models-3安装备忘录之MODELS-3篇(未完待续……) 2010-01-26 11:32:54|  分类: Models-3|举报|字号 订阅 写在前面:不知道是因为版本还是机器的问题,总之smoke现在进入瓶颈阶段了,僵持了N久之后导师终于坚持不下去了,现在models-3只好暂时停止,真是可惜啊.现在主攻MM5,期望不要再出什么状况,时间不是我能耗的起的啊! ----------------------------------------------------

luogu P1120 小木棍 [数据加强版]

二次联通门 : luogu P1120 小木棍 [数据加强版] /* luogu P1120 小木棍 [数据加强版] 暴搜 + 剪枝 枚举可能的长度 挨个检查答案 二分显然正确性不能保障 搜索时从最大的开始找 放上当前木棍后的长度比枚举的长度要大, 则退出 若当前的长度与当前扫到的木棍长度相同, 或是还需要的长度与枚举的长度相同,则退出 若当前的木棍不符合要求, 则后面与它长度相同的木棍都不行 */ #include <algorithm> #include <iostream>

SQL Server 技术讨论专用 QQ 群

强烈推荐 SQL Server 技术讨论专用 QQ 群 QQ 群号: 213291913 注意事项: 本QQ群仅限于交流 SQL Server 技术,请勿灌水,否则直接踢人. 进群后请将群昵称改为实名,便于大家交流,群昵称格式为:地区-姓名. 听从指挥.文明交流.快乐学习.

概率法求解三阶幻方[C语言]

#include <stdio.h> #include <string.h> int in[9]={1,2,3,4,5,6,7,8,9}; int s[9]; int re[3][3]; int sum(int su[]) { int i,re=0; for(i=0;su[i];i++) re+=su[i]; return re; } int main() { int i,j,k,count=0; memset(s,0,sizeof(s)); int SUM = sum(in);

[已解决]关于python无法显示中文的问题:SyntaxError: Non-ASCII character &#39;\xe4&#39; in file test.py on line 3, but no encoding declared。

想在python代码中输出汉字.但是老是出现SyntaxError: Non-ASCII character '\xe4' in file test.py on line , but no encoding declared. (test.py是我自己的文件,提示错误出现在第4行, 你的文件也会得到相应的提示). 一个简单的示例test.py代码如下: 1 #!/usr/bin/python 2 3 print "你好吗" 在终端下执行python test.py指令之后, File

用nopcomerce3.8版本的同行注意了,前2天发布3.8正式版后,作者收到一些BuG,作者修复后重新提供了一个源代码包下载.

用nopcomerce3.8版本的同行注意了,前2天发布3.8正式版后,作者收到一些BuG,作者修复后重新提供了一个源代码包下载地址,不是github上的那个链接.去作者官网论坛我那个链接地址,或关注微信公众号aspnetcore发消息获取链接地址.我们只能帮你到这了 原文地址:http://www.nopcommerce.com/boards/t/43507/nopcommerce-380-is-released.aspx?p=4 要从这里下载:http://www.nopcommerce.c

【技术教程】教你如何用废旧电脑搭建服务器上传网站

[技术教程]教你如何用废旧电脑搭建服务器上传网站 一.教程所需要的工具 电脑一台(需要未分配的硬盘容量,我分出80G来用) U盘(centos7的启动盘,5g足够) 网线(接在路由器上,在局域网连接访问) 二.具体操作 制作启动盘: 硬盘有未分配的容量 安装linux系统(既然是当服务器,那就最小安装) 具体操作请百度,当初我刚开始安装也耗费了好多时间,其中要注意的是,系统默认启动盘是windows,而不是硬盘,当初我没注意,安装四五遍才发现问题,所以安装的时候要注意 配置网卡ip 安装宝塔(本

[2016 T-EDGE]王坚对话无人机教父:创新就要享受走在悬崖边的刺激

[环球科技综合报道]12月9日的T-EDGE年度盛典上,阿里云和YunOS的创始人王坚和无人机教父Raffaello D’Andrea展开了一场精彩的思想碰撞. 王坚,阿里巴巴集团技术委员会主席,历任阿里首席架构师.阿里云总裁.阿里CTO,加入阿里前曾任微软亚洲研究院常务副院长.Raffaello D’Andrea(拉菲罗·安德烈),人工智能领域世界顶尖专家,亚马逊机器人Kiva系统创始人,2016 IEEE Robotics and Automation Award获得者,被业界称为无人机教父