Lune

ISSTA2023顶会

AGORA: Automated Generation of Test Oracles for REST APIs

Juan C. Alonso, Sergio Segura, Antonio Ruiz-Cortés

2023年份
15被引次数
4顶会引用

摘要

Test case generation tools for REST APIs have grown in number and complexity in recent years. However, their advanced capabilities for automated input generation contrast with the simplicity of their test oracles, which limit the types of failures they can detect to crashes, regressions, and violations of the API speci cation or design best practices. In this paper, we present AGORA, an approach for the automated generation of test oracles for REST APIs through the detection of invariants-properties of the output that should always hold. In practice, AGORA aims to learn the expected behavior of an API by analyzing previous API requests and their corresponding responses. For this, we extended the Daikon tool for dynamic detection of likely invariants, including the de nition of new types of invariants and the implementation of an instrumenter called Beet. Beet converts any OpenAPI speci cation and a collection of API requests and responses to a format processable by Daikon. As a result, AGORA currently supports the detection of up to 105 di erent types of invariants in REST APIs. AGORA achieved a total precision of 81.2% when tested on a dataset of 11 operations from 7 industrial APIs. More importantly, the test oracles generated by AGORA detected 6 out of every 10 errors systematically seeded in the outputs of the APIs under test. Additionally, AGORA revealed 11 bugs in APIs with millions of users: Amadeus, GitHub, Marvel, OMDb and YouTube. Our reports have guided developers in improving their APIs, including bug xes and documentation updates in GitHub. Since it operates in black-box mode, AGORA can be seamlessly integrated into existing API testing tools. CCS CONCEPTS • Software and its engineering → Software testing and debugging; • Information systems → RESTful web services.

问问这篇 Paper

智能体会读完全文。

Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。

可以从这些问题问起

智能体调用

Luneget_paper_fulltext

在 Lune 里问

免费开始,无需绑卡

lune papers fulltext f5f4f0f5-5ee7-4e7c-9761-ee8617ba72e1

引用它的顶会 Paper4

问问它们各自怎么用它

它引用的顶会 Paper22

相关 Paper

黄昏的海面,两侧是细线勾勒的悬崖