기관회원 [로그인]
소속기관에서 받은 아이디, 비밀번호를 입력해 주세요.
개인회원 [로그인]

비회원 구매시 입력하신 핸드폰번호를 입력해 주세요.
본인 인증 후 구매내역을 확인하실 수 있습니다.

회원가입
서지반출
사례연구를 통한 정적 프로그램 분석 기법을 사용하는 도구의 비교
[STEP1]서지반출 형식 선택
파일형식
@
서지도구
SNS
기타
[STEP2]서지반출 정보 선택
  • 제목
  • URL
돌아가기
확인
취소
  • 사례연구를 통한 정적 프로그램 분석 기법을 사용하는 도구의 비교
저자명
김윤호,박용배,김문주,Kim. Yunho,Park. Yongbae,Kim. Moonzoo
간행물명
정보과학회논문지. Journal of KIISE. 컴퓨팅의 실제 및 레터
권/호정보
2013년|19권 8호|pp.424-428 (5 pages)
발행정보
한국정보과학회
파일정보
정기간행물|
PDF텍스트
주제분야
기타
이 논문은 한국과학기술정보연구원과 논문 연계를 통해 무료로 제공되는 원문입니다.
서지반출

기타언어초록

프로그램 신뢰성 향상을 위해서 정적 프로그램분석 도구가 많이 사용되고 있다. 하지만, 정적 분석 결과에서 거짓 경보를 걸러내기 위한 추가적인 분석이 필요하고 실제 오류를 찾지 못할 수 있는 문제점이 있다. 본 논문에서는 상용 정적 프로그램 분석 도구인 Coverity와 Sparrow 및 오픈 소스 도구인 Clang analyzer를 buffer overflow 벤치마크와 libexif 0.6.20 소스코드에 적용하여 실험 대상 도구가 오류를 찾아내는데 얼마나 효과적인지 사례 연구를 수행하였다. 실험 결과 buffer overflow 벤치마크에서는 Coverity, Sparrow, Clang analyzer 각각 6.02%, 3.61%, 0%의 버그탐지율과 2.41%, 1.20%, 0%의 오탐율을 보였다. libexif 0.6.20 적용에서 Coverity, Sparrow, Clang analyzer는 총 745개의 오류를 찾아내었으나 알려진 7개의 오류 중 6개를 찾아내지 못하였다. 이와 같이 정적 분석 도구가 놓칠 수 있는 오류가 많으므로 높은 소프트웨어 신뢰성 보장을 위해 다른 기법과 병행하여 적용하는 것이 필요하다.

기타언어초록

Static analysis tools have been widely used to improve software reliability. However, static analysis tools have limitations that can generate false alarms and can miss real bugs. This paper presents a comparative study of three static analysis tools, Coverity, Sparrow, and Clang analyzer, through a case study on a set of buffer overflow benchmark programs and libexif 0.6.20 to evaluate the effectiveness of the three static analysis tools in terms of a bug finding capability. Experiment results on buffer overflow benchmark show that bug detection capabilities of Coverity, Sparrow, and Clang analyzer are 6.02%, 3.61%, and 0%, respectively and false alarm ratios of Coverity, Sparrow, and Clang analyzer are 2.41%, 1.20% and 0%, respectively. Experiment results on libexif 0.6.20 show that Coverity, Sparrow, and Clang analyzer detect 745 bugs and miss 6 out of 7 real bugs. Thus, it is necessary to use other bug finding techniques with static analysis techniques for achieving high software reliability, because static analysis tools can miss real bugs in target programs.