Skip to main content
QUICK REVIEW

[논문 리뷰] Morest: Model-based RESTful API Testing with Execution Feedback

Yi Liu, Yuekang Li|arXiv (Cornell University)|2022. 04. 26.
Software Engineering Research인용 수 8
한 줄 요약

Morest는 RESTful API를 위한 모델 기반 블랙박스 테스팅 기법으로, 테스트 생성을 안내하기 위해 RESTful 서비스 성질 그래프(RPG)를 구성하고 동적으로 업데이트한다. 실행 피드백을 RPG에 통합함으로써 Morest는 호출 시퀀스 생성을 향상시켜 최신 기술 대비 평균 152.66%~232.45% 더 많은 API 연산, 26.16%~103.24% 높은 코드 커버리지, 40.64%~215.94% 더 많은 버그 탐지 성능을 달성한다.

ABSTRACT

RESTful APIs are arguably the most popular endpoints for accessing Web services. Blackbox testing is one of the emerging techniques for ensuring the reliability of RESTful APIs. The major challenge in testing RESTful APIs is the need for correct sequences of API operation calls for in-depth testing. To build meaningful operation call sequences, researchers have proposed techniques to learn and utilize the API dependencies based on OpenAPI specifications. However, these techniques either lack the overall awareness of how all the APIs are connected or the flexibility of adaptively fixing the learned knowledge. In this paper, we propose Morest, a model-based RESTful API testing technique that builds and maintains a dynamically updating RESTful-service Property Graph (RPG) to model the behaviors of RESTful-services and guide the call sequence generation. We empirically evaluated Morest and the results demonstrate that Morest can successfully request an average of 152.66%-232.45% more API operations, cover 26.16%-103.24% more lines of code, and detect 40.64%-215.94% more bugs than state-of-the-art techniques. In total, we applied Morest to 6 real-world projects and found 44 bugs (13 of them cannot be detected by existing approaches). Specifically, 2 of the confirmed bugs are from Bitbucket, a famous code management service with more than 6 million users.

연구 동기 및 목표

  • 블랙박스 테스팅에서 RESTful 서비스의 정확하고 의미 있는 API 호출 시퀀스를 생성하는 데 도전하는 것.
  • 기존 기법의 한계—예를 들어 Restler의 전역 종속성 인식 부족 또는 Resttestgen의 정적 사양에 대한 과도한 의존성—을 극복하기 위해 동적 모델 정교화를 가능하게 하는 것.
  • 모델의 고수준 가이던스와 실제 API 실행에서 유도된 적응형 피드백을 결합함으로써 테스트 효과성을 향상시키는 것.
  • 실제 웹 서비스에서 더 포괄적인 코드 커버리지와 더 높은 버그 탐지 비율을 달성하는 것.
  • 소스 코드나 인스트루멘테이션 없이도 실전 웹 서비스의 실용적이고 확장 가능한 테스팅을 지원하는 것.

제안 방법

  • Morest는 OpenAPI 사양에서 RESTful 서비스 성질 그래프(RPG)를 구성하여 스키마와 연산 수준의 종속성을 모두 인코딩한다.
  • RPG는 API 연산을 노드로, 예를 들어 생산자-소비자 관계와 같은 종속성을 간선으로 모델링하여 구조적인 호출 시퀀스 생성을 가능하게 한다.
  • Morest는 RPG를 기반으로 그래프 탐색을 수행하여 유효하고 의미적으로 올바른 API 호출 시퀀스를 생성한다.
  • 실제 API 호출에서 유도된 실행 피드백을 활용해 테스팅 중 동적으로 RPG를 정교화하고 업데이트함으로써, 불완전하거나 잘못된 사양에서 기인한 오류를 수정한다.
  • 피드백을 통합하여 테스트 생성의 우선순위를 조정하고 적응형으로 개선함으로써, 시간이 지남에 따라 커버리지와 결함 탐지 능력을 향상시킨다.
  • Morest는 모델 기반 가이던스와 피드백 기반 적응을 결합하여 상향식 구조와 하향식 유연성 사이의 균형을 이룬다.

실험 결과

연구 질문

  • RQ1동적으로 업데이트되는 모델은 정적 또는 순수 히우리스틱 기반 기법 대비 블랙박스 RESTful API 테스팅의 효과성을 향상시킬 수 있는가?
  • RQ2실행 피드백이 OpenAPI 사양의 오류를 수정하기 위해 모델을 얼마나 정교하게 개선할 수 있는가?
  • RQ3API 연산 커버리지와 결함 탐지 측면에서 Morest의 접근 방식은 최신 기술 대비 어떻게 비교되는가?
  • RQ4Morest는 기존 도구가 놓친 버그, 특히 실전 프로덕션 서비스에서의 버그를 탐지할 수 있는가?
  • RQ5성질 그래프 모델에 피드백을 통합하면 더 효율적이고 효과적인 테스트 생성이 가능해지는가?

주요 결과

  • Morest는 최신 기술 대비 평균 152.66%~232.45% 더 많은 API 연산 호출을 달성했다.
  • 평가된 서비스 전반에서 기존 방법 대비 26.16%~103.24% 높은 코드 커버리지 성과를 기록했다.
  • 기본 도구 대비 40.64%~215.94% 더 많은 버그를 탐지했으며, 이 중 13개는 이전에 발견되지 않은 버그였다.
  • 총 6개의 실생활 프로젝트에서 44개의 버그를 발견했으며, 이 중 Bitbucket(광범위하게 사용되는 코드 관리 서비스)에서 확인된 2개의 심각한 버그가 포함되어 있었다.
  • 동적 피드백 메커니즘이 특히 OpenAPI 사양이 잘못 작성된 서비스에서 모델 정확도와 테스트 효과성을 크게 향상시켰다.
  • Morest는 하향식 접근 방식을 취하는 Restler와 상향식 접근 방식을 취하는 Resttestgen을 모두 뛰어넘었으며, 고수준 가이던스와 실행 결과 기반 적응 학습을 결합함으로써 성능을 향상시켰다.

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

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

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

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