A Multi-Agent Approach for REST API Testing with Semantic Graphs and LLM-Driven Inputs Article Swipe
YOU?
·
· 2024
· Open Access
·
· DOI: https://doi.org/10.48550/arxiv.2411.07098
As modern web services increasingly rely on REST APIs, their thorough testing has become crucial. Furthermore, the advent of REST API documentation languages, such as the OpenAPI Specification, has led to the emergence of many black-box REST API testing tools. However, these tools often focus on individual test elements in isolation (e.g., APIs, parameters, values), resulting in lower coverage and less effectiveness in fault detection. To address these limitations, we present AutoRestTest, the first black-box tool to adopt a dependency-embedded multi-agent approach for REST API testing that integrates multi-agent reinforcement learning (MARL) with a semantic property dependency graph (SPDG) and Large Language Models (LLMs). Our approach treats REST API testing as a separable problem, where four agents -- API, dependency, parameter, and value agents -- collaborate to optimize API exploration. LLMs handle domain-specific value generation, the SPDG model simplifies the search space for dependencies using a similarity score between API operations, and MARL dynamically optimizes the agents' behavior. Our evaluation of AutoRestTest on 12 real-world REST services shows that it outperforms the four leading black-box REST API testing tools, including those assisted by RESTGPT (which generates realistic test inputs using LLMs), in terms of code coverage, operation coverage, and fault detection. Notably, AutoRestTest is the only tool able to trigger an internal server error in the Spotify service. Our ablation study illustrates that each component of AutoRestTest -- the SPDG, the LLM, and the agent-learning mechanism -- contributes to its overall effectiveness.
Related Topics
- Type
- preprint
- Language
- en
- Landing Page
- http://arxiv.org/abs/2411.07098
- https://arxiv.org/pdf/2411.07098
- OA Status
- green
- Cited By
- 1
- Related Works
- 10
- OpenAlex ID
- https://openalex.org/W4404391907
Raw OpenAlex JSON
- OpenAlex ID
-
https://openalex.org/W4404391907Canonical identifier for this work in OpenAlex
- DOI
-
https://doi.org/10.48550/arxiv.2411.07098Digital Object Identifier
- Title
-
A Multi-Agent Approach for REST API Testing with Semantic Graphs and LLM-Driven InputsWork title
- Type
-
preprintOpenAlex work type
- Language
-
enPrimary language
- Publication year
-
2024Year of publication
- Publication date
-
2024-11-11Full publication date if available
- Authors
-
Myeongsoo Kim, Tyler Stennett, Saurabh Sinha, Alessandro OrsoList of authors in order
- Landing page
-
https://arxiv.org/abs/2411.07098Publisher landing page
- PDF URL
-
https://arxiv.org/pdf/2411.07098Direct link to full text PDF
- Open access
-
YesWhether a free full text is available
- OA status
-
greenOpen access status per OpenAlex
- OA URL
-
https://arxiv.org/pdf/2411.07098Direct OA link when available
- Concepts
-
Rest (music), Computer science, Physics, AcousticsTop concepts (fields/topics) attached by OpenAlex
- Cited by
-
1Total citation count in OpenAlex
- Citations by year (recent)
-
2025: 1Per-year citation counts (last 5 years)
- Related works (count)
-
10Other works algorithmically related by OpenAlex
Full payload
| id | https://openalex.org/W4404391907 |
|---|---|
| doi | https://doi.org/10.48550/arxiv.2411.07098 |
| ids.doi | https://doi.org/10.48550/arxiv.2411.07098 |
| ids.openalex | https://openalex.org/W4404391907 |
| fwci | |
| type | preprint |
| title | A Multi-Agent Approach for REST API Testing with Semantic Graphs and LLM-Driven Inputs |
| biblio.issue | |
| biblio.volume | |
| biblio.last_page | |
| biblio.first_page | |
| topics[0].id | https://openalex.org/T10743 |
| topics[0].field.id | https://openalex.org/fields/17 |
| topics[0].field.display_name | Computer Science |
| topics[0].score | 0.9922999739646912 |
| topics[0].domain.id | https://openalex.org/domains/3 |
| topics[0].domain.display_name | Physical Sciences |
| topics[0].subfield.id | https://openalex.org/subfields/1712 |
| topics[0].subfield.display_name | Software |
| topics[0].display_name | Software Testing and Debugging Techniques |
| topics[1].id | https://openalex.org/T12127 |
| topics[1].field.id | https://openalex.org/fields/17 |
| topics[1].field.display_name | Computer Science |
| topics[1].score | 0.9911999702453613 |
| topics[1].domain.id | https://openalex.org/domains/3 |
| topics[1].domain.display_name | Physical Sciences |
| topics[1].subfield.id | https://openalex.org/subfields/1705 |
| topics[1].subfield.display_name | Computer Networks and Communications |
| topics[1].display_name | Software System Performance and Reliability |
| topics[2].id | https://openalex.org/T10679 |
| topics[2].field.id | https://openalex.org/fields/17 |
| topics[2].field.display_name | Computer Science |
| topics[2].score | 0.9587000012397766 |
| topics[2].domain.id | https://openalex.org/domains/3 |
| topics[2].domain.display_name | Physical Sciences |
| topics[2].subfield.id | https://openalex.org/subfields/1710 |
| topics[2].subfield.display_name | Information Systems |
| topics[2].display_name | Service-Oriented Architecture and Web Services |
| is_xpac | False |
| apc_list | |
| apc_paid | |
| concepts[0].id | https://openalex.org/C77265313 |
| concepts[0].level | 2 |
| concepts[0].score | 0.7134813070297241 |
| concepts[0].wikidata | https://www.wikidata.org/wiki/Q879844 |
| concepts[0].display_name | Rest (music) |
| concepts[1].id | https://openalex.org/C41008148 |
| concepts[1].level | 0 |
| concepts[1].score | 0.6570453643798828 |
| concepts[1].wikidata | https://www.wikidata.org/wiki/Q21198 |
| concepts[1].display_name | Computer science |
| concepts[2].id | https://openalex.org/C121332964 |
| concepts[2].level | 0 |
| concepts[2].score | 0.07577461004257202 |
| concepts[2].wikidata | https://www.wikidata.org/wiki/Q413 |
| concepts[2].display_name | Physics |
| concepts[3].id | https://openalex.org/C24890656 |
| concepts[3].level | 1 |
| concepts[3].score | 0.0 |
| concepts[3].wikidata | https://www.wikidata.org/wiki/Q82811 |
| concepts[3].display_name | Acoustics |
| keywords[0].id | https://openalex.org/keywords/rest |
| keywords[0].score | 0.7134813070297241 |
| keywords[0].display_name | Rest (music) |
| keywords[1].id | https://openalex.org/keywords/computer-science |
| keywords[1].score | 0.6570453643798828 |
| keywords[1].display_name | Computer science |
| keywords[2].id | https://openalex.org/keywords/physics |
| keywords[2].score | 0.07577461004257202 |
| keywords[2].display_name | Physics |
| language | en |
| locations[0].id | pmh:oai:arXiv.org:2411.07098 |
| locations[0].is_oa | True |
| locations[0].source.id | https://openalex.org/S4306400194 |
| locations[0].source.issn | |
| locations[0].source.type | repository |
| locations[0].source.is_oa | True |
| locations[0].source.issn_l | |
| locations[0].source.is_core | False |
| locations[0].source.is_in_doaj | False |
| locations[0].source.display_name | arXiv (Cornell University) |
| locations[0].source.host_organization | https://openalex.org/I205783295 |
| locations[0].source.host_organization_name | Cornell University |
| locations[0].source.host_organization_lineage | https://openalex.org/I205783295 |
| locations[0].license | |
| locations[0].pdf_url | https://arxiv.org/pdf/2411.07098 |
| locations[0].version | submittedVersion |
| locations[0].raw_type | text |
| locations[0].license_id | |
| locations[0].is_accepted | False |
| locations[0].is_published | False |
| locations[0].raw_source_name | |
| locations[0].landing_page_url | http://arxiv.org/abs/2411.07098 |
| locations[1].id | doi:10.48550/arxiv.2411.07098 |
| locations[1].is_oa | True |
| locations[1].source.id | https://openalex.org/S4306400194 |
| locations[1].source.issn | |
| locations[1].source.type | repository |
| locations[1].source.is_oa | True |
| locations[1].source.issn_l | |
| locations[1].source.is_core | False |
| locations[1].source.is_in_doaj | False |
| locations[1].source.display_name | arXiv (Cornell University) |
| locations[1].source.host_organization | https://openalex.org/I205783295 |
| locations[1].source.host_organization_name | Cornell University |
| locations[1].source.host_organization_lineage | https://openalex.org/I205783295 |
| locations[1].license | cc-by |
| locations[1].pdf_url | |
| locations[1].version | |
| locations[1].raw_type | article |
| locations[1].license_id | https://openalex.org/licenses/cc-by |
| locations[1].is_accepted | False |
| locations[1].is_published | |
| locations[1].raw_source_name | |
| locations[1].landing_page_url | https://doi.org/10.48550/arxiv.2411.07098 |
| indexed_in | arxiv, datacite |
| authorships[0].author.id | https://openalex.org/A5101736356 |
| authorships[0].author.orcid | https://orcid.org/0000-0002-5018-5280 |
| authorships[0].author.display_name | Myeongsoo Kim |
| authorships[0].author_position | first |
| authorships[0].raw_author_name | Kim, Myeongsoo |
| authorships[0].is_corresponding | False |
| authorships[1].author.id | https://openalex.org/A5093426970 |
| authorships[1].author.orcid | https://orcid.org/0009-0006-9780-9608 |
| authorships[1].author.display_name | Tyler Stennett |
| authorships[1].author_position | middle |
| authorships[1].raw_author_name | Stennett, Tyler |
| authorships[1].is_corresponding | False |
| authorships[2].author.id | https://openalex.org/A5103241577 |
| authorships[2].author.orcid | https://orcid.org/0000-0003-4092-2643 |
| authorships[2].author.display_name | Saurabh Sinha |
| authorships[2].author_position | middle |
| authorships[2].raw_author_name | Sinha, Saurabh |
| authorships[2].is_corresponding | False |
| authorships[3].author.id | https://openalex.org/A5030961858 |
| authorships[3].author.orcid | https://orcid.org/0000-0003-4516-9320 |
| authorships[3].author.display_name | Alessandro Orso |
| authorships[3].author_position | last |
| authorships[3].raw_author_name | Orso, Alessandro |
| authorships[3].is_corresponding | False |
| has_content.pdf | False |
| has_content.grobid_xml | False |
| is_paratext | False |
| open_access.is_oa | True |
| open_access.oa_url | https://arxiv.org/pdf/2411.07098 |
| open_access.oa_status | green |
| open_access.any_repository_has_fulltext | False |
| created_date | 2025-10-10T00:00:00 |
| display_name | A Multi-Agent Approach for REST API Testing with Semantic Graphs and LLM-Driven Inputs |
| has_fulltext | False |
| is_retracted | False |
| updated_date | 2025-11-06T06:51:31.235846 |
| primary_topic.id | https://openalex.org/T10743 |
| primary_topic.field.id | https://openalex.org/fields/17 |
| primary_topic.field.display_name | Computer Science |
| primary_topic.score | 0.9922999739646912 |
| primary_topic.domain.id | https://openalex.org/domains/3 |
| primary_topic.domain.display_name | Physical Sciences |
| primary_topic.subfield.id | https://openalex.org/subfields/1712 |
| primary_topic.subfield.display_name | Software |
| primary_topic.display_name | Software Testing and Debugging Techniques |
| related_works | https://openalex.org/W4391375266, https://openalex.org/W2899084033, https://openalex.org/W2748952813, https://openalex.org/W4388147713, https://openalex.org/W4205145096, https://openalex.org/W2977909229, https://openalex.org/W2359059303, https://openalex.org/W3194775706, https://openalex.org/W3110334367, https://openalex.org/W3126656380 |
| cited_by_count | 1 |
| counts_by_year[0].year | 2025 |
| counts_by_year[0].cited_by_count | 1 |
| locations_count | 2 |
| best_oa_location.id | pmh:oai:arXiv.org:2411.07098 |
| best_oa_location.is_oa | True |
| best_oa_location.source.id | https://openalex.org/S4306400194 |
| best_oa_location.source.issn | |
| best_oa_location.source.type | repository |
| best_oa_location.source.is_oa | True |
| best_oa_location.source.issn_l | |
| best_oa_location.source.is_core | False |
| best_oa_location.source.is_in_doaj | False |
| best_oa_location.source.display_name | arXiv (Cornell University) |
| best_oa_location.source.host_organization | https://openalex.org/I205783295 |
| best_oa_location.source.host_organization_name | Cornell University |
| best_oa_location.source.host_organization_lineage | https://openalex.org/I205783295 |
| best_oa_location.license | |
| best_oa_location.pdf_url | https://arxiv.org/pdf/2411.07098 |
| best_oa_location.version | submittedVersion |
| best_oa_location.raw_type | text |
| best_oa_location.license_id | |
| best_oa_location.is_accepted | False |
| best_oa_location.is_published | False |
| best_oa_location.raw_source_name | |
| best_oa_location.landing_page_url | http://arxiv.org/abs/2411.07098 |
| primary_location.id | pmh:oai:arXiv.org:2411.07098 |
| primary_location.is_oa | True |
| primary_location.source.id | https://openalex.org/S4306400194 |
| primary_location.source.issn | |
| primary_location.source.type | repository |
| primary_location.source.is_oa | True |
| primary_location.source.issn_l | |
| primary_location.source.is_core | False |
| primary_location.source.is_in_doaj | False |
| primary_location.source.display_name | arXiv (Cornell University) |
| primary_location.source.host_organization | https://openalex.org/I205783295 |
| primary_location.source.host_organization_name | Cornell University |
| primary_location.source.host_organization_lineage | https://openalex.org/I205783295 |
| primary_location.license | |
| primary_location.pdf_url | https://arxiv.org/pdf/2411.07098 |
| primary_location.version | submittedVersion |
| primary_location.raw_type | text |
| primary_location.license_id | |
| primary_location.is_accepted | False |
| primary_location.is_published | False |
| primary_location.raw_source_name | |
| primary_location.landing_page_url | http://arxiv.org/abs/2411.07098 |
| publication_date | 2024-11-11 |
| publication_year | 2024 |
| referenced_works_count | 0 |
| abstract_inverted_index.a | 78, 93, 111, 145 |
| abstract_inverted_index.-- | 117, 124, 227, 236 |
| abstract_inverted_index.12 | 163 |
| abstract_inverted_index.As | 0 |
| abstract_inverted_index.To | 65 |
| abstract_inverted_index.an | 210 |
| abstract_inverted_index.as | 24, 110 |
| abstract_inverted_index.by | 182 |
| abstract_inverted_index.in | 49, 56, 62, 191, 214 |
| abstract_inverted_index.is | 203 |
| abstract_inverted_index.it | 169 |
| abstract_inverted_index.of | 18, 33, 160, 193, 225 |
| abstract_inverted_index.on | 6, 45, 162 |
| abstract_inverted_index.to | 30, 76, 126, 208, 238 |
| abstract_inverted_index.we | 69 |
| abstract_inverted_index.API | 20, 37, 84, 108, 128, 149, 176 |
| abstract_inverted_index.Our | 104, 158, 218 |
| abstract_inverted_index.and | 59, 99, 121, 151, 198, 232 |
| abstract_inverted_index.for | 82, 142 |
| abstract_inverted_index.has | 12, 28 |
| abstract_inverted_index.its | 239 |
| abstract_inverted_index.led | 29 |
| abstract_inverted_index.the | 16, 25, 31, 72, 135, 139, 155, 171, 204, 215, 228, 230, 233 |
| abstract_inverted_index.web | 2 |
| abstract_inverted_index.API, | 118 |
| abstract_inverted_index.LLM, | 231 |
| abstract_inverted_index.LLMs | 130 |
| abstract_inverted_index.MARL | 152 |
| abstract_inverted_index.REST | 7, 19, 36, 83, 107, 165, 175 |
| abstract_inverted_index.SPDG | 136 |
| abstract_inverted_index.able | 207 |
| abstract_inverted_index.code | 194 |
| abstract_inverted_index.each | 223 |
| abstract_inverted_index.four | 115, 172 |
| abstract_inverted_index.less | 60 |
| abstract_inverted_index.many | 34 |
| abstract_inverted_index.only | 205 |
| abstract_inverted_index.rely | 5 |
| abstract_inverted_index.such | 23 |
| abstract_inverted_index.test | 47, 187 |
| abstract_inverted_index.that | 86, 168, 222 |
| abstract_inverted_index.tool | 75, 206 |
| abstract_inverted_index.with | 92 |
| abstract_inverted_index.APIs, | 8, 52 |
| abstract_inverted_index.Large | 100 |
| abstract_inverted_index.SPDG, | 229 |
| abstract_inverted_index.adopt | 77 |
| abstract_inverted_index.error | 213 |
| abstract_inverted_index.fault | 63, 199 |
| abstract_inverted_index.first | 73 |
| abstract_inverted_index.focus | 44 |
| abstract_inverted_index.graph | 97 |
| abstract_inverted_index.lower | 57 |
| abstract_inverted_index.model | 137 |
| abstract_inverted_index.often | 43 |
| abstract_inverted_index.score | 147 |
| abstract_inverted_index.shows | 167 |
| abstract_inverted_index.space | 141 |
| abstract_inverted_index.study | 220 |
| abstract_inverted_index.terms | 192 |
| abstract_inverted_index.their | 9 |
| abstract_inverted_index.these | 41, 67 |
| abstract_inverted_index.those | 180 |
| abstract_inverted_index.tools | 42 |
| abstract_inverted_index.using | 144, 189 |
| abstract_inverted_index.value | 122, 133 |
| abstract_inverted_index.where | 114 |
| abstract_inverted_index.(MARL) | 91 |
| abstract_inverted_index.(SPDG) | 98 |
| abstract_inverted_index.(e.g., | 51 |
| abstract_inverted_index.(which | 184 |
| abstract_inverted_index.LLMs), | 190 |
| abstract_inverted_index.Models | 102 |
| abstract_inverted_index.advent | 17 |
| abstract_inverted_index.agents | 116, 123 |
| abstract_inverted_index.become | 13 |
| abstract_inverted_index.handle | 131 |
| abstract_inverted_index.inputs | 188 |
| abstract_inverted_index.modern | 1 |
| abstract_inverted_index.search | 140 |
| abstract_inverted_index.server | 212 |
| abstract_inverted_index.tools, | 178 |
| abstract_inverted_index.tools. | 39 |
| abstract_inverted_index.treats | 106 |
| abstract_inverted_index.(LLMs). | 103 |
| abstract_inverted_index.OpenAPI | 26 |
| abstract_inverted_index.RESTGPT | 183 |
| abstract_inverted_index.Spotify | 216 |
| abstract_inverted_index.address | 66 |
| abstract_inverted_index.agents' | 156 |
| abstract_inverted_index.between | 148 |
| abstract_inverted_index.leading | 173 |
| abstract_inverted_index.overall | 240 |
| abstract_inverted_index.present | 70 |
| abstract_inverted_index.testing | 11, 38, 85, 109, 177 |
| abstract_inverted_index.trigger | 209 |
| abstract_inverted_index.However, | 40 |
| abstract_inverted_index.Language | 101 |
| abstract_inverted_index.Notably, | 201 |
| abstract_inverted_index.ablation | 219 |
| abstract_inverted_index.approach | 81, 105 |
| abstract_inverted_index.assisted | 181 |
| abstract_inverted_index.coverage | 58 |
| abstract_inverted_index.crucial. | 14 |
| abstract_inverted_index.elements | 48 |
| abstract_inverted_index.internal | 211 |
| abstract_inverted_index.learning | 90 |
| abstract_inverted_index.optimize | 127 |
| abstract_inverted_index.problem, | 113 |
| abstract_inverted_index.property | 95 |
| abstract_inverted_index.semantic | 94 |
| abstract_inverted_index.service. | 217 |
| abstract_inverted_index.services | 3, 166 |
| abstract_inverted_index.thorough | 10 |
| abstract_inverted_index.values), | 54 |
| abstract_inverted_index.behavior. | 157 |
| abstract_inverted_index.black-box | 35, 74, 174 |
| abstract_inverted_index.component | 224 |
| abstract_inverted_index.coverage, | 195, 197 |
| abstract_inverted_index.emergence | 32 |
| abstract_inverted_index.generates | 185 |
| abstract_inverted_index.including | 179 |
| abstract_inverted_index.isolation | 50 |
| abstract_inverted_index.mechanism | 235 |
| abstract_inverted_index.operation | 196 |
| abstract_inverted_index.optimizes | 154 |
| abstract_inverted_index.realistic | 186 |
| abstract_inverted_index.resulting | 55 |
| abstract_inverted_index.separable | 112 |
| abstract_inverted_index.dependency | 96 |
| abstract_inverted_index.detection. | 64, 200 |
| abstract_inverted_index.evaluation | 159 |
| abstract_inverted_index.individual | 46 |
| abstract_inverted_index.integrates | 87 |
| abstract_inverted_index.languages, | 22 |
| abstract_inverted_index.parameter, | 120 |
| abstract_inverted_index.real-world | 164 |
| abstract_inverted_index.similarity | 146 |
| abstract_inverted_index.simplifies | 138 |
| abstract_inverted_index.collaborate | 125 |
| abstract_inverted_index.contributes | 237 |
| abstract_inverted_index.dependency, | 119 |
| abstract_inverted_index.dynamically | 153 |
| abstract_inverted_index.generation, | 134 |
| abstract_inverted_index.illustrates | 221 |
| abstract_inverted_index.multi-agent | 80, 88 |
| abstract_inverted_index.operations, | 150 |
| abstract_inverted_index.outperforms | 170 |
| abstract_inverted_index.parameters, | 53 |
| abstract_inverted_index.AutoRestTest | 161, 202, 226 |
| abstract_inverted_index.Furthermore, | 15 |
| abstract_inverted_index.dependencies | 143 |
| abstract_inverted_index.exploration. | 129 |
| abstract_inverted_index.increasingly | 4 |
| abstract_inverted_index.limitations, | 68 |
| abstract_inverted_index.AutoRestTest, | 71 |
| abstract_inverted_index.documentation | 21 |
| abstract_inverted_index.effectiveness | 61 |
| abstract_inverted_index.reinforcement | 89 |
| abstract_inverted_index.Specification, | 27 |
| abstract_inverted_index.agent-learning | 234 |
| abstract_inverted_index.effectiveness. | 241 |
| abstract_inverted_index.domain-specific | 132 |
| abstract_inverted_index.dependency-embedded | 79 |
| cited_by_percentile_year | |
| countries_distinct_count | 0 |
| institutions_distinct_count | 4 |
| citation_normalized_percentile |