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...
Uložené v:
| Vydané v: | 2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE) s. 1326 - 1330 |
|---|---|
| Hlavní autori: | , , |
| 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 |