解软件BUG的方法也可以用些修机器的思维

发表于:2012-10-10 10:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:lezhiyong    来源:51Testing软件测试网采编

  早些年刚毕业时候,干过一小段时间的电子设备维护,现在干上了软件开发,回顾起来,两者也有很多相似的地方。正所谓方法是相通的,只是用的地方不一样而已;不管做什么事情,学会使用方法是最重要的。

  那时候修机器首先第一步就是熟悉设备,需要看设备使用说明书并了解设备运行原理,最高境界是需要要让设备的传动、电路、油路、气路都可用在自己的大脑中run起来。同样,程序bug修改的基本要求,跟起何其相似,需要熟悉程序的源代码与开发设计文档,如果能做到让程序每个模块每个信令流和数据流以及线程进程在自己大脑中运行起来,那么对该软件也很熟悉了,解什么bug也都轻而易举。

  修机器的第二步,当然就是熟练运用万用表、示波器等工具提取故障设备状况的很多信息,同时结合设备电流电压表等指示器获取设备输出详细信息,有了这些信息,可以了解到设备的运行状态和问题所在。修改软件的bug同样如此,当软件bug出来后,举个例子我们可以用各种工具获取软件的bump信息,dll调用信息等了解软件运行状况,如果软件有日志输出,它就是设备的电流电压表或者飞机的黑盒子保存着软件运行的宝贵信息,对bug定位帮助很大。

  修机器的第三步,就是定位问题发生的地方了,对于维护人员,定位到小电器或大电器的电路板基本就解决问题了。一个简单的定位方法就是用好的模块将可疑模块换上,如果设备恢复正常,那么我们就可以在这个模块再用上述方法迭代去更准确的定位问题模块。对于软件bug,特别是成熟产品的bug出来后,最好先从软件运行的环境配置、网络状况、文件版本等宏观大范围去判断,不要一开始就钻到代码中去试图修改代码去解决问题。一时定位不准的bug,换个运行环境看看软件是否恢复正常?将模块逐个退回上个版本,看看是否能恢复正常?这同样是一个从粗到细的定位问题过程,直至找到问题发生模块。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号