Static Code Analysis
정적 프로그램 분석(Static Code Analysis)은 컴퓨터 소프트웨어를 분석하는 방법 가운데 하나로 그 소프트웨어로부터 만들어진 프로그램을 실제로 실행해보지 않고 분석하는 방법이다. (프로그램을 실행해보고 분석하는 방법은 동적 프로그램 분석이다). 대부분의 경우 원시 코드의 형태를 가지고 분석을 수행하지만 목적 코드의 형태를 가지고 분석하는 경우도 있다. 일반적으로 사람이 어느 정도 프로그램에 대한 이해를 바탕으로 자동화된 도구를 이용해서 분석하는 것을 정적 프로그램 분석이라고 부른다.
분석의 복잡한 정도는 도구에 따라서 각각의 명령문과 선언문을 분석하는 것부터 프로그램의 원시코드 전체를 포함해 분석하는 것까지 다양하다. 분석된 정보를 이용하는 것 또한 있음직한 코딩 에러를 표시해주는 것부터 프로그램이 어떤 속성을 만족하는지 수학적으로 증명하는 정형분석법까지 (예: 프로그램의 행동과 주어진 명세에 맞는지 검사) 다양하다.
Multi-language | Axivion Bauhaus Suite, Black Duck Suite, BugScout, CAST Application Intelligence Platform, ChecKing, Coverity Static Analysis (formerly Coverity Prevent), DevPartner, DMS Software Reengineering Toolkit, Compuware DevEnterprise, GrammaTech CodeSonar, HP Fortify Source Code Analyzer, IBM Rational AppScan Source Edition, Imagix 4D, JustCode, Klocwork Insight, LDRA Testbed, MALPAS, Micro Focus, Moose, Parasoft, Copy/Paste Detector (CPD), Polyspace, ProjectCodeMeter, Protecode, Rational Software Analyzer, ResourceMiner, SofCheck Inspector, Sonar, Sotoarc/Sotograph, SPARROW, Syhunt Sandcat, Understand, Veracode, Visual Studio Team System, Yasca, RATS |
.NET | FxCop, Gendarme, StyleCop, CodeIt.Right, CodeRush, Parasoft dotTEST, JustCode, NDepend, ReSharper, Kalistick |
ActionScript | Apparat |
Ada | AdaControl, AdaCore CodePeer, LDRA Testbed, Polyspace, SofCheck Inspector |
BLAST, CppCheck, cpplint, Clang, Coccinelle, Eclipse (software), Flawfinder, Frama-C, FlexeLint, Green Hills Software DoubleCheck, Intel, Lint, LDRA Testbed, Monoidics INFER, Parasoft C/C++test, PC-Lint, Polyspace, PVS-Studio, QA-C (QA-C++), Red Lizard's Goanna, Lint, SLAM project, Sparse, Splint | |
AgileJ StructureViews, Checkstyle, FindBugs, Hammurapi, PMD, Soot, Squale, Jtest, LDRA Testbed, SemmleCode, SonarJ, Kalistick | |
Closure Compiler, JSLint, JSHint | |
Perl::Critic, PerlTidy, Padre | |
Pychecker, Pylint |