当前位置: 首页 > news >正文

织梦网站在服务器上传图片SOHO英文网站制作

织梦网站在服务器上传图片,SOHO英文网站制作,app开发网站模板,网站建设 创新静态代码扫描为整个发展组织增加价值。无论您在开发组织中发挥的作用如何#xff0c;静态代码扫描解决方案都具有附加价值#xff0c;拥有软件开发中所需要的尖端功能#xff0c;最大限度地提高质量并管理软件产品中的风险。背景微服务架构模式具有服务间独立#xff0c;可…静态代码扫描为整个发展组织增加价值。无论您在开发组织中发挥的作用如何静态代码扫描解决方案都具有附加价值拥有软件开发中所需要的尖端功能最大限度地提高质量并管理软件产品中的风险。背景微服务架构模式具有服务间独立可独立开发部署等特点独立开发诱发了技术上的分离HTTP通信增加了问题诊断的复杂度对系统的功能、性能和安全方面的质量保障带来了很大的挑战。“微服务架构对测试的挑战微服务架构模式下多个独立业务服务同时开展开发工作每个系统都有各自的业务范围和开发周期要求这样一来下图所示的传统流程中产品经理提供需求需求人员进行需求分析、开发人员进行开发最后交给测试人员进行测试的方法就无法满足测试覆盖和测试效率的要求。相对于传统的单体模式而言微服务模式下对测试带来的挑战总结起来包括以下内容1. 微服务系统模块层次化需要保证模块内部代码的质量。这种场景下传统的端到端的测试无法满足测试要求2. 需要保证各个微服务系统内部模块间的正确性。系统模块间以及前端和后端通常会同时开展开发工作模块间或者前后端通过接口通常是Restful http接口进行连接而模块和后端往往没有界面为了保证各个系统单个依赖系统的正确性因此需要借助Mock技术隔离依赖的前提下进行接口级的测试3. 需要保证微服务系统中的接口一致性即契约的一致性。需要通过契约测试手段保证契约的正确性进而保证同步开发过程中的前后开发的正确性和一致性4. 需要保障单个微服务系统的正确性。需要进行组件级的测试进行微服务系统的正确性5. 需要保障整个系统的正确性。各个微服务系统串接之后通过端到端的测试保证整体系统的正确性“微服务架构下如何开展测试针对上面提到的微服务对测试的挑战一方面为了保证在服务各个层级上对微服务进行全面的测试特别是对于分布式系统另一方面又要确保测试执行的效率这样才能保证持续集成/持续交付CI/CD。因此总体的测试策略采用如下解决方法1. 开展「质量」文化。让开发人员建立起代码「质量」意识用于保障模块内部的质量2. 采用自动化测试手段。在微服务架构中开发分解为负责不同服务的多个小组测试人员往往每天要花费大量的时间了解不同团队的开发进度。如果还需要手动进行回归测试Regression Test最终将会不堪重负。所以自动化测试在微服务模式下是必须采取的手段。3. 分层的自动化测试策略。自动化测试分层在Mike Cohn 提出的测试金字塔Test Pyramid原理中进行了详细的阐述。它提倡在代码级、接口级、应用级进行不同粒度的测试来保证系统的质量。从自动化测试投入比例来看单元测试和静态代码扫描的投入比例最大其次是接口自动化测试最后是UI自动化测试。同时为了提高测试效率和测试覆盖率功能测试需要借助探索式测试手段开展测试。4. 采用流水线技术进行可视化快速反馈。由于微服务系统非常多这样往往会增加了运维和沟通成本为了提高沟通效率需要借助流水线的技术可视化查看每一个构建Build、测试Test、部署Deploy过程快速做出质量反馈和处理决策。通过可视化流水线最终可以实现各个环节的监控采用DevOps手段打通业务、开发、测试和运维的部门墙。 下面结合分层自动化测试的思想首先对静态代码扫描进行介绍。静态代码扫描“静态代码扫描背景静态代码分析是指在不运行代码的方式下通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描的技术。它的目的是验证代码是否满足规范性、安全性、可靠性、可维护性的要求。静态代码扫描处于分层自动化测试的最底层它和单元测试同级别。为了保证公司代码的规范性、安全性、可靠性的要求通过定制公司级的静态代码扫描规范、扫描规则和扫描实施流程保证实施高效落地。“静态代码扫描意义为开发者软件开发人员最终负责代码质量。代码质量是非功能性需求的一部分因此是开发人员的直接责任。代码质量不应该存在技术债务在开发的过程中每一步都提供反馈从IDE到发布。这使得开发人员能够尽早做出有关代码质量的决策使他们能够做得更好并提供质量更好的软件产品。为DevOpsDevOps需要确保软件的构建方式正确。DevOps中涉及的责任很多其中包括支持开发流程自动化测试确保质量提高生产力.....并最终实现持续部署。良好的代码质量是实现所有这些目标的必要条件尽管不是充分条件。静态代码扫描可在任何构建/测试/部署步骤中添加的代码质量检验门槛能够自动执行一组统一的质量标准从而确保组织交付更好的软件。为管理者代码静态扫描可降低风险并提高团队生产力。管理人员需要能够安全地运行软件并且需要花费合理的投资回报。我们的解决方案一目了然地显示了他们面临的技术债务以及他们缓解的成本。它还具有开箱即用的功能可以系统地提高开发团队的可维护性和长期生产力。这使管理人员能够以最佳成本使用风险控制方法确保其组织能够交付更好的软件。“静态代码扫描介绍静态代码扫描处在特性分支开发完成之后具体的描述如下1. 开发人员从Master分支拉取特性分支作为开发分支2. 开发完特性分支后、代码构建、单元测试、静态代码扫描3. 通过后合并到Master分支用于投产“静态代码扫描流程随行付静态代码扫描平台的具体实现是通过集成SonarQube平台工具、Jenkins集成工具、IDE SonarLint插件和CheckStyle本地化规则模板等开源工具、插件集而成。实现本地化代码的实施检测版本构建后的二次检测以及邮件反馈等功能的流程闭环保证投产前代码符合随行付代码规范的要求。具体的流程如下图所示1.本地化IDE中通过SonarLint插件实现和SonarQube平台规则、规范的同步、实现本地代码检查随行付定制化了java规则、XML规则257条javascript规则86条用于检测代码的规范性、代码缺陷、漏洞、坏味道、重复率等信息。并将定制化的规则放到了SonarQube平台上SonrLint插件的规则比较全面包括所有的sonajava规则和javascript规则为了保证本地使用定制的规则且同sonarqube中的规则一致需要远程连接SonarQube服务器,并绑定项目。以Eclipse为例展示SonarQube连接和项目绑定过程2.代码提交到代码库GitLab中后在Jenkins中测试环境构建时自动触发Sonar扫描并将扫描结果发布到SonarQube平台。下图为SonarQube展示的一个项目的结果3.SonarQube平台根据质量阀的要求不满足质量阀要求则邮件通知开发人员。质量阀要求1.新覆盖率大于等于80%2.新增Bugs为03.新增漏洞为04.新增坏味道为04.开发人员收到邮件后进行代码处理直到满足规范要求为止。5.以周为单位统计SonarQube平台中静态代码扫描出来的Bugs漏洞坏味道的数量定时自动发送周报给相关干系人报告中会包含问题处理情况的趋势图。 SonarQube与规则SonarQube是一个用于代码质量管理的开源平台支持25种编程语言的质量扫描。SonqrQube由远程机、Server端和数据库构成。远程客户机可以通过各种不同的分析机制从而将被分析的项目代码上传到SonarQube server 并进行代码质量的管理和分析SonarQube 还会通过Web API将分析的结果以可视化、可度量的方式展示给出来。逻辑结构如下图所示 “SonarQube的整合能力SonarQube平台中支持整合各种静态代码扫描检测工具。SonarQube中各种代码检测工具分析对象及应用技术对比Java静态分析工具分析对象应用技术CheckStyleJava源文件缺陷模式匹配FindBugs字节码缺陷模式匹配数据流分析PMDJava源代码缺陷模式匹配CheckStyle可以很方便的帮我们检查Java代码中的格式错误它能够自动化代码规范检查过程从而使得开发人员从这项重要但是枯燥的任务中解脱出来。基本上都是根据开发规则定制规则。主要涵盖以下内容Javadoc 注释检查类及方法的 Javadoc 注释命名约定检查命名是否符合命名规范标题检查文件是否以某些行开头Import 语句检查 Import 语句是否符合定义规范代码块大小即检查类、方法等代码块的行数空白检查空白符如 tab回车符等修饰符修饰符号的检查如修饰符的定义顺序块检查是否有空块或无效块代码问题检查重复代码条件判断魔数等问题类设计检查类的定义是否符合规范如构造函数的定义等问题FindBugsFindbugs是一个静态分析工具它检查类或者JAR文件将字节码与一组缺陷模式进行对比以发现可能的问题。主要涵盖以下内容Bad practice 坏的实践常见代码错误用于静态代码检查时进行缺陷模式匹配Correctness 可能导致错误的代码如空指针引用等国际化相关问题如错误的字符串转换可能受到的恶意攻击如访问权限修饰符的定义等多线程的正确性如多线程编程时常见的同步线程调度问题运行时性能问题如由变量定义方法调用导致的代码低效问题PMD一种开源分析Java代码错误的工具其原理为使用JavaCC生成解析器来解析源代码并生成AST(抽象语法树)。与其他分析工具不同的是PMD通过静态分析获知代码错误。也就是说在不运行Java程序的情况下报告错误。PMD附带了许多可以直接使用的规则利用这些规则可以找出Java源程序的许多问题例如潜在的 Bugs检查潜在代码错误如空的 try/catch/finally/switch 语句未使用代码Dead code检查未使用的变量参数方法等可选的代码String/StringBuffer的滥用复杂的表达式检查不必要的 if 语句可被 while 替代的 for 循环重复的代码检查重复的代码循环体创建新对象检查在循环体内实例化新对象资源关闭检查 ConnectResultStatement 等资源使用之后是否被关闭掉此外用户还可以自己定义规则检查Java代码是否符合某些特定的编码规范。例如你可以编写一个规则要求PMD找出所有创建Thread和Socket对象的操作。三种工具对比由表中可以看出几种工具对于代码检查各有侧重。其中Checkstyle 更偏重于代码编写格式及是否符合编码规范的检验 对代码 bug 的发现功能较弱而 FindBugsPMD着重于发现代码缺陷。在对代码缺陷检查中这三种工具在针对的代码缺陷类别也各有不同且类别之间有重叠。“规则定制考虑到Sonar Java规则已经包含了PMD和CheckStyle规则因此我们选择了Sonar的默认规则并对其进行了定制化。下图中SonarQube中展示了部分定制化规则内容。定制化后的规则覆盖的代码缺陷类型如下表所示(部分规则)代码缺陷分类示例引用操作空指针引用对象操作对象比较使用而不是equals表达式复杂化对于的if语句数组使用数组下标越界未使用变量或代码段未使用变量资源回收I/O未关闭方法调用未使用方法返回值代码设计空的try/catch/finally块总结本篇介绍了微服务架构架构对测试的挑战在微服务架构下如何开展测试工作以及在微服务架构下的如何实现静态代码扫描。后续文章将介绍敬请关注1. 微服务测试之单元测试2. 微服务测试之契约测试3. 微服务测试之接口测试4. 微服务测试之UI自动化测试5. 微服务测试之探索式测试作者简介王田随行付架构部测试架构师。负责测试方法论布道、自动化测试工具研究与推广。
http://www.zqtcl.cn/news/507223/

相关文章:

  • 建设网站目录帮别人做网站要投资吗
  • 网站meta 优化建议桥梁建设设计网站
  • 网站建设 甘肃wordpress rss去掉
  • 网站安全检测大连网龙建站优化推广
  • 人才网官方网站公众号排名优化软件
  • 淘宝返利网站建设软件开发哪里学好
  • 烟台网站制作公司如何注册国外网站
  • discuz企业网站网站可以做音频线吗
  • 怎样制作网站教程哪家好制作网页的的网站
  • 网站没有织梦后台无锡seo公司网站
  • 哈尔滨住房和城乡建设厅网站公司网站建设 费用入账
  • 网站图片缩略图t恤图案设计网站
  • 对招聘网站页面设计做建议网站流量 转化率
  • 怎么样做网站注册量郴州市北湖区
  • 山东企业展厅设计公司济南网站建设优化公司
  • 什么网站免费做游戏工艺品外贸订单网
  • 免费推广网站制作网站设计的技术有
  • 深圳电商网站建设高校学风建设专栏网站
  • 品牌网站建设 2蝌蚪小三网合一的网站怎么做
  • 对二次网站开发的认识wordpress修改图片大小
  • 电商网站项目建设个人网站空间收费
  • 官方网站制作思路樟木头东莞网站建设
  • 怎么寻找做有益做网站的客户大连网站推广
  • 湖南网站开发企业excel网站建设
  • 安康网站建设技巧腾讯建设网站视频下载
  • 如何能让企业做网站的打算中企动力做网站贵吗
  • wordpress 空间常州seo
  • 网站负责人备案采集照具体要求湛江网吧
  • 长春建站模板制作php网站空间购买
  • 网站域名到期怎么办食品包装设计的介绍