PVS-Studio - mecanismo de progresso

Figura 1

A equipe PVS-Studio e nosso produto contribuem muito para o desenvolvimento da qualidade do software. Além disso, além da detecção explícita de erros em projetos fechados e abertos, há uma contribuição indireta para o desenvolvimento de compiladores e outras ferramentas de análise de código. Estamos satisfeitos por sermos algumas vezes formadores de opinião e decidimos dedicar uma pequena nota a isso em nosso blog.

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

Para popularizar a metodologia de análise de código estático e nossa ferramenta, escrevemos notas sobre a verificação de vários projetos de código aberto. Em particular, verificamos vários compiladores de tempos em tempos. Por exemplo, verificamos e encontramos erros em projetos como: GCC, LLVM, PascalABC.NET, Roslyn.

Repetimos repetidamente um fato interessante. Assim que verificamos, digamos, LLVM ou GCC, após um ou dois lançamentos nesses compiladores, aparecem alguns novos diagnósticos, com o objetivo de identificar os erros que o PVS-Studio pode encontrar em seu código :). Infelizmente, não pensamos em escrever datas e links para inovações relevantes, então você deve aceitar nossa palavra aqui. Vários compiladores C ++ emprestam alguns de nossos diagnósticos e acreditamos que isso é completamente normal, correto e útil!

Além dos compiladores C ++, os analisadores C # agora estão conectados para obter diagnósticos emprestados. Isso significa que o analisador C # implementado no PVS-Studio se torna um modelo diferente! Perceber isso é bom e ótimo.

Nesse caso, eu posso consertar, podemos dizer, em tempo real, como isso acontece. Em 13 de agosto de 2019, publicamos um grande artigo dedicado à verificação das bibliotecas do .NET Core (CoreFX). Entre outras coisas, neste artigo, descrevemos o padrão de erro associado ao uso de cadeias interpoladas (consulte o diagnóstico da V3138 ). Os desenvolvedores do CoreFX estavam muito interessados ​​em nossa publicação e começaram a corrigir os bugs que encontramos. E já em 14 de agosto, eles chegaram aos erros que encontramos relacionados a essas linhas muito interpoladas: Corrija alguns $ s ausentes para interpolação de string no rastreamento .

Agora a parte divertida. No mesmo dia, uma tarefa apareceu no projeto Roslyn Analyzers para implementar o novo diagnóstico " Nova regra: seqüências de caracteres interpoladas sem o caractere especial $ 2767 ", que é conectado precisamente aos erros corrigidos no CoreFX.

Estamos satisfeitos que nosso trabalho tenha sido útil para os desenvolvedores do CoreFX e que nossos diagnósticos se tornaram um exemplo para os desenvolvedores do Roslyn Analyzers. É uma pena que a ferramenta PVS-Studio não seja mencionada em nenhum lugar da discussão. Acontece que, como se eles próprios encontrassem esses erros e apresentassem seus próprios diagnósticos. É claro que ficaríamos lisonjeados se fôssemos mencionados como a fonte. Oh bem.

Por que decidimos escrever sobre tudo isso? Estamos muito satisfeitos e até um pouco orgulhosos de nós mesmos! Estudando nossa experiência, outros compiladores implementam novos diagnósticos, o que melhora a qualidade do software desenvolvido como um todo. Entendo que não apenas influenciamos o desenvolvimento da capacidade dos compiladores de encontrar erros. No entanto, temos o prazer de estar cientes de que estamos contribuindo para esse processo.

Nos incomoda que outras ferramentas estejam aprendendo gradualmente a encontrar os mesmos erros que o PVS-Studio? Não. Nossa ferramenta existe e é vendida pelo motivo de estarmos sempre à frente do compilador. Nossa tarefa é sempre ficar à frente. A consciência do fato de estarmos constantemente sendo apanhados não nos permite relaxar e beneficia a todos. Além disso, é preciso entender que o PVS-Studio não é apenas avisos, mas também:

  • Suporte rápido de alta qualidade (apenas programadores respondem cartas);
  • Integração com o Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, IncrediBuild;
  • Capacidade de usar 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 cartas aos desenvolvedores (BlameNotifier);
  • Monitoramento de compilador;
  • E assim por diante

Obrigado pela atenção. Espero que você tenha ficado feliz conosco pelo PVS-Studio. E experimente nosso analisador para controle contínuo da qualidade do código de seus projetos.

Links adicionais:

  1. O cronograma para o desenvolvimento de recursos de diagnóstico no PVS-Studio .
  2. Tecnologias usadas no analisador de código PVS-Studio para procurar erros e possíveis vulnerabilidades .



Se você deseja compartilhar este artigo com um público que fala inglês, use o link para a tradução: Andrey Karpov. PVS-Studio: Motor do progresso .

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


All Articles