Mining unit test cases to synthesize API usage examples.

Uloženo v:
Podrobná bibliografie
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