技术文章

程序员为什么要一直改bug,不能一次性写好吗?

不能一次写出没有bug的代码,也不能一次修复完全,这和一口吃不成胖子是一个道理。

程序中的bug有不同的种类,原因也各不相同,三六九等。可以说是“不同水平”的bug,一定程度上反映了软件工程师的水平。

程序员为什么要一直改bug

1,代码级别的bug

比如变量错误、计算公式错误,还有常见的页面显示、文案信息等错误。

这类问题容易修复,并且能够通过代码检查、功能测试等方式减少甚至避免。

2,逻辑错误

代码实现和业务需求不一致,比如计算每月的最后一天,因为每月天数不固定,可以使用下个月的1日减去一天,得到本月最后一天。

这类bug经常由于测试覆盖不到而较难发现,往往需要编写单元测试。

程序员为什么要一直改bug

3,调用模块错误

随着应用系统功能越来越复杂,开发时会根据系统功能进行模块划分,然后通过接口调用协作。

不同模块的接口、数据、还有版本不一致时,会产生一些“复杂”的bug,不仅难于发现,也较难修复,常常需要配合单元测试、自动化测试,并在修复后进行回归验证。

4,系统集成bug

拿近期发生的中行原油宝穿透事件举例,中行原油宝在提交价格时,验证负数价格无效,所以也就禁止了进一步提交操作。从单个系统看,这样做是没问题的。

但是还有交易所系统,它是允许负数价格的,这就悲剧了。

多个系统间的bug需要通过完整的用例设计来避免,比如中行原油宝,测试要覆盖到交易所系统的完整用例。