当前位置: 首页 > 知识库问答 >
问题:

SonarQube技术债务管理与质量门

司徒寒
2023-03-14
Blocker issues:             error threshold at 0
Complexity/class:           error threshold at 12
Complexity/file:            error threshold at 12
Complexity/function         error threshold at 2
Coverage                    error threshold at 100 >> changed to 65
Critical issues             error threshold at 0
Duplicated lines (%)        error threshold at 5
Info issues                 error threshold at 10
Major issues                error threshold at 50
Minor issues                error threshold at 100
Overall coverage            error threshold at 100 >> changed to 65
Public documented API (%)   error threshold at 50
Skipped Unit tests          error threshold at 0
Technical Debts             error threshold at 10d >> change to (?? < 10)
Unit test errors            error threshold at 0
Unit test failures          error threshold at 0

然而,整体质量门应该以某种方式(数学上?)遵循一定的比例。

问:鉴于上述放宽,如何计算最合适的技术债务门槛?

从一篇旧文章(2009年,因此很可能不再适用)中扣除了以下公式:

TechDebt = (cost_to_fix_one_block * duplicated_blocks) + \
     (cost_to fix_one_violation * mandatory_violations) + \
     (cost_to_comment_one_API * public_undocumented_api) + \
     (cost_to_cover_one_of_complexity * uncovered_complexity_by_tests) + \
     (cost_to_split_a_method * function_complexity_distribution) + \
     (cost_to_split_a_class * class_complexity_distribution)

共有1个答案

叶琦
2023-03-14

质量门由一组条件组成。您的条件列表远远长于默认质量门中的条件。您列出的大多数条件都不在默认质量门中。相反,看起来好像您已经编辑了许多规则的默认阈值。

从某种意义上说,你说的是苹果和橘子。

技术债务门槛可以包括在质量门中,但默认情况下不包括。相反,新代码上的技术债务比率包含在默认QG中。但是技术负债率的概念确实与你的问题有关。如果您在质量门中对技术债务设置一个硬门槛,小项目将比大项目更容易通过QG。如果您转而使用技术债务比率或新代码上的技术债务比率(推荐),那么您将质量门设置在基于代码基础大小和技术债务的比率上。所以每个项目都有同样的机会通过或失败。公式是这样的:

 类似资料:
  • 本文向大家介绍spring boot使用sonarqube来检查技术债务,包括了spring boot使用sonarqube来检查技术债务的使用技巧和注意事项,需要的朋友参考一下 作为代码质量检查的流行工具,比如Sonarqube能够检查代码的“七宗罪”,跟代码结合起来能够更好地提高代码的质量,让我们来看一下,刚刚写的Springboot2的HelloWorld的代码有什么“罪”。 Sonarqu

  • 我正在为CI使用Jenkins,并为Jenkins添加了声纳插件。声纳扫描后,技术债务显示为零。 但事实上,它不是零之前使用的是最新版本的声纳,它显示了技术债务,但降级后,它没有显示。(显示重复代码、代码行和复杂性) 以下是使用的声纳版本 降级前,使用以下版本(工作正常) 降级后(未显示技术债务) 如何解决这个问题? 谢啦 甘内什

  • 在Sonarqube5.5之前的版本中,为了考虑复杂性,有可能改变计算技术债务的方式,但在5.5之后,我看不出如何改变它。是否删除了此配置? 总之,在复杂的代码中,修复的成本比在简单的代码中要高得多。这里有一篇文章,您可以看到并比较两个相似的项目,它们的技术债务基于规模相似,但基于复杂性的技术债务却完全不同。此外,复盖面对这一措施也有影响;我认为,当你有足够的测试和覆盖,确保你没有破坏任何东西时,

  • 补充三面: 三面: 1. 为什么选择测开 实习类发散: 2. 接口自动化为什么要做,解决什么问题 3. 测试平台完善了什么?谁驱动的? 4. 接口加密逻辑 5. Json 断言 6. 状态码 7. 测试和测开的区别 8.互联网加班怎么看 timeline: 2.26一面,3.7二面,3.8三面,3.11hr面,3.15oc+正式offer(感谢鹅在周五下午oc,让我有了个好周末)

  • 春招补录批,teg 一面: 项目类: 1. redis存储token的设计思路 2. redis存储点赞数量,设计的初衷 3. 这些数据可以存储在MySQL当中吗,会怎么样 4. 为什么要做这样一个API项目 5. 网关项目做了什么 抽离的公共项目的内容 实习类: 6. 需求评审提前规避掉的问题 7. 三轮测试的过程 测试报告的内容 8. 自动化框架为什么用pytest 9. 测开平台是干什么的,

  • 24届菜鸡投的实习岗,结果被捞去kpi了😭 虽然除去我写算法的时间也就面了20分钟,但是浅记一下面试问到的 1、自我介绍 2、项目(没细问,主要问了在项目做了什么测试) 3、从项目拓展了一下测试用例的设计方法以及在项目里面使用了哪些用例设计方法,怎么使用的 (计网) 4、http和https的区别 5、tcp和udp的区别 6、tcp是通过什么进行可靠传输的 7、ip头包括哪些内容 (数据库)