정적 코드 분석을 위한 도구 목록

List of tools for static code analysis

정적 프로그램 분석을 위한 주목할 만한 도구 목록입니다(프로그램 분석은 코드 분석의 동의어입니다).

정적 코드 분석 도구

언어들

아다

C, C++

C#

IEC 61131-3

  • CODESYS 정적 분석 – CODESYS용 통합 추가 기능(예: ST, FBD, LD에서 응용 프로그램 코드 실현)

자바

도구. 최신 릴리스 자유 소프트웨어 중복
암호를 쓰다
메모들
체크스타일 2020-01-26 네; LGPL 아니요. 일부 정적 코드 분석 외에도 구성된 코딩 표준의 위반을 표시하는 데 사용할 수 있습니다. 중복 코드 탐지가 Checkstyle에서 제거되었습니다[13].
이클립스 2017-06-28 예; EPL 아니요. 편집기에서 코드를 즉시 분석하고 전체 프로젝트의 대량 분석에 사용할 수 있는 수백 개의 코드 검사 세트를 갖춘 크로스 플랫폼 IDE. Checkstyle, FindBugs 및 PMD용 플러그인입니다.
버그 찾기 2015-03-06 네; LGPL 메릴랜드 대학의 자카르타 BCEL을 기반으로 합니다. SpotBugs는 FindBugs의 정신적 후계자로, 커뮤니티의 지원으로 중단한 시점부터 계속됩니다.
IntelliJ IDEA 2021-04-06 예; ASL 2 네. 코드 검사 및 분석 기능이 내장된 선도적인 Java IDE입니다. Checkstyle, FindBugs 및 PMD용 플러그인입니다.
건축가 2017-06-11 아니요; 독점적 코드 종속성을 분석 및 시각화하고, 설계 규칙을 정의하고, 영향 분석을 수행하고, 코드의 여러 버전을 비교함으로써 복잡한 코드 기반을 단순화합니다.
제이테스트 2019-05-21 아니요; 독점적 네. 파라소프트의 테스트 및 정적 코드 분석 제품입니다.
그을음 2020-10-28 네; LGPL 중급 언어로 구성된 언어 조작 및 최적화 프레임워크입니다.
PMD 2021-01-30 예, BSD 라이센스 네. CPD를 포함한 플러그인을 지원하는 정적 코드 분석기입니다. PMD는 여러 언어의 확인을 지원합니다.
스콸레 2011-05-26 네; LGPL 소프트웨어 품질을 관리하는 플랫폼입니다.
스레드세이프 2014-03-28 아니요; 독점적 동시성 버그를 찾는 데 초점을 맞춘 정적 분석 도구입니다.

자바스크립트

  • ESLint – 자바스크립트 구문 검사기 및 포맷터.
  • Google의 Closure 컴파일러 – 코드를 더 빠르고 더 작게 다시 작성하고 기본 자바스크립트 기능 사용을 점검하는 자바스크립트 최적화기.
  • CodeScene – 코드의 행동 분석.
  • JS힌트 – JS린트의 커뮤니티 기반 포크입니다.
  • JSLint – 자바스크립트 구문 검사기 및 검증기.
  • 클로크워크
  • Semgrep – 코드 표준과 버그를 조기에 표현하는 데 도움이 되는 정적 분석 도구입니다. CI 서비스와 규칙 라이브러리도 사용할 수 있습니다.
  • 이해하다

목적-C, 목적-C++

  • Clang – 무료 Clang 프로젝트에는 정적 분석기가 포함되어 있습니다. 버전 3.2를 기준으로 이 분석기는 Xcode에 포함되어 있습니다.[14]
  • 추론 – Facebook의 엔지니어링 팀이 오픈 소스 기여자와 함께 개발했습니다. 널 포인터, 누출, API 사용 및 기타 보풀 검사를 대상으로 합니다. 깃허브에서 오픈 소스로 사용할 수 있습니다.
  • 이해하다

오파

  • Opa에는 자체 정적 분석기가 포함되어 있습니다. 이 언어는 웹 응용 프로그램 개발을 위한 것이므로, 강력하게 정적으로 입력된 컴파일러는 웹 데이터에 대한 높은 수준의 유형의 유효성을 검사하고 XSS 공격 및 데이터베이스 코드 주입과 같은 많은 취약성을 기본적으로 방지합니다.

포장

  • Lintian – Debian 소프트웨어 패키지에서 일반적인 불일치 및 오류를 확인합니다.
  • Rpm 보풀 – RPM 패키지에서 일반적인 문제가 있는지 확인합니다.

  • Perl::Critic – 일반적인 Perl 모범 사례를 적용하는 데 도움이 되는 도구입니다. 대부분의 모범 사례는 Damian ConwayPerl 모범 사례집을 기반으로 합니다.
  • PerlTidy – Perl에서 코딩 연습을 위한 구문 검사 및 테스터/수행자 역할을 하는 프로그램입니다.
  • Padre – Perl용 IDE - 일반적인 초보자 오류를 확인하기 위한 정적 코드 분석 기능도 제공합니다.

PL/SQL

파워빌더, 파워스크립트

파이썬

  • PyCharm – 교차 플랫폼 Python IDE(코드 검사)를 통해 편집기에서 코드를 즉시 분석하고 전체 프로젝트를 대량으로 분석할 수 있습니다.
  • PyDev – Eclipse 기반 Python IDE(에디터에서 즉시 또는 저장 시간에 코드 분석 가능)
  • Pylint – 정적 코드 분석기. 매우 엄격합니다. 스타일 경고도 많이 포함되어 있습니다.
  • 클로크워크
  • Semgrep – 코드 표준 및 서페이싱 버그를 조기에 표현하는 데 도움이 되는 정적 코드 분석기입니다. CI 서비스와 규칙 라이브러리도 사용할 수 있습니다.
  • 이해하다

트랜잭션-SQL

  • Visual Expert – 프로그래밍 문제에 대해 보고하고 복잡한 코드(영향 분석, 소스 코드 문서화, 호출 트리, CRUD 매트릭스 등)를 이해하고 유지하는 데 도움을 주는 SQL 서버 코드 분석 도구입니다[16].

중복 코드 탐지가 가능한 도구

형식적 방법 도구

사운드를 사용하는 도구, 즉 엄격한 모델을 과도하게 근사화하는 공식적인 방법은 정적 분석에 접근합니다(예: 정적 프로그램 주장 사용). 사운드 메소드는 적어도 버그가 없는 프로그램에 대해 잘못된 부정적인 요소를 포함하지 않습니다("무조건적인" 건전성은 없습니다). 버그가 많은 프로그램에 대한 모든 버그를 보고한다는 보장은 없으며 적어도 하나를 보고할 것입니다.

참고 항목

참고문헌

  1. ^ "CPAchecker". 2015-02-08.
  2. ^ "Static Analysis in Xcode". Apple. Archived from the original on 2009-09-05. Retrieved 2009-09-03.
  3. ^ "Running the analyzer within Xcode". Archived from the original on 5 December 2021. Retrieved 14 January 2022.
  4. ^ "Supported Application Security Testing Tools and Languages". codedx.com. Retrieved Apr 25, 2017.
  5. ^ "Coverity Scan website". Retrieved 2023-08-23.
  6. ^ "ECLAIR website". Retrieved 2021-10-07.
  7. ^ "CppDepend what's new". cppdepend.com. Retrieved 1 March 2023.
  8. ^ "Readme.md of Google Style Guides". GitHub. Retrieved 8 November 2021.
  9. ^ Malcolm, David (2020-03-26). "Static analysis in GCC 10". Red Hat Developer. Retrieved 2022-04-13.
  10. ^ "UNIX is free!". lemis.com. 2002-01-24.
  11. ^ "NDepend what's new". ndepend.com. Retrieved 15 June 2022.
  12. ^ "PMD - Browse /pmd/5.0.0 at SourceForge.net". Retrieved Dec 9, 2012.
  13. ^ "Remove StrictDuplicateCodeCheck and whole package · Issue #523 · checkstyle/Checkstyle". GitHub.
  14. ^ "Static Analysis in Xcode". Apple. Retrieved 2009-09-03.
  15. ^ "Visual Expert for Oracle - PL/SQL Code Analyzer". www.visual-expert.com. 2017-08-24.
  16. ^ "Visual Expert for SQL Server - Transact SQL Code Analyzer". www.visual-expert.com. 2017-08-24.
  17. ^ Cousot, Patrick (2007). "The Role of Abstract Interpretation in Formal Methods". Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007). IEEE International Conference on Software Engineering and Formal Methods. pp. 135–140. doi:10.1109/SEFM.2007.42. ISBN 978-0-7695-2884-7. S2CID 67212.

외부 링크