`
jiagou
  • 浏览: 2529922 次
文章分类
社区版块
存档分类
最新评论

[技术讨论]网络软件开发的bug分析与公司开发管理问题之12306

 
阅读更多

本文是第一篇,也是包括前言部分,全文可能会伤害一些公司的码农兄弟们,但是,请见谅,这确实是各位公司的现状和事实,而且没有拿到截图的或者忘记截图的,我都不敢发。毕竟要以事实为依据么!


1. 引言
本文中会举例分析国内各公司网络软件中的bug情况和基于这些bug可以分析得到的这些公司的开发管理状况。本文中的数据取自2007-2012年网络上运行的各种游戏和软件系统,还有一些数据并没有到发布的状态,所以,后期会补充从2005到2012年一些游戏数据情况分析的文字出来。
笔者用过的网络系统和软件数量并不够多,有些的bug发现了也没能及时保留下来,还有些bug属于无关痛痒的,下面只是一些保留下来的问题,并且代表着一些漏洞或者风险的bug。
2. 12306
2.1 改签票款计算错误
先从最简单的看起,这个也是大家可能都会疏忽,甚至可能在这里丢过钱的,12306出现的改签票款的计算错误。
两张6.5/张的火车票改签成2张13/张的火车票,居然出现了如下的计算结果图。

上图略小,可能看不清楚,下面用局部图来表示。

可以看到退还的票款是6.5,不是正常的退票13块,也就是说,2张6.5的票,要么计算成一张退票,要么故意黑掉了一张的退票费,反正12306到目前的退票都是不清不楚的,查证的时候人家就是一句话退过了,自己去找银行。
于是我退出,重新进行改签,这次的结果如下图所示。

详细局部图如下。

这次的计算就正确了。
前后十几秒左右的时间,却出现了两种不同的结果。
我不知道有多少人因为没有注意这一点而损失了自己的钱,12306为什么会这样呢?

从代码层面考虑,同一个过程的代码执行应该只可能得到一个结果,上面我的操作过程中应该不会涉及到系统更新的问题,那就是说,在这里实际上应该是执行了两个方法过程。或者说,有两个计算退票款的方法在执行中,第一次执行的是错误的方法,第二次执行了正确的方法,那就进一步说明,这里应该有一个判断在执行,确定到底执行哪一个退票方法。
到这里,我们已经无法继续分析,因为下一步的分析应该是去检查代码中对应的部分,进行bug的修正和分析了。
2.2 买票的判断逻辑缺陷
因为订票订不到从北京到宁德的,于是抢到了一张北京到温州南。

然后就想是否可以直接买一下温州南到宁德的车票,查询的结果是这趟车从温州南到宁德还有很多座位,于是下单,最后提示如下图所示。

也就是说,在12306的分析中是用身份证号码和车次作为关键词进行重复订票查询的,并没有增加车上的行程作为判断条件,因此算是一个判断条件缺失,造成了上面这种本来应该可以购买,因为并不违背铁道部的买票规定的票,却实际上无法购买。

看完本文是不是有一种想要去查一下过去退票和改签的退款信息的冲动呢?
后记,请期待下一篇 阿里

分享到:
评论

相关推荐

    程序员简历模板(面向java开发工程师+软件开发)

    程序员简历模板(面向java开发工程师+软件开发) Java实习生 xx科技发展有限公司 对数据分析平台3.0项目进行二次开发与维护 实现数据分析师和产品人员提出的新需求 修改现有模块以适应新需求 排除平台故障与...

    毕业设计:基于SSM的mysql-ssm软件bug管理系统(源码 + 数据库 + 说明文档)

    毕业设计:基于SSM的mysql_ssm软件bug管理系统(源码 + 数据库 + 说明文档) 第2章 系统开发平台及相关技术 3 (一) JSP运行环境 3 (二) 开发介绍 3 (三) 业务流程分析 4 第3章 系统分析和设计 7 (一)系统...

    毕业设计-基于SSM的mysql-软件bug管理系统-设计与实现(源码 + 数据库 + LW + 演示视频).zip

    相应的统计分析函数的速度和错误率可以反映出工作人员的工作效率,整个设计团队的软件开发方面和能力可以进一步提高。 第5章 系统的实现 14 (一) 系统登陆界面 14 (二) 系统主页面 14 (三) 用户管理模块 15 ...

    BugFree(Bug跟踪管理系统) v3.0.rar

    也非常欢迎大家就使用过程中的任何问题和建议在 自由软件BugFree交流 微群进行讨论。 BugFree 3.0 主要改动如下 程序整体重构。新版采用了 PHP 的 Yii 框架,方便进行二次开发。在操作上,所有操作都在固定的产品下...

    Bug管理系统 struts2+sping2.5+hibernate3(2-2)

    注:本程序分两部分上传,需要两个文件同时才能解压。...本程序尽量包含了开发当中遇到的一些问题及解决方案。同时欢迎广大网友到作者的群内讨论交流。 本程序适合于想学习JAVA技术或框架技术的初学者阅读。

    redmine项目管理软件

    Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等,还可以集成其他版本管理...

    常见软件测试工程师面试题

     软件测试人员负责软件开发部门的新产品测试及原有产品的升级测试,负责软件问题解决过程跟踪,负责软件开发文档开发工作的规范化及管理开发部门的产品文档,制作用户手册及操作手册,负责产品的上线测试,监督软件...

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则...

    测试培训教材

    按照尽早进行测试的原则,测试人员应该在需求阶段就介入,并贯穿软件开发的全过程。就测试过程本身而言,应该包含以s下几个阶段。  -测试需求的分析和确定。  -测试计划。  -测试设计。  -测试执行。  -...

    Bug管理系统 struts2+sping2.5+hibernate3(1-2)

    注:本程序分两部分上传,需要两部分同时才能解压。...本程序尽量包含了开发当中遇到的一些问题及解决方案。同时欢迎广大网友到作者的群内讨论交流。 本程序适合于想学习JAVA技术或框架技术的初学者阅读。

    HTML5移动Web开发指南.pdf

    由于HTML5技术非常新,国内很多开发者在实践过程中经常遇到非常多的困难,例如如何入门与解决BUG等常见问题,都很难找到解答问题的中文资源。因此,开发者们亟需一本能够带领他们入门的HTML5书籍。 2011年也是移动...

    QA要不要追究BUG发生的原因

    有人认为寻找BUG的原因是开发的 QA要不要追究BUG发生的原因 软件测试 这篇文章是有感而发,因为和几个同事在这个问题上达不成一致的意见,所以写出来自己的观点,希望能引起大家的思考和讨论。 软件测试到底要...

    程序调试思想与实践

    本书将调试作为一门专业的学科进行研究和分析,提供大量的代码实例和问题描述,对调试的各个方面进行细致而深入的阐述和讨论。全书以bug为中心,围绕调试这一主题进行组织。第2章到第5章包括bug的诊断、分类以及它们...

    ARM 嵌入式LINUX 系统构建与驱动开发

    买板子可以把注意力集中在软件开发上,软件开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是以便调试一边写驱动和程序,每次写驱动前就要先确认硬件没问题。 另外,买板子更省钱和时间,我自己做的板子,...

    开源项目管理系统redmine5.0.2,windows版一键部署,非常方便

    Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等,还可以集成其他版本管理...

    纳6免费团购系统 3.1.zip

    • 【讨论区】是用户与用户之间,用户与网站之间的沟通交流,便于用户最大化的讨论遇到的问题 纳6后台介绍 • 【站点设置】是用来管理网站名称、标题、开启权限等基本信息进行设置的管理模块 • 【用户管理】是...

    软件测试通过标准(学习总结).doc

    (4) 剩余三类四类有争议的bug,测试人员和项目经理需讨论通过,如果无法达成一致,需项目管理办公室介入,决定是否遗留有争议的Bug。 (5) 测试结果不通过时,经商议,剩余Bug虽重要但不影响本次使用,需出具一...

    开源软件之道.part2of2

    第9章 开源软件之开发工具 120 9.1 eclipse 120 9.2 netbeans 122 9.3 apache ant 124 9.4 apache maven 126 9.5 cvs 128 9.6 subversion 130 9.7 git 131 9.8 bugzilla 133 9.9 junit 135 9.10 testng 137 第10章 ...

    ASP.NET学生宿舍管理系统·精简

    【开发环境】使用软件:Visual Studio2015,SQL2014 使用语言:ASP.NET 【功能实现】◇用户管理:不同权限用户实现不同管理功能。超级管理员可以管理宿舍楼信息、学生管理、宿舍信息、用户查询等信息;普通管理员...

Global site tag (gtag.js) - Google Analytics