本文主要介绍“软件缺陷的定义、分类、检测和修复概述”。在日常操作中,对于总结软件缺陷的定义、分类、检测和修复,相信很多人都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解决“总结软件缺陷的定义、分类、检测和修复”的疑惑!接下来,请和边肖一起学习!
00-1010计算机科学中的许多中文单词是从英语翻译过来的,有时它们不能准确地描述或描绘单词的真正含义。在软件领域,你能想到的与缺陷相关的词汇可能包括:bug、缺陷、故障、错误、失败、异常等等。说实话,我一直不明白这两个词的区别。然而,了解这些单词之间的差异不仅仅是一个文字游戏,还可以帮助我们了解检测和修复技术的差异。所以我谷歌了一下,但是大多数文章对这些词有不同的定义。以下是我同意的软件代码中这些词的定义。
middotFault/Bug:软件中出现不符合业务逻辑的代码,例如,编号写成-;
middot错误:软件运行中出现意外值,例如a的值为2,计算为3;
middot失败:软件与人的交互中出现意外行为,如程序崩溃。因此,故障可能导致错误,最终可能导致故障。请注意,这里是可能的,但不是确定的。
middot缺陷:一种缺陷是一种代码缺陷的总称(归纳),如内存泄漏。
故障通常需要从错误和失败中检测出来,也就是比较程序的执行结果是否与预期的规格一致。这个过程其实就是调试和测试。故障也可以称为与业务逻辑相关的缺陷。然而,缺陷是一个不依赖于执行结果和预期规格的软件问题,所以缺陷通常是通过静态扫描(不运行)代码来检测的。
00-1010从上面可以看出,故障是通过测试检测的,而缺陷是通过静态分析检测的。在企业中,故障检测的普及度和认可度通常高于缺陷检测,主要原因如下:
(1)故障会直接影响软件的行为,被认为是严重的问题,而很多default不能直接影响软件的行为,或者只影响软件在非常特殊的场景下的行为,开发者认为是可有可无的;
(2)2)Fault引起的软件错误容易被观察到,并且有直接证据表明软件中存在错误,所以开发人员会倾向于修改,而default通常很难观察到;
(3)测试的门槛较低,测试人员只需要编写一些测试脚本,但静态分析需要程序分析中技术的积累;
(4)静态分析的一些固有缺点(耗时、误报)引起开发人员的不满。
在自动修复方面,近年来在学术界比较流行,在企业也在慢慢使用,但目前应该还处于起步阶段。与检测相反,故障的自动修复是困难的,因为它涉及业务逻辑,有些逻辑需要手动添加。当然,最近许多学术研究都使用机器学习来自动学习故障的自动修复。然而,许多缺陷是在没有添加与业务逻辑相关的代码的情况下修复的,因此自动化程度可以达到更高的水平。但是,目前这方面还没有自动化工具。
软件缺陷与其分类
,不难发现Fault的检测已经成熟。然而,缺陷的检测并没有得到足够的重视。在过去,我们可能只关注软件的正确性,所以故障检测和修复是流行的,但是缺陷也会影响软件的质量,这也需要注意。
最近公司提倡提升软件工程能力,打造高可信的软件产品,其中也强调,我们不仅要关注软件功能的正确性,还要关注非功能方面的质量,写出“漂亮”的代码。因此,缺陷的自动检测和修复是一个有价值的方向。以下是一些可能要做的事情:
(1)加强对开发人员关于default的培训,让他们了解常见的缺陷,在编码的时候尽量避免写这类缺陷,这比后续检测修复付出的代价要小得多。虽然公司里有很多定义不同缺陷的编程规范,但开发人员可能不会仔细研究。如何让开发者意识到缺陷的危害至关重要。
(2)强化代码评审机制。这一点我个人深有体会:没有Review的时候,写的代码比较随意,有Review的时候,会综合考虑,毕竟要给别人看;
(3)自动检测3)缺陷。对于故障检测,人比机器好(比如写测试用例),但是对于缺陷检测,机器比人好(比如枚举程序路径),所以缺陷检测更适合自动化。目前,该公司还推出了一些缺陷自动检测工具,如coverity、fortify、findbugs等,但这些工具通常只作为黑盒使用。这可以覆盖更多的缺陷,但也带来了一些问题:同一缺陷实例被不同的工具重复报告,很难添加一些缺陷检测规则和处理缺陷异常场景。因此,我们可能需要一个统一的缺陷检测工具。
(4)自动修复4)缺陷。除了耗时和误报,缺陷检测也不受欢迎,因为开发人员不知道如何修复它。因此,缺陷的自动修复也是提高缺陷关注度的有效途径。此外,与断层的自我相比。
动修复,Defect的自动修复对于机器而言是要简单一些的,因为Defect的类别是有限的可以枚举的,同时Defect的性质是比较形式化不依赖于业务逻辑的。未来希望能开发出一个统一的Defect修复工具。
到此,关于“总结软件缺陷的定义、分类、检测和修复”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/37468.html