Resource and dependency based test case generation for RESTful Web services
Nowadays, RESTful web services are widely used for building enterprise applications. REST is not a protocol, but rather it defines a set of guidelines on how to design APIs to access and manipulate resources using HTTP over a network. In this paper, we propose an enhanced search-based method for aut...
Gespeichert in:
Veröffentlicht in: | Empirical software engineering : an international journal 2021-07, Vol.26 (4), Article 76 |
---|---|
Hauptverfasser: | , , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | |
---|---|
container_issue | 4 |
container_start_page | |
container_title | Empirical software engineering : an international journal |
container_volume | 26 |
creator | Zhang, Man Marculescu, Bogdan Arcuri, Andrea |
description | Nowadays, RESTful web services are widely used for building enterprise applications. REST is not a protocol, but rather it defines a set of guidelines on how to design APIs to access and manipulate resources using HTTP over a network. In this paper, we propose an enhanced search-based method for automated system test generation for RESTful web services, by exploiting domain knowledge on the handling of HTTP resources. The proposed techniques use domain knowledge specific to RESTful web services and a set of effective templates to structure test actions (i.e., ordered sequences of HTTP calls) within an individual in the evolutionary search. The action templates are developed based on the semantics of HTTP methods and are used to manipulate the web services’ resources. In addition, we propose five novel sampling strategies with four sampling methods (i.e., resource-based sampling) for the test cases that can use one or more of these templates. The strategies are further supported with a set of new, specialized mutation operators (i.e., resource-based mutation) in the evolutionary search that take into account the use of these resources in the generated test cases. Moreover, we propose a novel dependency handling to detect possible dependencies among the resources in the tested applications. The resource-based sampling and mutations are then enhanced by exploiting the information of these detected dependencies. To evaluate our approach, we implemented it as an extension to the
EvoMaster
tool, and conducted an empirical study with two selected baselines on 7 open-source and 12 synthetic RESTful web services. Results show that our novel resource-based approach with dependency handling obtains a significant improvement in performance over the baselines, e.g., up to + 130.7% relative improvement (growing from + 27.9% to + 64.3%) on line coverage. |
doi_str_mv | 10.1007/s10664-020-09937-1 |
format | Article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_2536114650</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2536114650</sourcerecordid><originalsourceid>FETCH-LOGICAL-c363t-5ae624a732cf271691ae009d35c5da7c6a0a51355a5ec1280baf0d2b18220ff13</originalsourceid><addsrcrecordid>eNp9kE9LAzEQxYMoWKtfwFPAc3SSbJLuUUr9gwWhVjyGbDIpLXW3Jluh397oCt48zTu892bmR8glh2sOYG4yB60rBgIY1LU0jB-REVdGMqO5Pi5aTgSTQulTcpbzBgBqU6kReVpg7vbJI3VtoAF32AZs_YE2LmOgPeae-iLpCltMrl93LY1doovZyzLut_QNG5oxfa495nNyEt0248XvHJPXu9ly-sDmz_eP09s581LLnimHWlTOSOGjMFzX3GE5J0jlVXDGawdOcamUU-i5mEDjIgTR8IkQECOXY3I19O5S97EvF9pNeaEtK61QUnNeaQXFJQaXT13OCaPdpfW7SwfLwX5DswM0W6DZH2j2u1oOoVzM7QrTX_U_qS_dAG50</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2536114650</pqid></control><display><type>article</type><title>Resource and dependency based test case generation for RESTful Web services</title><source>SpringerLink Journals - AutoHoldings</source><creator>Zhang, Man ; Marculescu, Bogdan ; Arcuri, Andrea</creator><creatorcontrib>Zhang, Man ; Marculescu, Bogdan ; Arcuri, Andrea</creatorcontrib><description>Nowadays, RESTful web services are widely used for building enterprise applications. REST is not a protocol, but rather it defines a set of guidelines on how to design APIs to access and manipulate resources using HTTP over a network. In this paper, we propose an enhanced search-based method for automated system test generation for RESTful web services, by exploiting domain knowledge on the handling of HTTP resources. The proposed techniques use domain knowledge specific to RESTful web services and a set of effective templates to structure test actions (i.e., ordered sequences of HTTP calls) within an individual in the evolutionary search. The action templates are developed based on the semantics of HTTP methods and are used to manipulate the web services’ resources. In addition, we propose five novel sampling strategies with four sampling methods (i.e., resource-based sampling) for the test cases that can use one or more of these templates. The strategies are further supported with a set of new, specialized mutation operators (i.e., resource-based mutation) in the evolutionary search that take into account the use of these resources in the generated test cases. Moreover, we propose a novel dependency handling to detect possible dependencies among the resources in the tested applications. The resource-based sampling and mutations are then enhanced by exploiting the information of these detected dependencies. To evaluate our approach, we implemented it as an extension to the
EvoMaster
tool, and conducted an empirical study with two selected baselines on 7 open-source and 12 synthetic RESTful web services. Results show that our novel resource-based approach with dependency handling obtains a significant improvement in performance over the baselines, e.g., up to + 130.7% relative improvement (growing from + 27.9% to + 64.3%) on line coverage.</description><identifier>ISSN: 1382-3256</identifier><identifier>EISSN: 1573-7616</identifier><identifier>DOI: 10.1007/s10664-020-09937-1</identifier><language>eng</language><publisher>New York: Springer US</publisher><subject>Compilers ; Computer Science ; Domains ; Handling ; Interpreters ; Mutation ; Programming Languages ; Sampling methods ; Searching ; Semantics ; Software Engineering/Programming and Operating Systems ; Web services</subject><ispartof>Empirical software engineering : an international journal, 2021-07, Vol.26 (4), Article 76</ispartof><rights>The Author(s) 2021</rights><rights>The Author(s) 2021. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c363t-5ae624a732cf271691ae009d35c5da7c6a0a51355a5ec1280baf0d2b18220ff13</citedby><cites>FETCH-LOGICAL-c363t-5ae624a732cf271691ae009d35c5da7c6a0a51355a5ec1280baf0d2b18220ff13</cites><orcidid>0000-0003-1204-9322</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/s10664-020-09937-1$$EPDF$$P50$$Gspringer$$Hfree_for_read</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/s10664-020-09937-1$$EHTML$$P50$$Gspringer$$Hfree_for_read</linktohtml><link.rule.ids>314,776,780,27901,27902,41464,42533,51294</link.rule.ids></links><search><creatorcontrib>Zhang, Man</creatorcontrib><creatorcontrib>Marculescu, Bogdan</creatorcontrib><creatorcontrib>Arcuri, Andrea</creatorcontrib><title>Resource and dependency based test case generation for RESTful Web services</title><title>Empirical software engineering : an international journal</title><addtitle>Empir Software Eng</addtitle><description>Nowadays, RESTful web services are widely used for building enterprise applications. REST is not a protocol, but rather it defines a set of guidelines on how to design APIs to access and manipulate resources using HTTP over a network. In this paper, we propose an enhanced search-based method for automated system test generation for RESTful web services, by exploiting domain knowledge on the handling of HTTP resources. The proposed techniques use domain knowledge specific to RESTful web services and a set of effective templates to structure test actions (i.e., ordered sequences of HTTP calls) within an individual in the evolutionary search. The action templates are developed based on the semantics of HTTP methods and are used to manipulate the web services’ resources. In addition, we propose five novel sampling strategies with four sampling methods (i.e., resource-based sampling) for the test cases that can use one or more of these templates. The strategies are further supported with a set of new, specialized mutation operators (i.e., resource-based mutation) in the evolutionary search that take into account the use of these resources in the generated test cases. Moreover, we propose a novel dependency handling to detect possible dependencies among the resources in the tested applications. The resource-based sampling and mutations are then enhanced by exploiting the information of these detected dependencies. To evaluate our approach, we implemented it as an extension to the
EvoMaster
tool, and conducted an empirical study with two selected baselines on 7 open-source and 12 synthetic RESTful web services. Results show that our novel resource-based approach with dependency handling obtains a significant improvement in performance over the baselines, e.g., up to + 130.7% relative improvement (growing from + 27.9% to + 64.3%) on line coverage.</description><subject>Compilers</subject><subject>Computer Science</subject><subject>Domains</subject><subject>Handling</subject><subject>Interpreters</subject><subject>Mutation</subject><subject>Programming Languages</subject><subject>Sampling methods</subject><subject>Searching</subject><subject>Semantics</subject><subject>Software Engineering/Programming and Operating Systems</subject><subject>Web services</subject><issn>1382-3256</issn><issn>1573-7616</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2021</creationdate><recordtype>article</recordtype><sourceid>C6C</sourceid><sourceid>BENPR</sourceid><recordid>eNp9kE9LAzEQxYMoWKtfwFPAc3SSbJLuUUr9gwWhVjyGbDIpLXW3Jluh397oCt48zTu892bmR8glh2sOYG4yB60rBgIY1LU0jB-REVdGMqO5Pi5aTgSTQulTcpbzBgBqU6kReVpg7vbJI3VtoAF32AZs_YE2LmOgPeae-iLpCltMrl93LY1doovZyzLut_QNG5oxfa495nNyEt0248XvHJPXu9ly-sDmz_eP09s581LLnimHWlTOSOGjMFzX3GE5J0jlVXDGawdOcamUU-i5mEDjIgTR8IkQECOXY3I19O5S97EvF9pNeaEtK61QUnNeaQXFJQaXT13OCaPdpfW7SwfLwX5DswM0W6DZH2j2u1oOoVzM7QrTX_U_qS_dAG50</recordid><startdate>20210701</startdate><enddate>20210701</enddate><creator>Zhang, Man</creator><creator>Marculescu, Bogdan</creator><creator>Arcuri, Andrea</creator><general>Springer US</general><general>Springer Nature B.V</general><scope>C6C</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>L6V</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M7S</scope><scope>P5Z</scope><scope>P62</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>S0W</scope><orcidid>https://orcid.org/0000-0003-1204-9322</orcidid></search><sort><creationdate>20210701</creationdate><title>Resource and dependency based test case generation for RESTful Web services</title><author>Zhang, Man ; Marculescu, Bogdan ; Arcuri, Andrea</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c363t-5ae624a732cf271691ae009d35c5da7c6a0a51355a5ec1280baf0d2b18220ff13</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2021</creationdate><topic>Compilers</topic><topic>Computer Science</topic><topic>Domains</topic><topic>Handling</topic><topic>Interpreters</topic><topic>Mutation</topic><topic>Programming Languages</topic><topic>Sampling methods</topic><topic>Searching</topic><topic>Semantics</topic><topic>Software Engineering/Programming and Operating Systems</topic><topic>Web services</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Zhang, Man</creatorcontrib><creatorcontrib>Marculescu, Bogdan</creatorcontrib><creatorcontrib>Arcuri, Andrea</creatorcontrib><collection>Springer Nature OA Free Journals</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies & Aerospace Collection</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Engineering Database</collection><collection>Advanced Technologies & Aerospace Database</collection><collection>ProQuest Advanced Technologies & Aerospace Collection</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>DELNET Engineering & Technology Collection</collection><jtitle>Empirical software engineering : an international journal</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Zhang, Man</au><au>Marculescu, Bogdan</au><au>Arcuri, Andrea</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Resource and dependency based test case generation for RESTful Web services</atitle><jtitle>Empirical software engineering : an international journal</jtitle><stitle>Empir Software Eng</stitle><date>2021-07-01</date><risdate>2021</risdate><volume>26</volume><issue>4</issue><artnum>76</artnum><issn>1382-3256</issn><eissn>1573-7616</eissn><abstract>Nowadays, RESTful web services are widely used for building enterprise applications. REST is not a protocol, but rather it defines a set of guidelines on how to design APIs to access and manipulate resources using HTTP over a network. In this paper, we propose an enhanced search-based method for automated system test generation for RESTful web services, by exploiting domain knowledge on the handling of HTTP resources. The proposed techniques use domain knowledge specific to RESTful web services and a set of effective templates to structure test actions (i.e., ordered sequences of HTTP calls) within an individual in the evolutionary search. The action templates are developed based on the semantics of HTTP methods and are used to manipulate the web services’ resources. In addition, we propose five novel sampling strategies with four sampling methods (i.e., resource-based sampling) for the test cases that can use one or more of these templates. The strategies are further supported with a set of new, specialized mutation operators (i.e., resource-based mutation) in the evolutionary search that take into account the use of these resources in the generated test cases. Moreover, we propose a novel dependency handling to detect possible dependencies among the resources in the tested applications. The resource-based sampling and mutations are then enhanced by exploiting the information of these detected dependencies. To evaluate our approach, we implemented it as an extension to the
EvoMaster
tool, and conducted an empirical study with two selected baselines on 7 open-source and 12 synthetic RESTful web services. Results show that our novel resource-based approach with dependency handling obtains a significant improvement in performance over the baselines, e.g., up to + 130.7% relative improvement (growing from + 27.9% to + 64.3%) on line coverage.</abstract><cop>New York</cop><pub>Springer US</pub><doi>10.1007/s10664-020-09937-1</doi><orcidid>https://orcid.org/0000-0003-1204-9322</orcidid><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | ISSN: 1382-3256 |
ispartof | Empirical software engineering : an international journal, 2021-07, Vol.26 (4), Article 76 |
issn | 1382-3256 1573-7616 |
language | eng |
recordid | cdi_proquest_journals_2536114650 |
source | SpringerLink Journals - AutoHoldings |
subjects | Compilers Computer Science Domains Handling Interpreters Mutation Programming Languages Sampling methods Searching Semantics Software Engineering/Programming and Operating Systems Web services |
title | Resource and dependency based test case generation for RESTful Web services |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-03T15%3A37%3A45IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Resource%20and%20dependency%20based%20test%20case%20generation%20for%20RESTful%20Web%20services&rft.jtitle=Empirical%20software%20engineering%20:%20an%20international%20journal&rft.au=Zhang,%20Man&rft.date=2021-07-01&rft.volume=26&rft.issue=4&rft.artnum=76&rft.issn=1382-3256&rft.eissn=1573-7616&rft_id=info:doi/10.1007/s10664-020-09937-1&rft_dat=%3Cproquest_cross%3E2536114650%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2536114650&rft_id=info:pmid/&rfr_iscdi=true |