百科问答小站 logo
百科问答小站 font logo



程序出现bug是必然出现的情况还是程序猿水平有限导致的? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

bug的原因是没有做充分测试,更深层次的原因来自需求的不可充分测试性

如果需求可以做到严格定义,有完美自洽的逻辑,那么代码就很容易充分测试,只要测试到位可以几乎没有bug。比如各种数学算法的实现,bug就非常少。

而大多数软件面临的需求都是不能被严格定义的,甚至很多都是主观判断,连个客观标准都没有。

人类不是个很靠谱的东西,总会有随机错误,即使打字录入这么简单的事情都有1-3%的错字,何况写源代码这种比打字难得多的事情。

在研发成本投入足够,开发商也重视质量的前提下,bug数量主要取决于测试,而测试是否充分主要是需求决定的。

也许会有个别程序员水平欠佳,但是在测试充分的时候他们很快会被发现。


user avatar   ling-jian-94 网友的相关建议: 
      

第一,程序员是人,人一定会犯错,因为总有精神不集中的情况,静态检查永远无法发现所有的低级错误,覆盖测试也仍然不够

第二,对代码进行review和test可以有效消除bug,但这两种手段的有效性随逻辑复杂度升高而下降


因此,软件工程的主要目标一直都是控制复杂度。程序员水平的一个重要表征就是可以控制住每一段代码的复杂度,保证代码可读性和非耦合性,从而保证即便在精神不够集中的情况下也不会产生太多的bug。也有一些程序员在精神高度集中的情况下可以将很复杂的逻辑一遍写对,这是一种很有益的技巧,但在可能的情况下,我还是更推崇将问题拆分降低复杂度的方法。


user avatar   Ivony 网友的相关建议: 
      

主要是需求方水平有限导致的……


如果所有的需求都是well-defined的,那出现Bug的可能性还是很低的。



关键是程序员要实现的需求,别说well-defined了,很多时候连definition都没有。




  

相关话题

  个人信息的泄露在今天已经严重到了什么地步?对普通人的生活有多大的影响? 
  历史上有哪些作死的科学家?各有哪些作死行为?怎样评价其行为? 
  人类能走出银河系吗? 
  近几年国内有哪些令人意想不到的黑科技产品可能会在未来创造行业新风口? 
  发改委回应芯片项目烂尾现象:造成重大损失将通报问责,你怎么看?如何从源头上避免? 
  热爱编程的程序员,早期是因为什么对编程产生兴趣的? 
  假如英国养不起女王级航母了,印度会买吗? 
  用现在最高端科技,不计成本,做一把刀,能做出让一个普通刀客,在古代天下无敌吗? 
  有哪些看上去很酷炫很屌、但内行人认为一点都不屌的技术或产品? 
  如果让无所不能的神来写代码,是否能写出没有bug的软件? 

前一个讨论
麦饭石炒锅外表面是有什么涂层吗?为什么会不粘锅?这种锅健康吗?
下一个讨论
中国的基尼系数是多少?





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利