PVS-Studio: Motor do progresso

Figura 1

Uma equipe PVS-Studio e nosso produto contribuem muito para a atualização da qualidade do software. Além disso, além de detectar erros em projetos fechados e de código aberto, há uma contribuição indireta para o desenvolvimento de compiladores e outras ferramentas de análise de código. É com satisfação que, em alguns casos, somos criadores de tendências e decidimos dedicar uma pequena nota a isso em nosso blog.

O PVS-Studio é um analisador de código estático para detectar erros e possíveis vulnerabilidades no código fonte dos programas, escritos em C, C ++, C # e Java.

Para popularizar a metodologia de análise de código estático e nossa ferramenta, escrevemos artigos sobre verificações de vários projetos abertos. Além disso, verificamos vários compiladores de vez em quando. Por exemplo, testamos e encontramos bugs em projetos como: GCC, LLVM, PascalABC.NET, Roslyn.

Mais de uma vez nos deparamos com um fato interessante. Assim que verificamos, digamos, LLVM ou GCC, alguns novos diagnósticos aparecem nesses compiladores no próximo ou no próximo, mas um release. E eles detectam erros que o PVS-Studio conseguiu encontrar em seu código :). Infelizmente, não anotamos as datas e os links para as melhorias correspondentes, então você terá que aceitar nossa palavra. Vários compiladores C ++ emprestam alguns de nossos diagnósticos e achamos que é perfeitamente normal, correto e útil!

Além dos compiladores C ++, os analisadores C # também começaram a adotar idéias de nossos diagnósticos. O que significa que o analisador C #, implementado no PVS-Studio, tornou-se outra estrela! É legal e legal estar ciente disso.

Nesse caso, eu posso acompanhar como isso aconteceu, digamos, em tempo real. Em 13 de agosto de 2019, publicamos um grande artigo sobre a verificação do .NET Core Libraries (CoreFX). Entre outras coisas, este artigo descreve um padrão de erro relacionado ao uso de seqüências interpoladas (consulte o diagnóstico da V3138 ). Os desenvolvedores do CoreFX se interessaram por nossa publicação e começaram a corrigir os erros que encontramos. E em 14 de agosto, eles encontraram os erros que encontramos relacionados a essas seqüências de caracteres muito interpoladas: Corrija alguns $ s ausentes para a interpolação de sequências no rastreamento .

Aqui começa a parte mais interessante. Naquele mesmo dia, uma nova tarefa apareceu no projeto Roslyn Analyzers na implementação de um novo diagnóstico " Nova regra: seqüências de caracteres interpoladas sem o caractere especial $ 2767 ", relacionado ao direito a erros, corrigido no CoreFX. Estamos tão felizes que nossos esforços acabaram sendo úteis para os desenvolvedores do CoreFX e nossos diagnósticos se tornaram um modelo para os desenvolvedores do Roslyn Analyzers. É um pouco lamentável que a ferramenta PVS-Studio não seja mencionada em nenhum lugar da discussão. Parece que eles encontraram esses erros e tiveram a ideia de fazer os próprios diagnósticos. Obviamente, ficaríamos lisonjeados, se fôssemos mencionados como a fonte original. Bem, tudo bem.

Por que decidimos escrever sobre tudo isso? Estamos muito satisfeitos e até um pouco orgulhosos de nós mesmos! Ao estudar nossa experiência, outros compiladores implementam novos diagnósticos, melhorando a qualidade do software desenvolvido como um todo. Entendo que não somos os únicos que influenciam o desenvolvimento dos recursos de detecção de erros do compilador. No entanto, temos o prazer de saber que estamos contribuindo para esse processo.

Estamos preocupados que outras ferramentas estejam aprendendo gradualmente a encontrar os mesmos erros que o PVS-Studio? Não. Nossa ferramenta existe e é vendida corretamente pelo motivo de estarmos sempre à frente dos recursos dos compiladores. Nosso objetivo é sempre ficar à frente. A consciência de que alguém está constantemente nos compensando não nos deixa relaxados e beneficia a todos. Além disso, deve-se entender que o PVS-Studio não é apenas um aviso, mas também:

  • Suporte rápido de alta qualidade (apenas programadores respondem ao correio);
  • Integração com o Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, IncrediBuild;
  • A capacidade de usar a ferramenta localmente e na nuvem (Docker, Travis CI);
  • Ferramentas para integrar análises em grandes projetos antigos (supressão em massa);
  • Documentação detalhada com exemplos para cada padrão de erro;
  • O mecanismo para enviar e-mails para desenvolvedores (BlameNotifier);
  • O compilador executa o monitoramento (monitoramento do compilador);
  • E assim por diante

Obrigado pela atenção. Felizmente, você compartilha nossa alegria pelo PVS-Studio. Experimente nosso analisador para controle contínuo da qualidade do código de seus projetos.

Links adicionais:

  1. Gráfico PVS-Studio de Desenvolvimento de Habilidades de Diagnóstico .
  2. Tecnologias usadas no analisador de código PVS-Studio para encontrar erros e possíveis vulnerabilidades .

Source: https://habr.com/ru/post/pt464411/


All Articles