Mining unit test cases to synthesize API usage examples.
Uloženo v:
| Název: | Mining unit test cases to synthesize API usage examples. |
|---|---|
| Autoři: | Ghafari, Mohammad, Rubinov, Konstantin, Pourhashem K., Mohammad Mehdi |
| Zdroj: | Journal of Software: Evolution & Process; Dec2017, Vol. 29 Issue 12, pn/a-N.PAG, 19p |
| Témata: | APPLICATION program interfaces, TEXT mining, SOURCE code, COMPUTER software development, PROGRAMMING languages |
| Abstrakt: | Software developers study and reuse existing source code to understand how to properly use application programming interfaces (APIs). However, manually finding sufficient and adequate code examples for a given API is a difficult and a time-consuming activity. Existing approaches to find or generate examples assume availability of a reasonable set of client code that uses the API. This assumption does not hold for newly released API libraries, non-widely used APIs, nor private ones. In this work we reuse the important information that is naturally present in test code to circumvent the lack of usage examples for an API when other sources of client code are not available. We propose an approach for automatically identifying the most representative API uses within each unit test case. We then develop an approach to synthesize API usage examples by extracting relevant statements representing the usage of such APIs. We compare the output of a prototype implementation of our approach to both human-written examples and to a state-of-the-art approach. The obtained results are encouraging; the examples automatically generated with our approach are superior to the state-of-the-art approach and highly similar to the manually constructed examples. [ABSTRACT FROM AUTHOR] |
| Copyright of Journal of Software: Evolution & Process is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.) | |
| Databáze: | Complementary Index |
| FullText | Text: Availability: 0 CustomLinks: – Url: https://resolver.ebscohost.com/openurl?sid=EBSCO:edb&genre=article&issn=20477473&ISBN=&volume=29&issue=12&date=20171201&spage=n%2Fa&pages=&title=Journal of Software: Evolution & Process&atitle=Mining%20unit%20test%20cases%20to%20synthesize%20API%20usage%20examples.&aulast=Ghafari%2C%20Mohammad&id=DOI:10.1002/smr.1841 Name: Full Text Finder Category: fullText Text: Full Text Finder Icon: https://imageserver.ebscohost.com/branding/images/FTF.gif MouseOverText: Full Text Finder – Url: https://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=EBSCO&SrcAuth=EBSCO&DestApp=WOS&ServiceName=TransferToWoS&DestLinkType=GeneralSearchSummary&Func=Links&author=Ghafari%20M Name: ISI Category: fullText Text: Nájsť tento článok vo Web of Science Icon: https://imagesrvr.epnet.com/ls/20docs.gif MouseOverText: Nájsť tento článok vo Web of Science |
|---|---|
| Header | DbId: edb DbLabel: Complementary Index An: 126766592 RelevancyScore: 861 AccessLevel: 6 PubType: Academic Journal PubTypeId: academicJournal PreciseRelevancyScore: 861.368896484375 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Mining unit test cases to synthesize API usage examples. – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Ghafari%2C+Mohammad%22">Ghafari, Mohammad</searchLink><br /><searchLink fieldCode="AR" term="%22Rubinov%2C+Konstantin%22">Rubinov, Konstantin</searchLink><br /><searchLink fieldCode="AR" term="%22Pourhashem K%2E%2C+Mohammad+Mehdi%22">Pourhashem K., Mohammad Mehdi</searchLink> – Name: TitleSource Label: Source Group: Src Data: Journal of Software: Evolution & Process; Dec2017, Vol. 29 Issue 12, pn/a-N.PAG, 19p – Name: Subject Label: Subject Terms Group: Su Data: <searchLink fieldCode="DE" term="%22APPLICATION+program+interfaces%22">APPLICATION program interfaces</searchLink><br /><searchLink fieldCode="DE" term="%22TEXT+mining%22">TEXT mining</searchLink><br /><searchLink fieldCode="DE" term="%22SOURCE+code%22">SOURCE code</searchLink><br /><searchLink fieldCode="DE" term="%22COMPUTER+software+development%22">COMPUTER software development</searchLink><br /><searchLink fieldCode="DE" term="%22PROGRAMMING+languages%22">PROGRAMMING languages</searchLink> – Name: Abstract Label: Abstract Group: Ab Data: Software developers study and reuse existing source code to understand how to properly use application programming interfaces (APIs). However, manually finding sufficient and adequate code examples for a given API is a difficult and a time-consuming activity. Existing approaches to find or generate examples assume availability of a reasonable set of client code that uses the API. This assumption does not hold for newly released API libraries, non-widely used APIs, nor private ones. In this work we reuse the important information that is naturally present in test code to circumvent the lack of usage examples for an API when other sources of client code are not available. We propose an approach for automatically identifying the most representative API uses within each unit test case. We then develop an approach to synthesize API usage examples by extracting relevant statements representing the usage of such APIs. We compare the output of a prototype implementation of our approach to both human-written examples and to a state-of-the-art approach. The obtained results are encouraging; the examples automatically generated with our approach are superior to the state-of-the-art approach and highly similar to the manually constructed examples. [ABSTRACT FROM AUTHOR] – Name: Abstract Label: Group: Ab Data: <i>Copyright of Journal of Software: Evolution & Process is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.) |
| PLink | https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edb&AN=126766592 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1002/smr.1841 Languages: – Code: eng Text: English PhysicalDescription: Pagination: PageCount: 19 StartPage: n/a Subjects: – SubjectFull: APPLICATION program interfaces Type: general – SubjectFull: TEXT mining Type: general – SubjectFull: SOURCE code Type: general – SubjectFull: COMPUTER software development Type: general – SubjectFull: PROGRAMMING languages Type: general Titles: – TitleFull: Mining unit test cases to synthesize API usage examples. Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Ghafari, Mohammad – PersonEntity: Name: NameFull: Rubinov, Konstantin – PersonEntity: Name: NameFull: Pourhashem K., Mohammad Mehdi IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 12 Text: Dec2017 Type: published Y: 2017 Identifiers: – Type: issn-print Value: 20477473 Numbering: – Type: volume Value: 29 – Type: issue Value: 12 Titles: – TitleFull: Journal of Software: Evolution & Process Type: main |
| ResultId | 1 |
Full Text Finder
Nájsť tento článok vo Web of Science