To get a trial key
fill out the form below
Team License (a basic version)
Enterprise License (an extended version)
* By clicking this button you agree to our Privacy Policy statement

Request our prices
New License
License Renewal
--Select currency--
USD
EUR
GBP
RUB
* By clicking this button you agree to our Privacy Policy statement

Free PVS-Studio license for Microsoft MVP specialists
* By clicking this button you agree to our Privacy Policy statement

To get the licence for your open-source project, please fill out this form
* By clicking this button you agree to our Privacy Policy statement

I am interested to try it on the platforms:
* By clicking this button you agree to our Privacy Policy statement

Message submitted.

Your message has been sent. We will email you at


If you haven't received our response, please do the following:
check your Spam/Junk folder and click the "Not Spam" button for our message.
This way, you won't miss messages from our team in the future.

>
>
PVS-Studio Graph of Diagnostic Abilitie…

PVS-Studio Graph of Diagnostic Abilities Development

Jun 17 2019

More than 8 years have passed since the PVS-Studio product was released, and all this time we've been implementing new diagnostic rules in it. Moreover, we are not going to stop. If you care about whether we have lost our vivacity over the years, and whether PVS-Studio stops developing, the graph given in the article will take this issue off the table. The analyzer is actively developing, and the speed of development only increases over the years.

0632_Diagnostic_Count/image1.png

At the time of writing, PVS-Studio has implemented 669 diagnostics; in addition, many of them are comprehensive. For example, we see no point in chasing the quantity and creating two separate diagnostics for these cases: the condition is always false, the condition is always true. Someone does the same, someone splits such diagnostics by a few. For example, you can find tools in which such diagnostics are split: always false boolean expression, a zero pointer is used as a condition and others. Therefore, the number of diagnostics in itself doesn't mean anything, and especially it is not worthy to compare different analyzers, drawing on the number of diagnostics. What's actually interesting is to see how the PVS-Studio analyzer has been developing in time. For this I decided to build a timeline of the new diagnostics emergence.

It was much easier to come up with an idea with a graph than to implement it. We didn't have a chart of how many diagnostics there were in various versions of PVS-Studio. Somehow, no one ever thought to start writing down these figures. I had to apply ingenuity and hard work.

We have a list of all the changes that took place in PVS-Studio releases. Including, added diagnostics are listed there. I asked my colleague Nastya to conduct an archaeological study of the changes list and write down release dates, as well as the number of diagnostics added. A simple but painstaking task. Nastya, thank you for your help. So, below you can see the graph that we got.

0632_Diagnostic_Count/image3.png

There are two bursts on the graph. The first spate dates back to the end of 2015 - the beginning of 2016, and is related to the addition of the language support. The second spate dates back to the end of 2018 and early 2019, and is related to the implementation of Java language support, as well as the start of working on the MISRA standard support.

In fact, now the 3rd peak begins to form, which is not yet visible on the graph. After the first part of MISRA diagnostics we took a little break and now stepped-up in this direction again. Therefore, the graph must show a new surge of activity, starting in mid-2019.

The graph shows that the development of the PVS-Studio analyzer is progressing at a brisk pace. Moreover, the development was quite linear before the end of 2015, after that the "jumps" began to emerge. Due to these "jumps" the graph began to acquire a non-linear appearance and, perhaps, in the future it can be interpolated by a parabola.

As you can see, we are full of strength and enthusiasm to develop the PVS-Studio code analyzer, support new versions of compilers, adapt plug-ins to the fresh versions of Visual Studio / SonarQube / IntelliJ IDEA. Use PVS-Studio to make your code safer, better and more secure.

Popular related articles
Characteristics of PVS-Studio Analyzer by the Example of EFL Core Libraries, 10-15% of False Positives

Date: Jul 31 2017

Author: Andrey Karpov

After I wrote quite a big article about the analysis of the Tizen OS code, I received a large number of questions concerning the percentage of false positives and the density of errors (how many erro…
Free PVS-Studio for those who develops open source projects

Date: Dec 22 2018

Author: Andrey Karpov

On the New 2019 year's eve, a PVS-Studio team decided to make a nice gift for all contributors of open-source projects hosted on GitHub, GitLab or Bitbucket. They are given free usage of PVS-Studio s…
How PVS-Studio Proved to Be More Attentive Than Three and a Half Programmers

Date: Oct 22 2018

Author: Andrey Karpov

Just like other static analyzers, PVS-Studio often produces false positives. What you are about to read is a short story where I'll tell you how PVS-Studio proved, just one more time, to be more atte…
Technologies used in the PVS-Studio code analyzer for finding bugs and potential vulnerabilities

Date: Nov 21 2018

Author: Andrey Karpov

A brief description of technologies used in the PVS-Studio tool, which let us effectively detect a large number of error patterns and potential vulnerabilities. The article describes the implementati…
Static analysis as part of the development process in Unreal Engine

Date: Jun 27 2017

Author: Andrey Karpov

Unreal Engine continues to develop as new code is added and previously written code is changed. What is the inevitable consequence of ongoing development in a project? The emergence of new bugs in th…
The way static analyzers fight against false positives, and why they do it

Date: Mar 20 2017

Author: Andrey Karpov

In my previous article I wrote that I don't like the approach of evaluating the efficiency of static analyzers with the help of synthetic tests. In that article, I give the example of a code fragment…
Appreciate Static Code Analysis!

Date: Oct 16 2017

Author: Andrey Karpov

I am really astonished by the capabilities of static code analysis even though I am one of the developers of PVS-Studio analyzer myself. The tool surprised me the other day as it turned out to be sma…
The Last Line Effect

Date: May 31 2014

Author: Andrey Karpov

I have studied many errors caused by the use of the Copy-Paste method, and can assure you that programmers most often tend to make mistakes in the last fragment of a homogeneous code block. I have ne…
PVS-Studio ROI

Date: Jan 30 2019

Author: Andrey Karpov

Occasionally, we're asked a question, what monetary value the company will receive from using PVS-Studio. We decided to draw up a response in the form of an article and provide tables, which will sho…
PVS-Studio for Java

Date: Jan 17 2019

Author: Andrey Karpov

In the seventh version of the PVS-Studio static analyzer, we added support of the Java language. It's time for a brief story of how we've started making support of the Java language, how far we've co…

Comments (0)

Next comments
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site.
Learn More →
Accept