给老师的提示:PVS-Studio,用于向学生介绍代码分析工具

PVS-Studio和培训

通过支持和其他间接迹象的沟通,我们注意到免费用户中有很多学生。 原因:PVS-Studio分析仪已开始被一些教师用于与软件开发相关的学科。 这对我们来说是非常愉快的,我们决定写这本小纸条,以吸引其他老师的注意。 我们很高兴向学生介绍静态代码分析的一般方法,尤其是PVS-Studio工具。 我们的团队将努力为这一趋势的发展做出贡献。

没有集成的方法来确保软件的质量和可靠性,就不可能开发现代软件。 原因是现代应用程序的代码库规模正在迅速增长。 我将在数字上对此进行解释。 以操作系统为例:

  • MS DOS 1.0:4,000行代码。 一个人可以阅读整个代码,找出答案,然后发现错误。
  • Linux内核1.0.0:176,000行代码。 尽管这将花费很多时间和精力,但团队仍然有机会对代码进行详细的审查。
  • Linux内核5.0:超过26,000,000行代码。 无法实现该项目。

以Linux内核为例,您可以看到代码库的大小在25年中增长了150倍。 现在,程序员不可能坐下来查看整个应用程序的代码,理解它,发现错误并改善体系结构解决方案。 现代程序的工具根本无法适应一个人的头脑,并且没有更多的专家可以回答有关项目设计的任何问题。

无法实现项目只是麻烦的一半。 随着项目规模的扩大,误差密度也随之增加。 我强调: 这不仅是错误数量的增加,而且还涉及错误的密度 ! 在作为学期论文一部分编写的程序中,您可以编写1000行代码,而不会犯一个错误。 而且向大型应用程序添加1000行代码而不犯一些错误是不现实的。 为了澄清起见,我们再次求助于这些数字:

图1.各种规模的项目中的典型错误密度

图1.各种规模项目中的典型误差密度。 数据取自Steve McConnell的书《 Perfect Code》。

因此,不可能使用与20-30年前相同的方法来编写可靠的程序。 有必要使用一组方法来帮助控制软件项目的复杂性的增长并确保必要的代码质量:

  • 编码标准
  • 代码审查
  • 单元测试
  • 回归测试
  • 负载测试
  • 手动测试
  • ....
  • 动态分析
  • 静态分析

列表顶部的方法对于程序员来说是相当熟悉的,并且长期以来几乎被所有团队成功地应用了。 但是,后两种方法虽然不是什么新鲜事物,但却鲜为人知。 因此,现在在学生准备期间,值得特别注意静态和动态分析工具的研究。

现在,我将不讨论动态分析,尽管它不比静态分析重要

但是静态分析是我们的要素,我邀请教师注意我们的软件产品PVS-Studio。

PVS-Studio是用于检测用C,C ++,C#和Java编写的程序的源代码中的错误和潜在漏洞的工具。 它可以在Windows,Linux和macOS上的64位系统上运行,并且可以分析为32位,64位和嵌入式ARM平台设计的代码。

PVS-Studio分析仪可以看作是用于静态代码分析的现代工具的示例。 首先,以他的示例展示静态分析工具检测错误和安全缺陷( SAST )的功能是很好的。 其次,您可以演示将其集成到软件开发周期中,以便代码控制是连续的。 使用他的示例,您可以显示与JenkinsTeamCityAzure DevOpsSonarQubeTravis CI等系统集成的可能性。

为了开始使用PVS-Studio作为培训的一部分,无需进行任何特殊或协调的操作。

我们提供了几种免费许可PVS-Studio的选项 ,包括开放源代码项目。 专门出于教育目的,当学生作业未打开时,最好的选择是在代码中添加以下注释:

// This is a personal academic project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++, C#, and Java: http://www.viva64.com

要免费开始使用PVS-Studio静态分析仪,您必须完成以下两个步骤:

第一步

如果将PVS-Studio用作Visual Studio的插件或使用Standalone实用程序,请输入以下许可证密钥:

Name: PVS-Studio Free
Key: FREE-FREE-FREE-FREE

如果您将PVS-Studio用于Linux,则直接转到第二步,则不需要带有许可证的文件。

第二步

您必须在每个文件的开头输入两行并带有注释。 对项目的所有编译文件进行更正。 这是指扩展名为c,cc,cpp,cs,java等的文件。 标头h文件不需要更改。

您可以手动添加注释,也可以使用辅助实用程序。 您可以在此处下载实用程序(以及源代码): how-to-use-pvs-studio-free

如何免费使用PVS-Studio文中对此进行了详细描述。 要求学生熟悉它。 特别要记住的是,我们通过StackOverflow网站为免费用户提供支持。 但是,您不应混淆支持和错误通知。 就在这样的时刻,并在文章中进行了描述。

谢谢您的关注。 如有任何疑问,我们准备提供帮助和建议。 请随时我们联系以获取支持。

附加链接:

  1. 伊万·波诺马列夫(Ivan Ponomarev)。 在Heisenbug 2019莫斯科会议上的报告: 连续静态代码分析
  2. 谢尔盖·赫列诺夫(Sergey Khrenov),菲利普·汉德利恩(Philip Handelyants)。 在Saint HighLoad ++ 2019会议上的大师班: PVS-Studio代码分析器
  3. 安德烈·卡波夫(Andrey Karpov)。 PVS-Studio的免费许可选项
  4. PVS-Studio。 文献资料



如果您想与说英语的读者分享这篇文章,请使用以下链接:Andrey Karpov。 敬请注意:使用PVS-Studio可使学生熟悉代码分析工具

Source: https://habr.com/ru/post/zh-CN470071/


All Articles