调试器已经成为强大的工具,但是像毒品一样,我们是否也变得过于依赖它们了? 由于可怜的开发人员在调试器中花费的时间多25倍,因此人们很可能会在调试器中进行分区,而不是使用其他方法。
缺陷很常见 ,但不是必需的 。 他们之所以进入代码,是因为:
- 没有计划代码路径
- 开发人员在编码时不专心
- 开发人员不了解要求
仅当您了解代码路径时,才可能进行缺陷校正,而调试器并不是实现此目的的最佳方法。
开发人员通常使用调试器来了解问题,但是仅仅因为调试器很常见并不能使它们成为查找缺陷的最佳方法 。 我并不是在提倡回到“过去的美好时光”,但是有一段时间我们没有调试器,而我们却可以调试程序。
注意:在嵌入式系统中,如果不使用调试器(或硬件调试器),很难获得反馈。 本文不适用于极少有调试器替代品的嵌入式开发人员。
避免缺陷
消除缺陷的绝对最佳方法就是根本不创建缺陷。 您可能会持怀疑态度,但是实际上已使用诸如“ 个人软件过程” (PSP)之类的东西来防止每2个缺陷中的1个进入您的代码。 超过数千个项目:
个人软件流程将生产率提高21%,并将代码质量提高31%
NIST在2002年进行的一项研究报告称,软件漏洞每年给美国经济造成595亿美元的损失 。 如果所有开发人员都首先专注于不制造缺陷,那么这种巨大的浪费可以减少一半。
PSP不仅专注于代码计划,还使开发人员知道他们实际造成了多少缺陷。 这是两个图表,显示了同一组开发人员及其在PSP培训之前和之后的缺陷注入率。
PSP培训之前 | 经过PSP培训 |
发现缺陷
使用调试器了解缺陷的来源绝对是一种方法。 但是,如果这是最好的方法,那么为什么贫穷的开发者在调试器中花费的时间却比优秀的开发者多25倍 ? (请参阅不需要经验 !)
较差的开发人员每2小时就会在调试器中花费一周的时间,而优秀的开发人员则会这样做。
没有人说调试器没有用处。 但是,调试器是一种工具 ,仅与使用它的人一样好。 专注于工具掩盖了技能的缺乏(请参阅敏捷工具不会使您变得敏捷 )
如果仅使用调试器来了解缺陷,则最多可以消除所有缺陷的大约85% ,即,代码中始终存在7个缺陷中的1个。
您会发现他们的组织实现了97%的缺陷清除率 ,这会让您感到惊讶吗? 软件检查采用寻找代码中所有缺陷并将其消除的方法。 在此处了解有关软件检查及其工作原理的更多信息:
软件检查可将生产率提高21%,并将代码质量提高31%。
更好的是,受过软件检查培训的人员倾向于将更少的缺陷注入代码中。 当您熟练地分析代码中的缺陷时,您就会更加了解缺陷是如何首先进入代码的。
但是有趣的是,开发人员不仅将更少的缺陷注入代码中,而且还可以达到高达97%的缺陷清除率,此外:
花费在代码检查上的每一小时将正式质量检查减少了4个小时。
结论
如上所述,有时熟练的专业人员会正确使用调试器。 但是,如果您真的对成为软件专业人员感兴趣,那么:
- 在使用键盘之前,您将学习如何计划和思考代码
- 您将学习并执行软件检查
- 您将学习诸如PSP之类的技术,从而使您在代码中注入更少的缺陷
如果调试器是减少和消除缺陷的主要工具,则您将其用作拐杖。
相关文章
是否希望看到更多神圣的牛被打倒? 查看:
? |
没错,我是所有人中最大的“失败者”。 我相信我在这本书中至少犯了一次错误!
资源资源
- 吉尔伯,汤姆和格雷厄姆,多萝西。 软件检查
- 琼斯,雀跃。 评分和评估软件方法,实践和结果 。 2008。
- Radice,Ronald A. 高质量
翻译自: https://www.javacodegeeks.com/2014/05/are-debuggers-crutches.html