程序设计最头疼的就是出现BUG,按理说程序出错是常态,就像天下没有无缝的蛋一样,再怎么严谨、再怎么经验丰富都没用。最典型的就是我们的Windows操作系统了,经常补丁来补丁去,更新极快,更新的目的无非就是被人发现了BUG。
在我个人认为,虽然BUG一定会有,但决不是你解释的理由,经过我多年软件设计的总结来看,BUG通常80%的原因不是程序本身设计时出现,而是在于修改、版本管理、文件存档等等低级失误。
比如程序初次完成后升级功能,升级完后测试、试产都没有问题,到正式生产时,发现程序版本还是以前的旧版本,文件发错了.....不知道说什么好呢?又比如程序完成后已量产数月,客户要求更改更改程序,并且改了好几个版本,同时也就存档了好些个文件夹,时间一长,尽然忘记是从哪个版本上变更了?
所以说软件设计是一个反复修改的东西,修改自然就会存在混淆、忘记的情况,那么在企业里也会增加许多的版本控制,但是版本都在在程序文件以外来做的,也就是程序本身内容变动后,品质人员或自动化测试工装能否检出才是关键,我的做法就是在程序内部做校验码计算,只要程序内容有变化,校验码就不一样,而这个校验码是可以通过自动化工装测出,只要文件一下发,就不会存在程序使用错误。具体C语言程序做法如下:
首先自己计算出整个ROM区的校验码,每次上电就运行一次,并上传给测试工装,工装根据下发的文件校验码进行比对,若是正确则进行测试,不正确直接报警,防止程序流出市场。
// 程序ROM空间校验码计算子函数