我手上有一台X998的手机。当前软件版本为370,算是比较新的了。一天我在电信营业厅买了张100元的充值缴费卡,准备充值。结果在充值的自助语音提示下操作时,语音提示我输入的账号不正确。我仔细看了看屏幕上的数字,和账号一模一样的。
第一个念头是,充值卡有问题?后来很快就排除了这个可能性,因为毕竟是在电信营业厅购买的,应该不会是假冒的。X998手机软件的BUG?我不敢确认。毕竟发布了这么多版本了,这种基本问题应该早就验证过的。为了确认这一点,我找了西研所的手机测试。同样的充值卡,能正常充值。那么很显然就是我们软件的BUG了。
首先考虑这个充值过程按键较多,是否是因为按键较多引起的?我在公司看了一下代码,按键数组长度为32。而我充值输入的数字只有21个,应该不会是这个原因。那么就只可能是和上层应用处理相关了。我把问题描述和充值卡都交给了项目经理,项目经理找人去处理去了,剩下就没我什么事了。
后来上层应用的人经过分析代码后发现:X998是全键盘手机。数字键和字母键有重合的。而数字0对应的按键同时也是一个Caps的功能键。而数字键1同时也是字母键W。W在拨号的时候据说可以当做呼叫转移的有效键。于是当输入数字的时候,如果先输入0再输入1,就会被认为是先按了Caps键,在按了W键。另外,实际拨号发送的键值和手机界面上显示的数字并不一致,是两个数组变量。因此,尽管界面上显示我输入正确,但实质上拨出去的号码少了0后面的1。所以就提示我输入的账号错误了。
这个问题的技术原因找到了。那相关责任人的原因呢?
之前测试人员曾经发现过类似的原因,但他们改用短信充值可以成功就忽略了这个问题。导致该问题一直遗留到现在——马上就要发货的时候。幸好我买了一张充值卡,幸好这种充值卡的账号特殊,幸好我及时向项目经理反馈该问题。但是市场没有这么多幸好。我们需要保持一颗敏锐的心,以便分析和应对各种问题,否则只会给自己埋下更多的陷阱。想想还真是可怕,还有几天就要发货了。如果这个问题没有在发货前暴露出来,等到大批量投入市场后,由客户投诉反馈的话。那么,那些辛辛苦苦加班一年的软件工程师,在出现这种批量事故后又会被扣绩效,士气会受到极大打击。从这个事情可以看出,分析故障现象一定要找到根源,且不能随意就忽略任何的小故障现象。否则出来混迟早要还的。