视频和网络研讨会
这次研讨会将演示如何使用复杂的静态代码分析的发展过程和DevOps收养。这有助于开发人员避免错误在提交代码前,建立质量检验关自动代码分析内部持续集成工作流。
利用正式的方法(用声音实现),考虑所有可能的输入,控制,和数据流没有代码的执行,组织将获得信心,他们依赖的软件是安全可靠的。这给了你一个多早期错误检测工具,它减少了测试和验证成本,并使代码质量透明的整个团队。
基督教连是应用程序的团队领导工程团队Polyspace和负责Polyspace作为静态代码分析工具的应用为不同行业的客户在欧洲。
记录:1 2020年10月
你好所有的软件开发人员、项目经理、测试人员、质量管理人员、经理,安全,安全及过程方法和工具经理今天。当然,所有的这些我已经忘记了。我很高兴,今天你们很多人都参加了这次研讨会。这将会非常有趣。我真的希望你能在日常工作中使用的一些信息。所以请不要犹豫与我联系,我们的销售团队如果你有任何问题或想要开始。
在我们开始之前,一些关于我自己。我的名字是基督教连。我一直工作在应用工程为Polyspace MathWorks将近7年了。与此同时,我们拥有一个全欧洲范围的表演团队来支持客户所有行业的整合Polyspace静态代码分析的工作流。金宝app因此,即使你没有一个模型基础设计工作流程,和你正在做的代码,你今天与我们良好的手。
今天,我准备了以下议程。首先,我想介绍Polyspace在静态代码分析的背景下,特别是指出,我们在市场上不同于其他工具。但真正的今天的话题是DevOps和持续集成。于是一个简短的介绍之后,我将通过集成Polyspace进入这些工作流和你一步一步。
所以我们将东方扩张的三个主要阶段,当然进化,而不是革命。我想总结研讨会并实际上每一章用一个简短的摘要,你应该记住,如何开始。请写下你的问题直接的问答。我将把我的时间来这个网络研讨会结束后回答问题。所以请留在我身边。即使你不听到我一两分钟,这是因为首先我将阅读和整理问题。
好了,让我们进入第一部分的网络研讨会,为什么Polyspace是正确的选择时,静态代码分析。为什么我们需要静态代码分析如果你已经花那么多时间在测试中,你无法找到任何错误了?测试错误的核心问题是测试是不完整的。以下报价说明,“测试可以用来显示缺陷的存在但从不缺席。”
通常,代码评审的方法,这意味着有经验的程序员会发现他们的同事的错误。下面的例子展示了令人印象深刻的是多么困难,尤其是与C和c++等语言,它包含隐式转换规则。所以在接下来的例子中,我们假设如果条件为真,因为- 1的值小于0。所以价值减去0然后传递到变量因子,这是防止除0在第11行。
显然情况并非如此,因为调试告诉我们。这里,我们有一个小例子在我的Eclipse环境中。我喜欢用一个正常的调试器像GCC。如果我调试代码,你可以直接看到我开始在主函数在can_you_find_a_bug函数。并逐页浏览功能的代码,您将看到直接除数为0,因为如果没有进入状态。
所以Polyspace集成在Eclipse可以指出这些问题相当早,这使开发人员的机会,防止这些缺陷在早期的错误不最终代码存储库或导致任何动态测试失败,因为失败的动态测试不告诉你任何关于这个问题的原因。它可以花费几个小时的调试开发人员甚至集成商没有写代码。
好吧。我可以看到,你同意我的观点,静态代码分析可以检测这些缺陷很有帮助。为什么你现在使用Polyspace之一而不是其他静态代码分析工具吗?甚至是编译器通常可以找到很多有趣的缺陷。除此之外,Polyspace使用技术,是基于正式的方法。这允许所有的可能性和价值范围的完整分析通过你的整个代码。甚至可以考虑未知的代码库,例如形式的最坏情况分析。
和Polyspace使用的方法称为抽象的解释。Polyspace给你这两个工具的形式。一个是数学声音或数学证明。它被称为Polyspace代码验证。另一个是non-sound但非常快速和精确的工具。它叫做Polyspace错误发现者。
所以你可以应用Polyspace手写并自动生成的代码。工具支持你的语言C,金宝app c++,而且Ada代码。目标是找到尽可能多的运行时错误,当然,像除零,溢出,数组越界存在,这种东西。而且竞争条件等等。
另一部分是找到编码规则违反像MISRA CERT-C CWE。,它还提供了大量的编码标准。当然,最后但并非最不重要,Polyspace代码验证可以证明一个代码的正确性,这是非常重要的证据的质量,特别是在供应的变化。这是非常独特的形式和确保越来越多的顾客选择Polyspace。
所以你可以说Polyspace错误发现者是检查的工具很多不同的编码度量圈复杂度,而且堆栈使用,项目,文件,和功能指标,和整个他的指标,而且编码标准和网络安全指导方针包括像MISRA-C, c++,也自定义规则和AUTOSAR c++ 14和CERT-C当然,这是一个非常受欢迎的安全指南。当然数以百计的缺陷和漏洞,从数值问题,静态内存问题,也安全缺陷,并发性问题,和良好的实践问题,目标写一个高质量,安全,和兼容的代码已大大减少缺陷和漏洞,满足功能安全和网络安全标准的要求。
此外,验证的代码可以应用于特殊类别的错误作为补充错误发现者的证据没有运行时错误,例如。这个服务来创建完全信任组件可靠、健壮、安全、满足额外需求的标准。
好吧,让我们总结本章。为什么你应该使用Polyspace静态代码分析。Polyspace,你有一个工具快速、可靠,并提供功能直接消除缺陷和安全漏洞在编写代码。你可以证明合规编码标准和不同的代码度量。一个独特卖点的可能性是没有运行时错误和使用软件质量目标定义一个特定的质量标准,看看你实现它。当然,所有这一切都帮助你满足各种安全标准的要求这样做- 178,而且ISO 26262或更一般的IEC 61508标准。
所以现在你知道为什么静态代码分析很重要,为什么Polyspace是一个非常不错的选择。但今天,我们要讲DevOps和持续集成。要做到这一点,我们首先需要处理的不同要求的集成公司本身的静态代码分析。首先,课程的开发者。他们想要快速的结果,一些障碍,和简单的应用程序,可操作的结果,等等,让他们的编程工作更容易。
此外,项目本身。这必须符合规定,某些标准,和客户的需求。当然成本也扮演了一定的角色,以及最后期限和交货,必须以同样的方式在范围和质量。此外,还有团队,甚至整个公司在更广泛的意义。和这支球队愿意合作和工作方法达成一致。团队的目的是自动化的东西当然如果可能的话,避免额外的工作和工具集成到他们的工作环境。
这一直持续集成的重点概念。开发人员编写代码并检查到中央存储库中,我强烈怀疑大多数你正在做的事情,至少在一个类似的方式。代码自动检出和建造,由中央持续集成测试和部署工具。这可能发生的每一次变化是由或一夜之间,但它会自动定期发生,。
如果失败,开发团队是明智的,可以找到和固定的错误。在持续集成已经被广泛使用和接受的,另一个概念在DevOps工作流中起着关键作用,这是左移的概念。例如,你有你的客户测试的软件吗?是的,当然不希望。
但当呢?所以在测试阶段吗?是的,也许太迟了,因为错误是很难追踪到开发人员。假设你在构建阶段进行测试。是的,这是更好的。是的,也许在编码。因此早期发现错误,就越容易解决这些错误的降低成本。因此,我们试图在DevOps工作流实现这个概念。
假设如果你有noninitialized局部变量,可以快速测试随机行为。这意味着周一,您的测试将通过,周二,他们可能会失败仅仅是因为一个非常简单的检测问题。DevOps到底意味着什么?因为有很多不同的定义。实际上,你还可以找到DevSecOps集成安全到你喜欢的活动,比方说,左移和自动化工作流。
但总结,我认为DevOps是一组实践旨在减少承诺之间的时间改变一个系统和被放置到正常生产,同时保证高质量。这包括测试、静态代码分析,也当然安全分析。
你可以找到在这个定义中两个主要的目标。一是减少时间,另一个是确保高质量。而是整个工作流,我们测试部署和操作。这意味着必须考虑接口和工作流而不是经典的方法。和持续集成不与DevOps肯定,但它是一个必要的一部分。
最后看看DevOps的各种需求明确表示这些需求很好。团队精神是高度赞赏,各个步骤进行了优化。这减少团队的挫败感,让整个公司的经济优势。好的,那么我们也可以做一个检查DevOps。
但是Polyspace的集成呢?DevOps Polyspace解决方案吗?不,当然不是。静态代码分析提供接口必须集成到DevOps工作流和所有其他工具链中,因此必须支持不同角色的要求。金宝app
来实现这一点,Polyspace改变从桌面工具持续集成和团队协作工具与2019年的版本。所以你仍然可以使用桌面工具,结合分析引擎和审查工具在一个接口,尤其是对手机使用一台笔记本电脑。此外,我们已经分离分析引擎的审查结果在许多客户的请求。
因此,分析现在可以执行与工具Polyspace错误发现者服务器和Polyspace代码验证服务器验证服务器上或持续集成系统。你也可以将它部署在云上,当然没有图形用户界面,因为它只是一个分析引擎。和审查的结果,整个团队现在可以使用一个web浏览器基于接口的解决方案,而不需要安装任何应用程序。所以产品叫做Polyspace访问和Polyspace代码验证访问。也票务系统(比如Jira等等可以连接。
说明不同Polyspace部署的水平,我想,在接下来的幻灯片,一种表,比较了不同扩张阶段。我们已经谈了很多关于桌面安装,这是这里描述作为一个个体,临时使用。所以这个选项为个人提供了最大的自由,但也有很多责任执行单个步骤手动和保持一致。
这种零星的使用,问题当然可以监督或者与团队合作是很困难的。但对于个人来说,你有很大的灵活性在你当地的桌子上。所以有不同的方法如何使用这个工具在你当地的桌子上。当然,你可以使用Polyspace桌面应用程序,您可以使用命令行,eclipse集成。桌面应用程序提供的所有可能性的创建和配置项目,以及审查结果在一个桌面应用程序。
在下一节中,我们将深入看看Polyspace可以集成到持续集成工作流。优点是使用自动化和中央一致的配置的可能性。人工工作流上总是有缺点,配置不同的工作站可以不同。所以持续集成可以解决这种一致性问题。这提供了更可靠的质量指标比我们会从一个人的工作或个人使用的个人桌面。
团队成员和其他进程的连接也更加容易。和分析的频率可以增加集成到自动化工具。这里有一个例子如何Polyspace服务器和Polyspace访问产品可以集成到持续集成环境。下载188bet金宝搏因此,开发人员在他们的代码在他们的私人空间,当他们到达一个逻辑点,将代码提交到源代码存储库。构建和自动化工具如詹金斯看签到。当登记发生,他们查看源代码和构建软件。
建立成功后,自动化工具然后开球Polyspace服务器产品运行集成构建的分析和验证。下载188bet金宝搏分析和验证完成之后,Polyspace结果发布到Polyspace访问产品,允许团队成员登录的web浏览器和分类结果和解决错误。下载188bet金宝搏
Polyspace提供了詹金斯的插件,这是一个广泛使用的持续集成工具,让用户可以更方便地创建脚本分析和上传结果。但Polyspace也同样适用于其他持续集成系统,因为它基本上是使用命令行API Polyspace服务器。
对于自动化,需要Polyspace服务器产品,Polyspace错误发现者服务器和P下载188bet金宝搏olyspace代码验证服务器。服务器产品的静态分析和下载188bet金宝搏验证引擎被设计用来在服务器机器上运行。您可以轻松地将它们集成到持续集成等软件开发过程使用脚本和插件詹金斯等自动化工具。分析和验证完成后,您可以自动分配结果组件所有者,所有者发送电子邮件通知,并上传结果Polyspace错误发现者和代码验证访问。
自动化的过程主要包括四个步骤,检查工件从源代码库,构建信息匹配的决心Polyspace验证项目来源,包括文件夹和定义为例,这是紧随其后的是第三步,实际分析源代码的静态代码分析引擎和随后的第四步,上传的结果为代Polyspace访问报告供进一步使用。
在这里你可以看到Polyspace融入詹金斯在形式的一个管道项目。所以你看不同的步骤从准备开始,基本上包括了所有的环境变量设置。第二步是检查你的源代码和其他构件(如Polyspace项目配置。正如我们解释说,第三步是建立你的代码并提取源代码或源代码文件的信息,包括文件夹和预处理器定义。Polyspace提供你一个二进制或工具,。
这类信息将使用从第三步,这实际上是分析步骤,运行Polyspace错误发现者服务器与这种信息提取的最后一步。Polyspace得到最终结果,分析结果,然后在下一步中可以上传工具或仪表板像Polyspace访问。所以现在我们上传这个结果Polyspace访问并使其可为团队进行进一步审查,源代码注释。
如果团队将做到这一点,我们也可以从Polyspace访问和下载结果创建的一些报道。例如,我们可以创建质量报告,并进一步定义活动例如,发送通知业主,项目经理,或质量经理。因此管道项目,我们已经看到在过去的幻灯片,提供的是詹金斯。你可以想象更多不同的步骤,以及脚本也可重用的,因为他们是基于一个脚本。你可以检查它在subversion,一些年后重做这些服务器设置。你有你需要做的,基本上所有的设置。
经常出现问题的电脑Polyspace应该实际运行以及几个分析从不同的项目,例如,可以并行。和大多数持续集成系统提供了一种机制来控制流程在另一台计算机上通过SSH。詹金斯,这就是所谓的主代理,这是一个舒适的解决方案来控制任意数量的Polyspace任意数量的不同的电脑上安装。
所以Polyspace不需要安装在詹金斯的主人。它可以安装在其他机器上,然后运行您的项目代码,构建您的项目代码,验证您的项目代码。和詹金斯主决定了哪些计算机目前免费,这台机器上运行分析的工作队列。所以你不需要担心负载平衡了。如果需要,我们可以为您提供进一步的信息关于这个主题的材料。
持续集成的工作流的另一部分是向开发人员提供分析结果。这通常是由结果导出到Excel列表和其他代码审查工具。然而,这总是结果信息保留的开发者。这可能是关于环境的信息,根,某些值范围,或简单地访问来帮助理解的消息实际上说。出于这个原因,我总是建议使用Polyspace访问Polyspace结果作为评估工具。Excel和type-separated结果非常适合自动分析结果的数量和自动化的过程本身或类似的东西,但这不是理想的审查结果由开发人员。
Polyspace访问提供了一个基于web的图形化前端在浏览器和有三个主要的优势。第一个,开发人员、经理和质量工程师可以分类,分配,并解决Polyspace发现。第二个是经理、团队领导可以使用Polyspace访问仪表盘监控项目质量和深入,调查关于有问题的文件和软件的单位和结果。最后一个是质量和开发领导甚至可以跟踪项目的进展与MISRA和CERT-C。
你可以在你当地使用Polyspace访问web浏览器通过登录你的用户名。在项目浏览器中,您可以看到所有的项目你有访问权。和管理员可以管理每个用户的权利。项目概述为您提供各种链接,允许您快速访问预滤器的结果,结果显示在过滤列表就像桌面应用程序。现在你可以点击关于缺陷的发现和找到更多的信息和源代码的代码部分。
新获得的能力缺陷分配给一个用户。这使得它更容易处理更大的项目在一个团队中,因此,作业可以用嵌入式Polyspace访问票务系统或现有的像Jira票系统。经理和团队领导负责项目质量现在可以跟踪代码质量指标,特别是他们的趋势,以确保项目能够满足质量的期望和目标。Polyspace访问产品为您提供下载188bet金宝搏仪表板显示关键代码信息,指标,建议行代码,递归,圈复杂度,而且软件质量目标我们将解释。
Polyspace仪表板还允许您深入到具体的项目文件和缺陷。项目团队成员可以登录到Polyspace错误发现者或代码验证访问,前端,可以很容易地导航到看到缺陷的结果视图选项卡中找到的列表和视图的结果直接在源代码和源视图窗口,而且设置状态严重程度,并将结果分配给团队成员在结果细节窗口。
奎因是一个质量工程师,她负责筛选软件缺陷。所以她得到了一个电子邮件通知指示两个新发现中发现了她的项目,她点击电子邮件中的链接以查看新发现在Polyspace Web UI。结果列表显示了两个缺陷在达拉的代码。于是她打开两个Jira门票和分配他们达拉。
达拉是一个软件开发人员,负责编写代码和修复缺陷。所以她打开第一个Jira的机票和点击Polyspace访问链接。她提供的信息用于工具,所以结果细节和上下文帮助,制定修复的缺陷。她在编程IDE和修复缺陷检查修改的地方。
道格是一个项目经理,负责整个项目的软件质量。所以他使用浏览器仪表板来监控整个项目的状态和趋势。例如,缺陷密度,圈复杂度、开放的发现。但同时,他想检查软件质量目标和MISRA和CERT-C符合标准。但问题是,他如何能做到这一点。
所以将Polyspace集成到DevOps工作流的另一个重要的一步是能够以编程方式访问结果和项目状态信息。这是必要的,例如,控制进一步措施或实现一种质量检验关。所以Polyspace访问提供了各种可能性来创建一个列表未审核结果或开放点达到一定质量检验关。
但是软件质量目标是什么?软件质量的要求也依赖于发展阶段的。从项目的开始到开始生产,有许多中间步骤。这里有一些例子。因此软件质量目标分成不同阶段从1到6的范围和需求不断增加的清晰度。
软件质量目标可以很容易地定义和跟踪Polyspace访问。一定质量水平可以被分配到一个项目中,和剩余的缺陷,实现软件质量水平可以通过点击链接在这个指示板显示。当然,软件质量水平也可以单独调整和配置根据项目需求本身。
所以,你可以定义自己的软件质量阈值。例如,在这里我们改变软件质量阈值的圈复杂度假设软件质量目标阶段6 - 6的价值。这意味着更高水平,这个水平也将被应用。你可以做这个编码准则违反缺陷本身。你可以选择,选择不同的软件质量检查水平,因此定义自己的软件质量阈值根据您的项目需求。
像詹金斯持续集成系统,您现在可以使用编程API从Polyspace访问来确定是否一个特定的项目已达到所需的质量水平。现在你可以看到这在我詹金斯管道和检查SQO水平或检查SQO阶段,我让这个阶段失败的警告软件质量三级失败了。或者取得所需的质量水平,验证显示为绿色或通过,你可以直接看到詹金斯,你的工作是根据定义的项目的质量水平。
最后,我想列出几个重要的问题,仍然需要考虑这样一个工具集成。你应该记住这一点,如果你开始整合Polyspace持续集成工作流。第一件事是分析应如何自动化?这意味着所涉及到的工具吗?你有什么样的工作流的地方或你想吗?接下来是谁负责自动化的配置工作,因为这是一个明确的任务一定角色,某个人在你的团队吗?第三是如何配置和结果versionized ?你喜欢什么样的工件来创建、Polyspace运行所需的是什么,你Polyspace运行的输出是什么,你想做什么呢?
第二频率和迅速的项目应分析和范围。现在你可以在单元水平分析。你也可以分析充分集成级别。这需要一种特定的测试计划中确定你在起点与持续集成自动化。那么谁得到的结果和什么样的格式?你想向开发者提供结果,QA,项目经理。谁负责审查?负责其他操作取决于结果来自你的Polyspace分析结果吗?
有依赖其他进程?如果你有问题跟踪你想采用或如果你有其他系统依赖Polyspace访问的输出。最后但并非最不重要,分析目标被跟踪?我们所看到的与软件质量目标。或有其他质量指标实现吗?
现在我们有详细谈论特设和个人使用,以及自动化和协作使用,而是DevOps集成可以得更远。但是,这些往往是非常个人版本和适应工作流,不能充分讨论。这包括,例如,封闭的提交、集成开发环境,各种连接其他工具和业务流程。例如,报告。当然这使得进一步的个人需求得到满足,DevOps集成进一步优化。
一个例子是在封闭的提交如前所述。所以这里的问题是开发人员不知道他们的结果提交到源代码库,尤其是如果它承诺到主分支。所以,非常典型,开发人员构建。解决方案是一个封闭的提交,这是一个过程,以减少机会打破主分支。这将通常由持续集成服务器。
这里的工作流程是,开发人员提交请求的提交的代码转化成一种的一个分支。和这个分支将分析Polyspace这样的持续集成工具,结合一些手工评论被其他同事。如果代码更改满足质量标准,然后自动合并到主分支的代码。如果没有,开发人员了解变化和可能的拒绝解决问题和请求一个汽车的提交。
但你可以想象,这取决于您所使用的系统,很个人。根据您的需要有特定的实现。如果你想这样做,请与我们联系,我们可以讨论一个解决方案。
我说过,这里的可能性是相当大的,我们已经有很多经验与客户在实现个人版本。我准备了一个很短的几个点,经常在这里扮演一个角色。例如,第三方工具或流程需要集成?你的具体需求是什么?和左移可以优化吗?
如何支持开发人员尽早IDE编程?金宝app或分析怎么能更快,更专注于特定的项目需要吗?另一点是周期所需的结果和在哪个范围?使用哪个工具?和一些其他的目标。
现在我们已经学到了很多关于Polyspace融入DevOps, DevSecOps和持续集成的工作流。现在的问题是,可能接下来是什么,以及如何开始。让我们迅速与Polyspace总结一下你能做什么,我们在这次研讨会的讨论。
我们讨论了如何保持高质量的代码和解决缺陷更早。我们还谈到了如何符合行业标准,像MISRA检查编码规则,CERT-C,而且实现信用网络安全指导方针或功能安全指导方针。
我们还讨论了如何证明自己和他人,你可以依赖你的软件质量,还如何在你的持续集成和整合Polyspace DevOps工作流。我们还讨论了如何实现一致性在您的软件质量分析通过集成的工具在一个自动化的方式。和我们讨论了如何建立一个结果审查工作流在更大规模的团队使用Polyspace访问。
完全结束,我们还讨论了关于检查软件质量在不同阶段软件质量目标和如何实现的方式,在Polyspace访问,还如何连接自己的业务逻辑输出结果从这些不同的阶段。最后,您还可以创建报告当局展示你的结果和审查过程。
接下来是什么?Polyspace如果你感兴趣,请随时与我们联系。我们的销售团队将很高兴讨论价格和测试许可的可能性。此外,我们的应用程序工程团队可以帮助你通过实现技术的解决方案。然而,我想推荐官方Polyspace也参加训练,将教你所有的产品中最重要的职能和工作方法。这节省了大量的时间和避免不必要的错误当使用工具。
最后但并非最不重要,你也可以讨论更大的项目和个人与我们咨询部门的调整。所以请访问www.polyspace.com。在那里你会发现进一步的信息关于产品和联系信息从我们的团队。非常感谢你的注意。我希望这对你是有益的,我将很高兴再次听到你的。正如我所说的,请留在我身边当我回应你的技术或整体的问题,我需要一点时间整理所有的问题到直到现在。所以请给我一两分钟。非常感谢。
桥接无线通讯与MATLAB设计和测试
反馈
特色产品
查看更多相关视频
选择一个网站
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室