Offcanvas

개발자

고랭에서 찾기 힘든 버그 잡는다… ‘고 퍼즈’ 베타 테스트 공개

2021.06.08 Paul Krill  |  InfoWorld
고(Go) 언어의 네이티브 퍼징이 베타 테스트 단계로 공개됐다. 이 새로운 자동 테스트 기능의 목표는 고 언어 개발자가 코드 품질을 개선하는 동시에 고랭으로 구축된 시스템을 안전하고 탄력적으로 유지할 수 있도록 지원하는 것이다. 
 
ⓒGetty Images

지난 6월 3일 공식 블로그에서 고 언어 개발팀은 ‘퍼징(Fuzzing)’에 관해 프로그램 입력을 지속적으로 조작해 발견되지 않을 수 있는 문제나 버그를 찾는 자동화된 테스트 유형이라고 설명했다. 개발팀에 따르면 이러한 반 무작위 데이터 변형은 단위 테스트가 놓칠 수 있는 새로운 코드 커버리지를 발견하고, 그렇지 않으면 눈에 띄지 않는 엣지 케이스 버그를 잡아낼 수 있다. 특히 퍼징은 기존 테스트보다 더 많은 코드 커버리지를 제공하기 때문에 취약점을 찾는 데 있어 중요하다. 

퍼즈를 사용하려면 다음을 실행하면 된다. 
 
$ go get golang.org/dl/gotip
$ gotip download dev.fuzz


퍼징 기능은 오는 8월 출시될 고 언어 1.17 릴리즈에선 사용할 수 없다. 그다음 버전에 포함될 계획이다. 이 프로토타입으로 개발자들이 퍼즈 타깃을 작성하고 피드백을 제공해주길 바란다고 고 언어 개발팀은 밝혔다. 개발자들은 깃허브를 통해 문제를 제출하거나 이곳(Gophers Slack)에서 피드백을 전달할 수 있다. 

한편 퍼징이 많은 메모리를 소비할 수 있으며 이를 실행하는 동안 시스템 성능에 영향을 미칠 수 있다고 고 언어 개발팀은 언급했다. go test -fuzz는 기본적으로 SGOMAXPROCS 프로세스에서 퍼징을 병렬로 실행한다. go test와 함께 -parallel 플래그를 설정하면 퍼징 중에 사용되는 프로세스를 낮출 수 있다. 

이어서 고 언어 개발팀은 퍼징 엔진이 이를 실행하는 동안 $GOCACHE/fuzz 내의 퍼즈 캐시 디렉토리에 테스트 범위를 확장하는 값을 작성한다고 전했다. 현재 퍼즈 캐시에 작성될 수 있는 파일 수 또는 총 바이트 수에 제한이 없으므로 몇 GB에 달하는 대용량의 스토리지를 차지할 수 있다는 설명이다. gotip clean -fuzzcache를 실행해 퍼즈 캐시를 지울 수 있다고 개발팀은 덧붙였다. ciokr@idg.co.kr
 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.