Quais ferramentas existem para análise estática em relação ao código C #? Eu sei sobre FxCop e StyleCop. Existem outros? Eu já encontrei o NStatic antes, mas ele está em desenvolvimento pelo que parece ser uma eternidade - está parecendo muito escorregadio com o pouco que vi sobre isso, então seria bom se ele visse a luz do dia.
Nessa mesma linha (esse é principalmente o meu interesse pela análise estática), as ferramentas para testar o código para problemas de multithreading (deadlocks, condições de corrida etc.) também parecem um pouco escassos. Typemock Racer acabou de aparecer, então eu vou olhar para isso. Algo além disso?
As opiniões da vida real sobre as ferramentas que você usou são apreciadas.
c#
code-analysis
static-analysis
Paul Mrozowski
fonte
fonte
Respostas:
Ferramentas de detecção de violação de código:
Fxcop , excelente ferramenta da Microsoft. Verifique a conformidade com as diretrizes da estrutura .net.
Editar outubro de 2010: não está mais disponível como um download independente. Agora ele está incluído no Windows SDK e, após a instalação, pode ser encontrado em Arquivos de Programas \ Microsoft SDKs \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe
Editar fevereiro de 2018 : essa funcionalidade agora foi integrada ao Visual Studio 2012 e posterior como análise de código
Clocksharp , com base na análise da fonte de código (para C # 2.0)
Mono.Gendarme , semelhante ao Fxcop, mas com uma licença de código-fonte aberto (baseado no Mono.Cecil )
Smokey , semelhante ao Fxcop e Gendarme, baseado no Mono.Cecil . Já não está em desenvolvimento, o desenvolvedor principal trabalha com a equipe do Gendarme agora.
Coverity Prevent ™ para C # , produto comercial
PRQA QA · C # , produto comercial
PVS-Studio , produto comercial
CAT.NET , complemento do visual studio que ajuda a identificar falhas de segurança Editar novembro de 2019: o link está morto.
CodeIt.Right
Nº de especificação
Pex
Opções SonarQube , FOSS e comerciais para oferecer suporte à escrita de códigos mais limpos e seguros.
Ferramentas métricas de qualidade:
Verificando as ferramentas de estilo:
Detecção de duplicação:
Ferramentas gerais de refatoração
fonte
A ferramenta NDepend é citada como Quality Metric Tools, mas também é uma ferramenta de detecção de violação de código . Isenção de responsabilidade: sou um dos desenvolvedores da ferramenta
Com o NDepend, é possível escrever Regra de Código em Consultas LINQ (o que chamamos de CQLinq) . Mais de 200 regras de código CQLinq são propostas por padrão. A força do CQLinq é que é simples escrever uma regra de código e obter resultados imediatamente . As instalações são propostas para procurar elementos de código correspondentes. Por exemplo:
Além disso, o NDepend vem com muitas outras análises estáticas, como recursos. Esses incluem:
fonte
fonte
Você já viu o CAT.NET ?
Da sinopse -
Eu usei uma versão beta inicial e parecia aparecer algumas coisas que vale a pena observar.
fonte
Além da excelente lista da madgnome, eu adicionaria um detector de código duplicado baseado na linha de comando (mas é gratuito):
http://sourceforge.net/projects/duplo/
fonte
O Klocwork possui uma ferramenta de análise estática para C #: http://www.klocwork.com
fonte
Acho os suplementos de métricas de código e matriz de estrutura de dependência para o Reflector muito úteis.
fonte
A Optimyth Software acaba de lançar um serviço de análise estática na nuvem www.checkinginthecloud.com . Faça o upload do seu código com segurança, execute a análise e obtenha os resultados. Sem aborrecimentos.
Ele suporta vários idiomas, incluindo C #, para mais informações em wwww.optimyth.com
fonte
O Axivion Bauhaus Suite é uma ferramenta de análise estática que funciona com C # (assim como C, C ++ e Java).
Ele fornece os seguintes recursos:
Esses recursos podem ser executados de forma única ou como parte de um processo de Integração Contínua. Os problemas podem ser destacados por projeto ou por desenvolvedor quando o sistema é integrado a um sistema de controle de código-fonte.
fonte