首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态代码分析和代码质量之间有什么区别?

静态代码分析和代码质量之间有什么区别?
EN

Software Engineering用户
提问于 2016-03-15 07:07:31
回答 3查看 241关注 0票数 2

我需要知道静态代码分析和代码质量是否相同,因为我需要找到代码质量的工具,每次我搜索它时,我都会得到与静态代码分析相关的工具的响应。

EN

回答 3

Software Engineering用户

发布于 2016-03-15 08:28:05

“代码质量”是一个指标,它告诉您“代码有多好”,例如。它是多么容易理解和可维护。问题是,这是一个如此模糊的术语,以至于没有人同意这个度量标准到底意味着什么,以及它应该如何衡量。见这里

对于许多程序员来说,代码质量是非常主观的术语,对于一个人来说,什么是好代码,对另一个程序员来说,什么是糟糕的代码。

现在,如果将“代码质量”定义为“代码中未固定问题的数量”,则静态代码分析工具可以度量代码质量。这几乎是静态代码分析工具给您的度量。许多人(我也是)会争辩说,这并不是“代码质量”应该涉及的所有内容。但是它有两个主要的优点:它可以被量化(并随着时间的推移进行比较),并且可以不用花费太多的精力就可以自动完成(除了在构建过程中设置它和占用CPU周期之外)。

因此,虽然静态代码分析并不是代码质量的全部,但它是一个良好的开端。

票数 3
EN

Software Engineering用户

发布于 2016-03-15 08:28:46

静态代码分析()是一种帮助识别被分析代码质量可能受到损害的领域的技术。请注意“可能”,因为在许多情况下,静态代码分析工具提供的点是好的、错误的(这些东西很好,但是对工具来说很可疑,它会告诉您关于它们的情况)。这并不是唯一这样的技术,它也不一定是最好的。

然而,代码质量并不是一种技术或工具,它是代码的一个特征,也不一定是一个客观的特性。然而,在谈到代码质量时,经常会提到几点(免责声明:列表并不详尽,不同的点之间可能有重叠):

  • 完整性:代码做了它必须做的所有事情吗?它能满足所有的要求吗?
  • 正确性:代码是否正确地执行它所做的工作?它有意想不到的副作用吗?
  • 可维护性:修改代码有多容易?如果您必须添加一个新特性,或者修复一个bug,那么是否很难找到您必须在哪里进行更改?您是否必须在许多地方进行更改,即使是为了琐碎的修复?
  • 可靠性:无论出于什么原因,代码失败的可能性有多大?
  • 安全性:未经授权的人是否可以将您的代码用于与代码目的无关的目的?它是否在系统中引入了漏洞?

静态代码分析工具通常有助于提高正确性(通过识别代码中可能犯了一些不太明显的错误)、安全性和可维护性,但无法告诉您很多关于完整性的信息。即使这样,他们也不是完美的,也不会告诉你你在这些领域所需要做的一切。还有许多其他技术和工具可以帮助实现所有这些,甚至是我没有提到的其他代码质量领域(自动化测试和代码评审是两个流行的例子,但还有更多的例子)。

票数 3
EN

Software Engineering用户

发布于 2016-03-15 07:42:17

静态代码分析最好由软件(编译器、linter或其他什么)来执行,而代码质量最好由同行评审来保证。静态分析可以确保的质量仅是您希望代码具有的质量的一小部分。

TDD和BDD还可以提高QA中的自动化程度,但它们仍然不能取代第二双眼睛。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/312770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档