程序员怎么样才能保证自己的程序没有BUG

来源:互联网 发布:个人淘宝开店流程 编辑:程序博客网 时间:2024/05/01 22:23
代码复核(Review)是为了找错误吗?看代码能看到逻辑错误吗?
不,跑测试程序都不能找到错误,看代码怎么可能看出来?
复核代码的目的有:
* 检查代码是否规范,如命名规范,注释
* 保证一段代码至少有两人共同熟悉,可以由任一人来更改。
* 检查设计思想是否如实实现,代码如何表达设计
* 审察未文档化的细节设计,即由代码直接表达的设计,由代码人口述设计并对照代码
* 检查是否暴露出原设计的缺陷,需要重新设计?


程序员是否认为自己的程序有错误?
自信没有错误和怀疑代码还有错误,哪个是正确的心态?
我认为程序员永远都不会有100%的自信。
即使程序已经发布,被用户接受很长时间,只有好评没有抱怨,依旧不能确认有没有错误。
只能假定错误是永恒的,它们一直在那里,只是不到条件爆发。
一个程序员能做的就是,排除所有肤浅的错误,加大隐藏错误出现的几率并找到它们,
采用一些容错性代码减小可能的错误,减少程序发布后爆发的机率。


测试的目的是为了发现错误,
但是单元测试,功能测试的覆盖度能有多高?
没有100%覆盖的测试。就是说,总是有一些状态是测试不到的。
代码人员认为不可避免地存在错误,需要测试,测试人员认为测试覆盖度不可能100%,还是要代码小心。
这是一个头痛的问题,结果是没有完美的程序。

单元测试是白箱测试,可以根据代码实现将注意力放到最关键的部位。
但仍然不是100%覆盖的。
单元测试一般针对的是边界数据,不要求覆盖度,而更要求有效性。
其目的更主要的是保证代码更改不会破坏原有的正确性,是提供保障而不是查找故障。


保证没有错误的唯一方法是不写代码,减少错误的最好方法是少写代码。
简单的设计和实现是减少错误的最佳方法。简单的代码错误必定少。
画蛇添足式的功能则是最大的错误发源地 
原创粉丝点击