C # 코드에 대한 정적 분석을 위해 어떤 도구를 사용할 수 있습니까? FxCop과 StyleCop에 대해 알고 있습니다. 다른 사람이 있습니까? 나는 전에 NStatic을 뛰어 다녔지 만 영원히 보이는 것처럼 개발 중입니다. 내가 본 작은 것에서 꽤 매끄러운 것처럼 보이므로 하루의 빛을 볼 수 있다면 좋을 것입니다.
이 같은 줄 (주로 정적 분석에 관심이 있음)과 함께 멀티 스레딩 문제 (교착 상태, 경쟁 조건 등)를 테스트하는 도구도 약간 부족합니다. Typemock Racer가 방금 나왔습니다. 이것 이외의 것이 있습니까?
사용한 도구에 대한 실제 의견에 감사드립니다.
답변
코드 위반 탐지 도구 :
-
Fxcop 는 Microsoft의 탁월한 도구입니다. .net 프레임 워크 지침을 준수하는지 확인하십시오.
2010 년 10 월 편집 : 더 이상 독립형 다운로드로 사용할 수 없습니다. 이제 Windows SDK에 포함되어 있으며 설치 후 Program Files \ Microsoft SDKs \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe에 있습니다.
2018 년 2 월 편집 :이 기능은 이제 Visual Studio 2012 이상에 코드 분석 으로 통합되었습니다.
-
코드 소스 분석 (C # 2.0)을 기반으로하는 Clocksharp
-
Mono.Gendarme , Fxcop 와 유사하지만 오픈 소스 라이센스 ( Mono.Cecil 기반 )
-
스모키 을 기반으로합니다 FxCop과 헌병과 유사, Mono.Cecil . 더 이상 개발을하지 않아도 주요 개발자는 현재 Gendarme 팀과 협력합니다.
-
상용 제품 C # 용 Coverity Prevent ™
-
PRQA QA · C # , 상용 제품
-
상용 제품 PVS-Studio
-
CAT.NET , 보안 결함을 식별하는 데 도움이되는 Visual Studio 애드 인 2019 년 11 월 편집 : 링크가 종료되었습니다.
-
보다 깨끗하고 안전한 코드 작성을 지원하는 SonarQube , FOSS & Commercial 옵션.
품질 측정 도구 :
- 훌륭한 시각적 도구 인 NDepend 코드 메트릭, 규칙, diff, 커플 링 및 종속성 연구에 유용합니다.
- Nitriq 은 무료이며 자신 만의 통계 / 제약, 멋진 시각화를 쉽게 작성할 수 있습니다. 2018 년 2 월 편집 : 다운로드 링크가 이제 종료되었습니다. 2019 년 6 월 17 일 편집 : 링크가 죽지 않았습니다.
- 코드 소스 분석에 기반한 RSM Squared
- C # 의 전체 구문 분석을 사용하는 C # 지표
- 때때로 업데이트되는 오래된 도구 인 SourceMonitor
- 코드 메트릭 하는 반사판 추가
- .NET 2.0을 지원하지 않는 오래된 도구 인 Vil . 2018 년 1 월 편집 : 링크가 이제 죽었습니다
스타일 도구 확인 :
- StyleCop , Microsoft 도구 (Visual Studio 내부에서 실행되거나 MSBuild 프로젝트에 통합됨) Visual Studio 2015 및 C # 6.0 의 확장으로 도 제공
- 에이전트 Smith , ReSharper 용 코드 스타일 검증 플러그인
복제 감지 :
- 소스 코드를 기반으로 한 Simian . 많은 언어로 작동합니다.
- CloneDR 은 언어 경계에서만 매개 변수화 된 클론을 탐지합니다 (C # 이외의 많은 언어도 처리 함)
- 클론 탐지 Visual Studio 플러그인. ( 내부적으로 ConQAT를 사용합니다 )
- 소스 코드, 많은 언어, 멋진 “바퀴”시각화를 기반으로하는 Atomiq
일반 리팩토링 도구
- ReSharper- 주로 멋진 C # 코드 분석 및 리팩토링 기능
답변
NDepend 도구 는 Quality Metric Tools 로 인용 되지만 코드 위반 탐지 도구 이기도합니다 . 면책 조항 : 나는 도구의 개발자 중 하나입니다
NDepend를 사용하면 LINQ 쿼리에 대한 코드 규칙 (CQLinq)을 작성할 수 있습니다 . 기본적으로 200 개 이상의 CQLinq 코드 규칙 이 제안됩니다. CQLinq의 강점은 코드 규칙을 작성하고 즉시 결과를 얻는 것이 간단 하다는 것입니다 . 일치하는 코드 요소를 찾아보기위한 기능이 제안됩니다. 예를 들면 다음과 같습니다.
그 외에도 NDepend는 기능 과 같은 다른 많은 정적 분석을 제공합니다. 여기에는 다음이 포함됩니다.
- 스마트 기술 부채 추정
- 의존성 그래프
- 종속성 매트릭스
- 코드 차이 기능
- 정적 분석 도구를 직접 작성할 수있는 NDepend.API NDepend.APi를 사용하여 코드 중복을 감지하는 도구도 개발했습니다 (이 블로그 게시물의 세부 사항 : .NET 코드 중복을 찾기위한 원본 알고리즘 ).
답변
- Gendarme 은 오픈 소스 규칙 기반 정적 분석기입니다 (FXCop과 유사하지만 많은 다른 문제가 있음).
- Clone Detective 는 Visual Studio 용 플러그인으로 중복 코드를 찾습니다.
- 또한 Mono에 관해서는, Mono 컴파일러로 컴파일하는 행위를 발견합니다 (코드가 플랫폼에 독립적 인 경우, 어쨌든 노력하고 싶은 목표)는 참조되지 않은 변수와 Visual Studio가 완전히 놓친 기타 경고를 찾습니다. (경고 수준이 4로 설정된 경우에도).
답변
당신은 본 적이 CAT.NET를 ?
블 러브에서-
CAT.NET은 이진 코드 분석 도구로 XSS (Cross-Site Scripting), SQL Injection 및 XPath Injection과 같은 일반적인 공격 경로를 유발할 수있는 특정 취약점의 일반적인 변형을 식별하는 데 도움이됩니다.
초기 베타 버전을 사용했는데 몇 가지 가치가있는 것으로 나타났습니다.
답변
madgnome의 우수한 목록 외에도 명령 줄을 기반으로하는 중복 코드 감지기를 추가하지만 무료입니다.