MetPurity: A Learning-Based Tool of Pure Method Identification for Automatic Test Generation

In object-oriented programming, a method is pure if calling the method does not change object states that exist in the pre-states of the method call. Pure methods are widely-used in automatic techniques, including test generation, compiler optimization, and program repair. Due to the source code dep...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE) s. 1326 - 1330
Hlavní autori: Yu, Runze, Zhang, Youzhe, Xuan, Jifeng
Médium: Konferenčný príspevok..
Jazyk:English
Vydavateľské údaje: ACM 01.09.2020
Predmet:
ISSN:2643-1572
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Abstract In object-oriented programming, a method is pure if calling the method does not change object states that exist in the pre-states of the method call. Pure methods are widely-used in automatic techniques, including test generation, compiler optimization, and program repair. Due to the source code dependency, it is infeasible to completely and accurately identify all pure methods. Instead, existing techniques such as ReImInfer are designed to identify a subset of accurate results of pure method and mark the other methods as unknown ones. In this paper, we designed and implemented MetPurity, a learning-based tool of pure method identification. Given all methods in a project, MetPurity labels a training set via automatic program analysis and builds a binary classifier (implemented with the random forest classifier) based on the training set. This classifier is used to predict the purity of all the other methods (i.e., unknown ones) in the same project. Preliminary evaluation on four open-source Java projects shows that Metpurity can provide a list of identified pure methods with a low error rate. Applying Met-purity to EvoSuite can increase the number of generated assertions for regression testing in test generation by EvoSuite.
AbstractList In object-oriented programming, a method is pure if calling the method does not change object states that exist in the pre-states of the method call. Pure methods are widely-used in automatic techniques, including test generation, compiler optimization, and program repair. Due to the source code dependency, it is infeasible to completely and accurately identify all pure methods. Instead, existing techniques such as ReImInfer are designed to identify a subset of accurate results of pure method and mark the other methods as unknown ones. In this paper, we designed and implemented MetPurity, a learning-based tool of pure method identification. Given all methods in a project, MetPurity labels a training set via automatic program analysis and builds a binary classifier (implemented with the random forest classifier) based on the training set. This classifier is used to predict the purity of all the other methods (i.e., unknown ones) in the same project. Preliminary evaluation on four open-source Java projects shows that Metpurity can provide a list of identified pure methods with a low error rate. Applying Met-purity to EvoSuite can increase the number of generated assertions for regression testing in test generation by EvoSuite.
Author Zhang, Youzhe
Yu, Runze
Xuan, Jifeng
Author_xml – sequence: 1
  givenname: Runze
  surname: Yu
  fullname: Yu, Runze
  email: runzeyu@whu.edu.cn
  organization: School of Computer Science Wuhan University,Wuhan,China
– sequence: 2
  givenname: Youzhe
  surname: Zhang
  fullname: Zhang, Youzhe
  email: youzhezhang@whu.edu.cn
  organization: School of Computer Science Wuhan University,Wuhan,China
– sequence: 3
  givenname: Jifeng
  surname: Xuan
  fullname: Xuan, Jifeng
  email: jxuan@whu.edu.cn
  organization: School of Computer Science Wuhan University,Wuhan,China
BookMark eNotjLtOwzAYRg0CibZ0ZmDxC6T4Fl_YSlVKpSAYwoZU2clvMGpt5LhD354ImD4dnaNvii5iioDQDSULSkV9xzkTWosFF7Rmhp2huVF6FIRLJbU4RxMmBa9ordgVmg7DFyH1CGqC3p-hvB5zKKd7vMQN2BxD_Kge7AA9blPa4-TxGAAew8_U420PsQQfOltCitinjJfHkg4jdriFoeANRMi_9hpdersfYP6_M_T2uG5XT1Xzstmulk1lmVClEn3vmOGEcO-dt6rznIGVEjw4Q0BoISnpiAElaGeokKAcVZ44bRwxmvMZuv37DQCw-87hYPNpZ5iWlFP-A6aNVEo
CODEN IEEPAD
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1145/3324884.3415292
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Xplore POP ALL
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 9781450367684
1450367682
EISSN 2643-1572
EndPage 1330
ExternalDocumentID 9286131
Genre orig-research
GroupedDBID 29I
6IE
6IF
6IH
6IK
6IL
6IM
6IN
6J9
AAJGR
AAWTH
ABLEC
ACREN
ADYOE
ADZIZ
AFYQB
ALMA_UNASSIGNED_HOLDINGS
AMTXH
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
CHZPO
IEGSK
IPLJI
M43
OCL
RIE
RIL
ID FETCH-LOGICAL-a247t-4ddb293003ffbfa7cf32ea66efeb90e484610c09e741c9146e7b17f0b89b09833
IEDL.DBID RIE
ISICitedReferencesCount 2
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000651313500137&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
IngestDate Wed Aug 27 02:33:27 EDT 2025
IsPeerReviewed false
IsScholarly true
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a247t-4ddb293003ffbfa7cf32ea66efeb90e484610c09e741c9146e7b17f0b89b09833
PageCount 5
ParticipantIDs ieee_primary_9286131
PublicationCentury 2000
PublicationDate 2020-Sept.
PublicationDateYYYYMMDD 2020-09-01
PublicationDate_xml – month: 09
  year: 2020
  text: 2020-Sept.
PublicationDecade 2020
PublicationTitle 2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)
PublicationTitleAbbrev ASE
PublicationYear 2020
Publisher ACM
Publisher_xml – name: ACM
SSID ssj0051577
ssj0002871035
Score 2.1432233
Snippet In object-oriented programming, a method is pure if calling the method does not change object states that exist in the pre-states of the method call. Pure...
SourceID ieee
SourceType Publisher
StartPage 1326
SubjectTerms debugging
Error analysis
machine learning
Method purity
Random forests
regression testing
Software engineering
static analysis
test generation
Test pattern generators
Training
Training data
Title MetPurity: A Learning-Based Tool of Pure Method Identification for Automatic Test Generation
URI https://ieeexplore.ieee.org/document/9286131
WOSCitedRecordID wos000651313500137&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV09T8MwELVKxcBUoEV8ywMjbpPYjW22gqgYaNWhSB2Qqtg5IyTUoJLw-zk7ITCwsFmOZUV2nHd3vnuPkKucjyW6DTFDMLdMIIYwDdhK1FjlOU_xmwo7_Sjnc7Va6UWHXLe1MAAQks9g6JvhLj8vbOVDZSOdKEQf9HV2pEzrWq02nuIt_4i3pi_CtJQNlU8sxiOOhoNSYsg9YPl7z19aKgFKpr3_vcQ-GfzU5NFFizYHpAObQ9L7FmWgzRntk-cZlIsgSXdDJ7ShT31ht4hWOV0WxRstHMUBQGdBPJrWpbquid1RNGLppCqLQOVKlwgatKam9k8H5Gl6v7x7YI2EAssSIUsm8twgoOPRdc64TFrHE8jSFBwYHYFQnm7dRhrQsLAa_5ogTSxdZJQ2kVacH5HuptjAMaFSWmUt4JhMC218orVNTMylUdbPe0L6frHW7zVLxrpZp9O_u8_IXuI915CtdU665baCC7JrP8vXj-1l2Novtgajrw
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3PT8IwFH4haKInVDD-tgePDsY6aOsNjQQjEA4z4WBC1u7VmBhmcPj3-1rm9ODFW9M1zdKu-957fe_7AK4y3hPkNnQDAnMTxIQhgUJqRbIns4z36ZvyOz0W06mcz9WsBtdVLQwi-uQzbLumv8vPcrN2obKOiiShD_k6W045q6zWqiIqzvYPeWX8ElALUZL5dONeh5PpIGXc5g6y3M3nLzUVDybDxv9eYw9aP1V5bFbhzT7UcHkAjW9ZBlae0iY8T7CYeVG6GzZgJYHqS3BLeJWxJM_fWG4ZDUA28fLRbFOsa8voHSMzlg3WRe7JXFlCsME25NTuaQuehvfJ3SgoRRSCNIpFEcRZpgnS6fBaq20qjOURpv0-WtQqxFg6wnUTKiTTwij6b6LQXWFDLZUOleT8EOrLfIlHwIQw0hikMamKlXap1ibSXS60NG7eY2i6xVq8b3gyFuU6nfzdfQk7o2QyXowfpo-nsBs5P9bnbp1BvVit8Ry2zWfx-rG68Nv8BWsTpvg
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2020+35th+IEEE%2FACM+International+Conference+on+Automated+Software+Engineering+%28ASE%29&rft.atitle=MetPurity%3A+A+Learning-Based+Tool+of+Pure+Method+Identification+for+Automatic+Test+Generation&rft.au=Yu%2C+Runze&rft.au=Zhang%2C+Youzhe&rft.au=Xuan%2C+Jifeng&rft.date=2020-09-01&rft.pub=ACM&rft.eissn=2643-1572&rft.spage=1326&rft.epage=1330&rft_id=info:doi/10.1145%2F3324884.3415292&rft.externalDocID=9286131