Skip to main content
QUICK REVIEW

[논문 리뷰] AGSolT: a Tool for Automated Test-Case Generation for Solidity Smart Contracts.

Stefan Driessen, Dario Di Nucci|arXiv (Cornell University)|2021. 02. 17.
Software Testing and Debugging Techniques인용 수 7
한 줄 요약

AGSolT는 다중 목적 검색 알고리즘을 사용하여 솔리디티 스마트 컨트랙트의 자동 테스트 케이스 생성을 위한 새로운 프레임워크이다. 특히 랜덤 서치와 유전 알고리즘을 활용하며, 높은 브랜치 커버리지와 기존에 알려지지 않은 버그를 발견하는 데 성공하였다.

ABSTRACT

Blockchain and smart contract technology are novel approaches to data and code management, that facilitate trusted computing by allowing for development in a distributed and decentralized manner. Testing smart contracts comes with its own set of challenges which have not yet been fully identified and explored. Although existing tools can identify and discover known vulnerabilities and their interactions on the Ethereum blockchain through random search or symbolic execution, no framework exists for applying advanced, multi-objective algorithms to create test suites for such smart contracts. In this paper, we present AGSolT (Automated Generator of Solidity Test Suites). We demonstrate its efficiency by implementing two search algorithms to automatically generate test suites for stand-alone Solidity smart contracts, taking into account some of the blockchain-specific challenges. To test AGSolT, we compared a random search algorithm and a genetic algorithm on a set of 36 real-world smart contracts. We found that AGSolT is capable of achieving high branch overage with both approaches and even discovered some errors in some of the most popular Solidity smart contracts on Github.

연구 동기 및 목표

  • 솔리디티 스마트 컨트랙트를 위한 포괄적인 테스트 셋을 생성하기 위해 고급 다중 목적 검색 알고리즘을 적용하는 프레임워크의 부족을 해결하기 위해.
  • 스마트 컨트랙트 테스트에서 블록체인 특유의 과제, 예를 들어 상태 의존성과 복잡한 실행 경로를 극복하기 위해.
  • 다양한 검색 전략—랜덤 서치와 유전 알고리즘—이 높은 테스트 커버리지에 도달하는 데 얼마나 효과적인지 평가하기 위해.
  • 자동 테스트 생성을 통해 실제 스마트 컨트랙트에서 이전에 알려지지 않은 버그를 식별하기 위해.
  • 분산형 애플리케이션에서의 자동 회귀 및 취약점 테스트를 위한 확장 가능하고 효율적인 솔루션을 제공하기 위해.

제안 방법

  • AGSolT는 솔리디티 스마트 컨트랙트를 분석하고 제어 흐름 및 데이터 의존성을 추출하기 위해 기호 실행 엔진을 활용한다.
  • 두 가지 검색 알고리즘—랜덤 서치와 유전 알고리즘—을 통합하여 입력 공간을 탐색하고 테스트 케이스를 생성한다.
  • 유전 알고리즘은 브랜치 커버리지 기반의 적합도 함수를 사용하여 테스트 생성을 더 높은 코드 커버리지로 이끌도록 한다.
  • 선택, 교차 및 변이 연산을 통해 입력 매개변수를 진화시켜 조건부 브랜치의 커버리지를 최대화하는 테스트 케이스를 생성한다.
  • 프레임워크는 거래 순서, 상태 전이 및 가스 제한과 같은 블록체인 특유의 제약 조건을 처리하도록 설계되어 있다.
  • AGSolT는 브랜치 커버리지 측정 및 런타임 오류 또는 리버트 조건 탐지로 테스트 셋을 평가한다.

실험 결과

연구 질문

  • RQ1다중 목적 검색 알고리즘이 솔리디티 스마트 컨트랙트에 대해 고커버리지 테스트 셋을 효과적으로 생성할 수 있는가?
  • RQ2브랜치 커버리지 및 버그 탐지 측면에서 유전 알고리즘 기반 테스트 생성의 성능은 랜덤 서치와 어떻게 비교되는가?
  • RQ3AGSolT는 실제 스마트 컨트랙트에서 이전에 알려지지 않은 취약점을 어느 정도 발견할 수 있는가?
  • RQ4AGSolT는 상태 기반 동작과 거래 의존성과 같은 블록체인 특유의 복잡성을 얼마나 잘 처리하는가?

주요 결과

  • AGSolT는 36개의 실제 스마트 컨트랙트에 대해 랜덤 서치와 유전 알고리즘 접근 방식을 모두 사용하여 높은 브랜치 커버리지를 달성하였다.
  • 복잡한 실행 경로를 탐색하는 데 있어 유전 알고리즘이 랜덤 서치보다 브랜치 커버리지 및 효율성 측면에서 뛰어난 성능을 보였다.
  • GitHub에 호스팅된 널리 사용되는 스마트 컨트랙트에서 이전에 알려지지 않은 버그를 성공적으로 발견하였다.
  • 프레임워크는 다양한 스마트 컨트랙트 패tern과 보안 성질에 대해 확장성과 적응성을 입증하였다.
  • 결과적으로 고급 검색 알고리즘이 단순 무작위 테스트보다 훨씬 높은 품질의 테스트 셋을 제공한다는 것이 확인되었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.