‘정적 프로그램 분석’ (Static program analysis)은 실제 실행 없이 컴퓨터 소프트웨어를 분석하는 것을 말한다. 다시 말해, 어떤 프로그램을 분석할 때 그 프로그램을 실행시키지 않고 ‘그 자체’를 분석하는 것이라고 해석할 수 있다. 프로그램에 내재한 논리적 오류는 일반적으로 프로그램을 실행하여 확인하지 않으면 찾기가 힘들지만, 정적 분석은 이러한 오류를 찾아내는 데 도움을 줄 수 있다.


대부분의 경우에 분석은 소스 코드의 버전 중 하나의 형태를 가지고 수행되며, 가끔은 최종 바이너리를 가지고 분석한다. 이에 반하여, 프로그램을 실행 하여 분석하는 것을 ‘동적 프로그램 분석’이라고 한다.  


정적 분석은 코드를 실행하지 않고도 모든 프로그램의 구성 요소를 검사하여 다양한 결함을 검출 할 수 있다는 장점이 있다. 또, 테스팅 도구들은 사용자의 적절한 가이드로 중요한 프로그램 구성 요소들을 실행해가면서 그 결과가 예상된 것 인지를 확인할 수 있는 메커니즘을 제공함으로써, 결함들을 검출 할 수 있도록 해준다. 이러한 정적분석이 ‘테스팅을 완전히 대신할 수 있는가’에 대한 의견이 분분한 가운데, 슈어소프트테크의 권민혁파트장을 만나  이에 대한 의견을 들어보았다. 



더 상세한 내용은 아래의 사이트에서 확인할 수 있습니다.


http://www.sw-eng.kr/