1.  起因

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

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

2.  过程详述

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

这一天决定兑换一下这种100-10的券。由于提示是早上9点開始,此前9点多点击。都没有抢到,我仅仅是认为奇怪。

今天我仍然在9点多进行了点击兑换,系统提演示样例如以下图所看到的:

系统告诉我兑换优惠券须要花费10金币,我点击马上兑换。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

结果系统显示说,手速太慢。券已经被抢光了哦!

明天记得早点来抢哦!

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

但是我明明记得抢光了应该是灰色的。而这时候是红色的。

注意。不是上面已领取得券。而是金币30下方的券。

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

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

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

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

3.  分析

以下逐项进行相关bug的分析描写叙述。

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

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

从这个现象能够看到例如以下问题:

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

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

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

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

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

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

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

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

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

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

3.2          提示信息与逻辑不符

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

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

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

或者说,提示仅仅是前端的推送和后台业务全然无关。

这种设定会使得推送的结果由于前端程序猿的偷懒或者疏忽等问题而造成不必要的麻烦。甚至可能应该是每个页面单独写提示。而不是系统进行的统一提示告警处理模块完毕的。

对于成熟的系统。全部的异常和提示信息应该是同一模块统一完毕的。要依据不同的逻辑展现不同的提示结果,不至于让用户认为非常奇怪。

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

3.3          提示信息欠缺

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

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

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

还是3.2问题的一个延续。

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

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

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

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

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

  1. sae-v2ex 一个运行在SAE上的类似v2ex的轻型python论坛 - 技术讨论 - 云计算开发者社区 - Powered by Discuz!

    sae-v2ex 一个运行在SAE上的类似v2ex的轻型python论坛 - 技术讨论 - 云计算开发者社区 - Powered by Discuz! sae-v2ex 一个运行在SAE上的类似v2e ...

  2. VR技术在数据中心3D机房中的应用(上)

    VR技术在数据中心3D机房中的应用(上)   前两天跟朋友A吃饭,吃着吃着就说到了VR.近几年来,VR技术越来越火,感觉能跟VR沾点边的都特别高大上,朋友A也是,一提到VR,就怎么都掩盖不住他发自肺腑 ...

  3. 向PE文件植入后门代码技术讨论

    写在前面的话 这篇文章将介绍使用codecaves对PE文件植入后门代码.有几个很好的工具可以帮到你了.比如BackdoorFactory和Shelter将完成相同的工作,甚至绕过一些静态分析几个防病 ...

  4. 【技术讨论】RF环境搭建手册

    (原创文章,转载请注明出处.) 简要整理下环境搭建的步骤,以便快速.准确的搭建测试环境. 一.环境搭建 一.Python 2.7 1. 不要用Python3.6,很多库3.6中还没有,wxPython ...

  5. 技术讨论]mongodb驱动的正确使用方法

    原文地址:http://cnodejs.org/topic/5190d61263e9f8a542acd83b mongo数据库在nodejs平台有2个常用驱动,mongodb和mongoose,mon ...

  6. vue+Ueditor集成 [前后端分离项目][图片、文件上传][富文本编辑]

    后端DEMO:https://github.com/coderliguoqing/UeditorSpringboot 前端DEMO:https://github.com/coderliguoqing/ ...

  7. [ 技术人员创业Tips ] 1:抓住优质客户(上)

    写一篇技术以外的内容,可能会得罪一些人,轻拍,此外本文写的比较随意,写到哪里算哪里,轻拍. IT业不知道从什么时候起特别流行谈创业,似乎不谈创业就落伍,我不评价这种风气的好坏,只提一些自己的一些经验和 ...

  8. 分布式缓存技术redis学习(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  9. VC++大数据量绘图时无闪烁刷屏技术实现(我的理解是,在内存上作画,然后手动显示,而不再直接需要经过WM_PAINT来处理了)

    http://hantayi.blog.51cto.com/1100843/383578 引言 当我们需要在用户区显示一些图形时,先把图形在客户区画上,虽然已经画好但此时我们还无法看到,还要通过 程序 ...

随机推荐

  1. mongodb学习(2)--- nodeJS与MongoDB的交互(使用mongodb/node-mongodb-native)

    转载:http://www.cnblogs.com/zhongweiv/p/node_mongodb.html 目录 简介 MongoDB安装(windows) MongoDB基本语法和操作入门(mo ...

  2. HDU [P3849]

    tarjan 求 无向图的割边 (桥) 边 (x,y) 是桥当且仅当, 对于 x 的子节点 y ,low[x] < dfn[y] 对于连向父节点的边要特殊处理 #include <iost ...

  3. 洛谷 P1072 Hankson 的趣味题

    题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲 ...

  4. HDU 1871 无题

    无题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  5. Day 20 Object_oriented_programing(摘)

    面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux ...

  6. HDU4757 Tree(可持久化Trie)

    写过可持久化线段树,但是从来没写过可持久化的Trie,今天补一补. 题目就是典型的给你一个数x,和一个数集,问x和里面的某个数xor起来的最大值是多少. 最原始的是数集是固定的,只需要对数集按照高到低 ...

  7. luogu P2744 [USACO5.3]量取牛奶Milk Measuring

    题目描述 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位——译者注) 他的最好的牛奶,并把它装入一个大瓶子中卖出.消费者要多少,他就给多少,从不有 ...

  8. 2016集训测试赛(二十四)Problem B: Prz

    Solution 这道题有两个关键点: 如何找到以原串某一个位置为结尾的某个子序列的最晚出现位置 如何找到原串中某个位置之前的所有数字的最晚出现位置中的最大值 第一个关键点: 我们注意到每个数字在\( ...

  9. laravel 性能提升

    php artisan optimize 相当于: 1.composer dump-autoload --optimize // composer 层面优化加载速度 2.php artisan cle ...

  10. shell实践--shell内嵌指令实现查看上线时间

    实践小点子: 1. 做一个shell 内嵌指令例如:ls,cd,pwd这样     就实现查看上线多久:   解决办法有两种: 1) 利用脚本,如新指令为look;利用别名的方法,将look.sh脚本 ...