문제

C# 코드에 대한 정적 분석에 사용할 수 있는 도구는 무엇입니까?FxCop과 StyleCop에 대해 알고 있습니다.다른 사람들도 있나요?이전에 NStatic을 접해 본 적이 있지만 영원히 개발 중인 것 같습니다. 제가 본 것보다 꽤 매끄럽게 보이므로 언젠가 빛을 볼 수 있다면 좋을 것입니다.

이와 같은 맥락에서(이것은 주로 정적 분석에 대한 나의 관심입니다) 멀티스레딩 문제(교착 상태, 경쟁 조건 등)에 대한 코드를 테스트하기 위한 도구도 약간 부족해 보입니다.Typemock Racer가 방금 나타났으니 살펴보겠습니다.이 외에는 없나요?

귀하가 사용한 도구에 대한 실제 의견을 높이 평가합니다.

도움이 되었습니까?

해결책

코드 위반 감지 도구:

  • Fxcop, Microsoft의 훌륭한 도구입니다..net 프레임워크 지침을 준수하는지 확인하세요.

    2010년 10월 편집: 더 이상 독립 실행형 다운로드로 사용할 수 없습니다.이제는 윈도우 SDK 설치 후 Program Files\Microsoft SDKs\Windows\ [v7.1]\Bin\FXCop\FxCopSetup.exe에서 찾을 수 있습니다.

    2018년 2월 수정:이 기능은 이제 Visual Studio 2012 이상에 다음과 같이 통합되었습니다. 코드 분석

  • 클락샤프, 코드 소스 분석 기반(C# 2.0 기준)
  • 모노.겐다메, Fxcop과 유사하지만 오픈소스 라이선스가 있음(기반) 모노.세실)
  • 스모키, Fxcop 및 Gendarme과 유사합니다. 모노.세실.더 이상 개발 중이 아니며 현재 주요 개발자는 Gendarme 팀과 협력하고 있습니다.
  • C#용 Coverity Prevent™, 상용제품
  • PRQA QA·C#, 상용제품
  • PVS-스튜디오, 상용제품
  • CAT.NET , 보안 결함 식별을 돕는 Visual Studio 추가 기능
  • CodeIt.Right
  • 투기#
  • 펙스

품질 측정 도구:

  • N종속, 훌륭한 시각적 도구입니다.코드 측정항목, 규칙, 차이점, 결합 및 종속성 연구에 유용합니다.
  • 니트릭, 무료로 자신만의 측정항목/제약조건, 멋진 시각화를 쉽게 작성할 수 있습니다. 2018년 2월 편집: 다운로드 링크가 이제 사라졌습니다.
  • RSM 제곱, 코드 소스 분석을 기반으로
  • C# 측정항목, C#의 전체 구문 분석 사용
  • 소스모니터, 가끔 업데이트되는 오래된 도구
  • 코드 측정항목, ㅏ 반사기 추가 기능
  • , .NET 2.0을 지원하지 않는 오래된 도구입니다. 2018년 1월 수정: 이제 링크가 죽었습니다

스타일 도구 확인:

  • 스타일캅, Microsoft 도구(Visual Studio 내부에서 실행되거나 MSBuild 프로젝트에 통합됨).도 가능 확장으로 Visual Studio 2015 및 C#6.0용
  • 스미스 요원, 코드 스타일 유효성 검사 플러그인 ReSharper

중복 감지:

  • 유인원, 소스 코드를 기반으로 합니다.다양한 언어로 작동합니다.
  • 클론DR, 언어 경계에서만 매개변수화된 복제를 감지합니다(C# 이외의 많은 언어도 처리함).
  • 클론 탐정 Visual Studio 플러그인.(이것은 콘QAT 내부적으로)
  • 아토믹, 소스 코드 기반, 다양한 언어, 멋진 "휠" 시각화

일반 리팩토링 도구

  • ReSharper - 매우 멋진 C# 코드 분석 및 리팩토링 기능

다른 팁

도구 N종속 다음과 같이 인용된다 품질 측정 도구 하지만 그것은 또한 거의 코드 위반 감지 도구. 부인 성명:나는 도구 개발자 중 한 명입니다.

NDepend를 사용하면 다음과 같이 쓸 수 있습니다. LINQ 쿼리에 대한 코드 규칙(CQLinq라고 함).이상 200개의 CQLinq 코드 규칙 기본적으로 제안됩니다.CQLinq의 강점은 코드 규칙을 작성하는 것은 간단합니다, 그리고 얻다 즉시 결과.일치하는 코드 요소를 찾아볼 수 있는 기능이 제안되었습니다.예를 들어:

CQLinq code rule

그 외에도 NDepend에는 다른 많은 기능이 포함되어 있습니다. 다음과 같은 정적 분석 특징.여기에는 다음이 포함됩니다.

  • 헌병 오픈 소스 규칙 기반 정적 분석기입니다(FXCop과 유사하지만 다양한 문제를 발견합니다).
  • 클론 탐정 중복 코드를 찾아주는 Visual Studio용 플러그인입니다.
  • 또한 Mono에 관해 말하자면, Mono 컴파일러로 컴파일하는 행위(귀하의 코드가 그렇게 할 만큼 플랫폼 독립적인 경우 어쨌든 노력하고 싶은 목표일 수 있음)에서 Visual Studio가 완전히 놓친 수많은 참조되지 않은 변수와 기타 경고를 발견합니다. (경고 수준이 4로 설정된 경우에도).

본 적 있나요? CAT.NET?

광고문에서 -

CAT.NET는 이진 코드 분석 도구로, XSS (XSS), SQL 주입 및 XPATH 주입과 같은 일반적인 공격 벡터를 야기 할 수있는 특정 우세한 취약점의 공통 변형을 식별하는 데 도움이되는 이진 코드 분석 도구입니다.

저는 초기 베타 버전을 사용했는데 살펴볼 가치가 있는 몇 가지 사항이 나타난 것 같았습니다.

madgnome의 훌륭한 목록 외에도 명령줄을 기반으로 하는 중복 코드 감지기를 추가하겠습니다(무료).

http://sourceforge.net/projects/duplo/

Klocwork에는 C#용 정적 분석 도구가 있습니다. http://www.klocwork.com

나는 코드 측정항목 그리고 종속성 구조 매트릭스 Reflector용 추가 기능은 매우 유용합니다.

Optimyth Software는 클라우드에서 정적 분석 서비스를 출시했습니다. www.checkinginthecloud.com.코드를 안전하게 업로드하여 분석을 실행하고 결과를 얻으세요.번거로움이 없습니다.

C#을 포함한 여러 언어를 지원합니다. 자세한 내용은 다음에서 확인할 수 있습니다. wwww.optimyth.com

악시비온 바우하우스 스위트룸 C#(C, C++ 및 Java 포함)에서 작동하는 정적 분석 도구입니다.

다음과 같은 기능을 제공합니다.

  • 소프트웨어 아키텍처 시각화(종속성 포함)
  • 건축 규칙 시행(예:계층화, 하위 시스템, 호출 규칙
  • 복제 감지 - 복사 및 붙여넣기(및 수정된 코드) 강조 표시
  • 데드 코드 감지
  • 사이클 감지
  • 소프트웨어 지표
  • 코드 스타일 검사

이러한 기능은 일회성으로 실행되거나 지속적인 통합 프로세스의 일부로 실행될 수 있습니다.시스템이 소스 코드 제어 시스템과 통합되면 프로젝트별로 또는 개발자별로 문제를 강조할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top