什么是bug?对于bug的理解,之前学C语言的时候我一直以为bug就是错误。写程序的时候经常会忽略掉一些极端可能,这就造成了代码的不稳定性,如果在一个团队中,那这样的问题可能会造成一个更大的错误。

 

读了《构建之法》,我开始了解到,bug其实是一个更加广泛的概念,对于一个软件来说,如果你设计了一个不合理的功能,这就算bug,Bug可以分为这三个组成部分:症状(Symptom)、程序错误(Fault)、根本原因(Root cause)。

(1)Symptom:即从用户的角度看,软件出了什么问题。

例如,在输入(3 2 1 1)的时候,程序错误退出。

(2)Fault:即从代码的角度看,代码的什么错误导致了软件的问题。

例如,代码在输入为某种情况下访问了非法的内存地址——0X0000000C。

(3)Root Cause:错误根源,即导致代码错误的根本原因。

例如,代码对于id1==id2的情况没有做正确判断,从而引用了未赋初值的变量,产生了以上的情况。

 

在以后结队开发的过程中,应该注意自己代码的健壮性,如果出现错误,怎么处理掉这个错误,这些必须得要考虑。