“那我想告诉各位的是,你们太乐观了。”
“任何系统在研发的过程中,都会存在bug,这类程序漏洞形成的原因有很多,除了极少部分是因为程序错误造成的,更多的,是对应用场景的想象力不足造成的。”
“上一轮测试我们的目的是什么?是检验需求书当中设定的系统功能能否实现,所解决的,其实是系统最基本的能力,也就是‘正常工作流能不能完成’的问题。”
“可是大家想一想,现实工作当中,我们能够保证每一个操作员,百分之百的操作正确,不出错吗?”
“而很多的系统bug,就藏在这样的地方,你正常操作的时候,它永远不会暴露,只有在输入错误的时候,才会暴露出来。”
“我给大家举一个简单的例子,来明这样的bug的危害性,不过这事儿大家最好不要外传,我们内部知道就可以了。”
“前段时间我们公司开户的那家银行发生过一件糗事儿,一个柜员在操作的时候犯了一个错误,将客户的证件号,录入到了金额栏位。”
“因为客户本来只是取一百块钱的额交易,因此无需授权复核,这笔交易就这样被录入了系统。”
“直到夜间进行批量清算的时候,这笔交易在系统里参与清算,一下子就把分行的现金科目,对公转账科目,库存科目全部清空,系统完全宕机了。”
“为什么会这样?因为这笔活期支取交易在系统认定里是一笔文数字,将整个分行的所有现金库存全部用于支付,金额都不够!”
“更夸张的是这是一笔跨行业务,本身还要通过人行和它行进行清算,也幸好是系统因为现金库存清零而宕机,没有形成清算文本发送给人行,要不然可能会造成全省金融系统第二没法开门。”
“这个问题严不严重?一省金融机构停摆,哪怕只有一分钟,都是一件多么可怕的事情?”
“可是落到系统里,这个事情避免起来简单不简单呢?”周至问道:“现在同志们对系统都非常熟悉了,只需要在在金额输入栏位设定一个提示上限,或者在数据进入系统之前进行一个大金额授权复核,反正有无数种简单的办法,就能够避免这个问题。”
“可是问题为啥还是出现了呢?其实就很简单的三个字——没想到。”
“在座的都是业务能手,这样的错误在大家看来简直就是荒谬,但是在现实里,架不住它就是会发生,或者有发生的可能啊。”
“哪怕它发生的概率很,十年二十年都不大会发生一次,也不代表它一旦发生了后果就不严重,刚刚我所举的那个例子已经很明问题了。”
“因此如何避免类似的事情在我们的系统里发生,就是这次调试测试的重点!”