• 门户
  • 论坛
  • 博客
  • 网校
  • 招聘
首页 文章 问答 51讲堂 活动
写文章 提问题 登录 | 注册
  • 我的主页 通知 已购 设置 我的钱包
    退出
  • 0
  • 1
分享
  • 代码质量和安全性测试工具SonarQube——软件测试圈
  • 曼倩诙谐 2023-06-14 14:33:53 字数 1825 阅读 6279 收藏 1
    测试管理

  SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。

  1 Sonar简介

  1.1 sonarQube是什么?

  1、代码质量和安全扫描和分析平台。

  2、多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。

  3、支持25+编程语言的代码扫描和分析,包含java\python\C#\javascript\go\C++等。

  4、涵盖了编程语言的静态扫描规则: 代码编写规范+安全规范。

  5、能够与代码编辑器、CI/CD平台完美集成。

  6、能够与SCM集成,可以直接在平台上看到代码问题是由哪位开发人员提交。

  7、帮助程序猿写出更干净、更安全的代码。

  静态扫描主要针对开发人员编写的源代码。

  通过定义好的 代码质量和安全规则,对开发人员编写的代码进行扫描和分析。

  将分析的结果多维护的呈现出来,以方便开发人员进行代码的优化和规范编写。

  1.2 sonarQube如何工作?

  sonar静态代码扫描由2部分组成:sonarQube平台,sonar-scanner扫描器。

  sonarQube: web界面管理平台。

  1)展示所有的项目代码的质量数据。

  2)配置质量规则、管理项目、配置通知、配置SCM等。

  sonarScanner: 代码扫描工具。

  专门用来扫描和分析项目代码。支持20+语言。

  代码扫描和分析完成之后,会将扫描结果存储到数据库当中,在sonarQube平台可以看到扫描数据。

  sonarQube和sonarScanner之间的关系:

1-1.png

  2 检测

  Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。

  通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测。

  2.1 Rules提示

  当然,这对于初学开发者来说是一个很好的教程,搞懂这些规则可以避免bugs的出现,提供自己的开发能力。

  2.1.1 Rule界面

1-2.png

  2.1.2 rule正确实例提示

1-3.png

  2.2 糟糕的复杂度分布

  文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。

1-4.png

  2.3 重复

  显然程序中包含大量复制粘贴的代码是质量低下的 , sonar可以展示源码中重复严重的地方。

1-5.png

  2.4 缺乏单元测试

  sonar可以很方便地统计并展示单元测试覆盖率。

1-6.png

  2.5 没有代码标准

  sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。

  2.6 没有足够的或者过多的注释

  没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降,而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

  2.7 潜在的bug

  sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug。

1-7.png

  2.8 糟糕的设计(原文Spaghetti Design,意大利面式设计)

  通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则;

  通过sonar可以管理第三方的jar包可以利用LCOM4检测单个任务规则的应用情况 ,检测耦合。

  3. Sonar 组成

1-8.png

  4. Sonar 集成过程

1-9.png

  开发人员在他们的ide中使用SonarLint运行分析本地代码。

  开发人员将他们的代码提交到代码管理平台中(SVN,GIT等)。

  持续集成工具自动触发构建,调用SonarScanner对项目代码进行扫描分析。

  分析报告发送到SonarQube Server中进行加工。

  SonarQube Server 加工并且保存分析报告到SonarQube Database中,通过UI显示分析报告。


作者:会跑的熊    

来源: http://www.51testing.com/html/14/n-7793014.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • web测试的基本测试点——软件测试圈
            10-11
            一、什么是Web测试如果要了解web测试,首先我们的清楚web项目是什么,一般指本b/s架构项目也就是通过浏览器进行访问的,在日常生活工作中,基于web系统的应用非常多。打开电脑,抢火车票我们会登陆12306网站,添置衣物我们会登陆天猫,购置电器我们会上京东...对于这类项目的测试我们就说进行的web测试。二、Web测试的特点从系统架构来看的话,一般都是b/s架构,基于浏览器的项目,所以只要更新了服务器端,客户端就会同步更新。基于这种架构,web测试除了需要检查和验证功能、界面是否按照设计的要求之外,还要考虑兼容,因为是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容,不过一般...
            • 恬恬圈
            移动测试
            0 0 889
            分享
          • 前端性能优化:浏览器的2种缓存方式要弄清——软件测试圈
            04-06
              在前端性能优化中,最重要的就是缓存,使用缓存可以极大的提升浏览器的响应速率。  什么是缓存呢?  当我们第一次访问某个网站时,浏览器会把网站中的图片等资源存储在电脑中,以备后续使用,第二次访问该网站时,浏览器直接访问缓存中的数据,从而达到提高浏览器的响应效率,优化用户的体验。  缓存的优点  1.提高浏览器的响应速率;  2.减少服务器的访问压力;  3.减少对网络的压力。  除了浏览器缓存之外,还存在CDN缓存、代理服务器缓存等等;这里主要描述浏览器缓存,浏览器缓存也指的是HTTP缓存,当我们使用浏览器用http协议与服务器交互时,浏览器会使用一种与服务器约定的规则进行缓存操作。  缓存...
            • 曼倩诙谐
            性能测试
            0 0 1119
            分享
          • SQL注入是什么?如何防止?——软件测试圈
            04-02
            SQL注入是一种注入攻击,可以执行恶意SQL语句。下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助。 什么是SQL注入?SQL注入(SQLi)是一种注入攻击,,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;还可以使用SQL注入来添加,修改和删除数据库中的记录。SQL注入漏洞可能会影响使用SQL数据库(如MySQL,Oracle,SQL Ser...
            • TIMI
            移动测试
            11 11 1099
            分享
          • 如何提高测试团队效率?——软件测试圈
            07-01
              一个项目的完成不能仅靠一个团队的付出,一项测试工作也不是单凭一己之力。那么,如何让测试工作进展的更加顺利?测试团队间工作效率又该如何提升呢?一起来看看以下几点分享:  一、分工合理,权责明确  团队是由个人组成的,团队中的成员往往经历不同、背景不同、性格有差异、水平有高低。在开始测试工作前,测试团队首先应该进行合理的分工,结合每个人的特点,充分发挥出每个人的特长。分工完成后,每个人对应的职责也就确定了,这时应同每一位团队成员进行明确说明,个人任务完成情况与日常考核挂钩,以避免推诿、相互等待的情况出现。  二、发挥主观能动性,积极沟通  测试工作是一项沟通要求比较高的工作,一般需要同项目经理...
            • 曼倩诙谐
            其它
            0 0 1215
            分享
          • 黑客都在用测试用例找漏洞,你还不努力?——软件测试圈
            12-07
              缘起  众所周知,系统测试是需要编写测试用例的,它是保证测试执行正确性、有效性的基础。但是,大家可能很难想象神秘的黑客在挖掘漏洞的时候会提前编写测试用例,然后按照用例去执行。因为他的漏洞挖掘思路是存在脑海中,并且不断的根据实际情况进行调整的。  当然,关于黑客单打独斗挖掘漏洞的这种想象,显然已不大符合当前安全界的实际情况。从网络及信息安全的攻击角度来说,恶意攻击分子已经逐渐形成了目标精准、分工明确、技术先进的网络黑色产业链条,相应的从安全保护和防御角度来说,国家加大了对网络攻击等犯罪行为的打击力度,企业也逐渐加大了网络安全投入。  那么,当安全测试成为企业安全建设中的一个重要环节,安全测试...
            • 曼倩诙谐
            测试技术
            0 0 1706
            分享
      • 关于我们 联系我们 版权声明 广告服务 站长统计
      • 建议使用IE 11.0以上浏览器,800×600以上分辨率,法律顾问:上海兰迪律师事务所 项棋律师
      • 版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024, 沪ICP备05003035号
      • 投诉及意见反馈: webmaster@51testing.com; 业务联系: service@51testing.com021-64471599-8017
      • 51testing软件测试圈微信

      深圳SEO优化公司青岛网站优化排名哪家好亳州网站优化按天计费价格天水百度网站优化排名公司四平英文网站建设天水百度关键词包年推广推荐河源企业网站制作报价吴忠百度竞价包年推广推荐张家口关键词排名包年推广哪家好钦州至尊标王推荐包头网站改版报价丽水推广网站多少钱邵阳百搜标王报价安顺优化公司福州关键词排名包年推广推荐梅州网站搜索优化报价丽江优秀网站设计多少钱百色外贸网站建设公司那曲至尊标王哪家好湛江网站推广方案哪家好潍坊网站推广工具推荐抚州营销型网站建设推荐龙岗网站关键词优化价格阜新百姓网标王推广价格梧州外贸网站设计报价天津设计公司网站推荐德州建站价格大丰营销网站大理百度竞价包年推广公司朝阳关键词按天计费价格保山网站推广工具公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

      深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化