2009-04-01 7 views
4

Considérons que j'ai un code C#, j'ai besoin d'un outil qui permettrait d'effectuer une analyse de mon code et de signaler les bogues et les vulnérabilités. Existe-t-il des outils open source, quelque chose comme klocwork?Logiciel pour tester le code C#

Répondre

4

FxCop peut effectuer une analyse statique des assemblys compilés, ReSharper peut analyser votre programme au niveau du code source. Certaines éditions de Visual Studio intègrent l'analyse de code.

En sidenote: se lever à la vitesse sur unit testing (pensez NUnit et al.)

2

FxCop serait mon premier choix

1

Oui, écrire des tests unitaires et utiliser NUnit pour les exécuter. Si vous cherchez quelque chose comme l'analyse statique, vous devriez utiliser quelque chose comme FxCop. Vous n'allez pas trouver un logiciel qui identifiera automatiquement les bogues pour vous, mais avec les tests unitaires et l'analyse statique, vous pouvez vous rapprocher.

+0

"Vous n'allez pas trouver un logiciel qui identifiera automatiquement les bogues pour vous"; En fait, PEX * peut * le faire. Pas tous, mais certainement certains. Voir ma réponse ... –

+0

Je suis assez sûr qu'il n'y aura jamais un peu de logiciel capable d'identifier tous les bugs. Parce que vous savez, le problème d'arrêt et tout. Cela ressemble à un logiciel intéressant, cependant .. Je vais y jeter un coup d'oeil. –

1

J'utilise Gendarme

+0

Voici un lien: http://mono-project.com/Gendarme –

1

PEX pourrait être un bon début - il va tenter de force brute son chemin dans toutes les branches de code; mais finalement, vous seul savez ce que cela signifie. Vous devriez écrire des tests unitaires au fur et à mesure, avec NUnit et TestDriven.NET.

0

En plus de FxCop déjà mentionné que je voudrais ajouter StyleCop pour vérifier si le code concorde les directives de codage. Ensuite, il y aurait des outils de tests unitaires comme NUnit ou mon favori personnel MbUnit ou Pex et enfin un outil pour s'assurer que vous avez traité toutes les exceptions de manière appropriée - encore Pex ou Exception Hunter.