著者/所属機関
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定義からテストケースのコードを生成
- OpenAPIのJSON定義からOpenAPIモデルを抽出方式
- OpenAPIモデルからTestSuiteモデルへの変換規則
- TestSuiteモデルからテストケースコード生成方式
- OpenAPIモデル→TestSuiteモデルへの変換時に,正常系テストケースと異常系テストケースのそれぞれを生成する変換規則を定義し,異常系テストに対応した
- 実際に使うパラメタを推定するルールを定義して入力データの準備作業を減らす (っぽい)
“Our Approach for OpenAPI” from Blog article
結果
APIs.guruで収集した91のOpenAPI定義に対し,生成されたテストケースで76.5%のAPI定義をカバー
- coverageの定義がよくわからなない…
備考
- REST APIの仕様定義は複数存在・提案されている
- OpenAPI, RAML, API Blueprint
- c.f. Modeling Web APIs: your best choices