論文メモ

Automatic Generation of Test Cases for REST APIs: a Specification-Based Approach

February 3, 2019

著者/所属機関

Hamza Ed-douibi (Universitat Oberta de Catalunya) et al.

出典

IEEE EDOC 2018

目的

REST API仕様定義に基づくテストケースの自動生成

  • 特に本論文ではOpenAPIが対象

問題

既存技術(e.g., Ready API!, Dredd, Runscope)では正常系のテストが対象であり,異常系のテストを対象にしていない また既存技術・ツールでは追加設定や入力データの準備といった作業が必要になる

解法

REST APIのテストケースをAPI仕様から生成する手法の提案 (仕様で定義された要求をAPIが満たすかをテストするテストケース)

  • OpenAPIのメタモデルと,テストケースが持つべき情報(TestSuite)のメタモデルをそれぞれ定義
  • 下記3つの処理方式を設計し,OpenAPIのJSON定義からテストケースのコードを生成
    1. OpenAPIのJSON定義からOpenAPIモデルを抽出方式
    2. OpenAPIモデルからTestSuiteモデルへの変換規則
    3. TestSuiteモデルからテストケースコード生成方式
  • OpenAPIモデル→TestSuiteモデルへの変換時に,正常系テストケースと異常系テストケースのそれぞれを生成する変換規則を定義し,異常系テストに対応した
  • 実際に使うパラメタを推定するルールを定義して入力データの準備作業を減らす (っぽい)

approach-BG.png “Our Approach for OpenAPI” from Blog article

結果

APIs.guruで収集した91のOpenAPI定義に対し,生成されたテストケースで76.5%のAPI定義をカバー

  • coverageの定義がよくわからなない…

備考

Tagged: #REST API #testing