Precise semantic history slicing through dynamic delta refinement

Semantic history slicing solves the problem of extracting changes related to a particular high-level functionality from software version histories. State-of-the-art techniques combine static program analysis and dynamic execution tracing to infer an over-approximated set of changes that can preserve...

Full description

Saved in:
Bibliographic Details
Main Authors: Li, Yi, Zhu, Chenguang, Gligoric, Milos, Rubin, Julia, Chechik, Marsha
Other Authors: School of Computer Science and Engineering
Format: Article
Language:English
Published: 2021
Subjects:
Online Access:https://hdl.handle.net/10356/149074
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-149074
record_format dspace
spelling sg-ntu-dr.10356-1490742021-05-21T09:24:46Z Precise semantic history slicing through dynamic delta refinement Li, Yi Zhu, Chenguang Gligoric, Milos Rubin, Julia Chechik, Marsha School of Computer Science and Engineering University of Texas at Austin University of British Columbia University of Toronto Engineering::Computer science and engineering::Software::Software engineering Semantic History Slicing Program Analysis Semantic history slicing solves the problem of extracting changes related to a particular high-level functionality from software version histories. State-of-the-art techniques combine static program analysis and dynamic execution tracing to infer an over-approximated set of changes that can preserve the functional behaviors captured by a test suite. However, due to the conservative nature of such techniques, the sliced histories may contain irrelevant changes. In this paper, we propose a divide-and-conquer-style partitioning approach enhanced by dynamic delta refinement to produce much smaller semantic history slices. We utilize deltas in dynamic invariants generated from successive test executions to learn significance of changes with respect to the target functionality. Additionally, we introduce a file-level commit splitting technique for untangling unrelated changes introduced in a single commit. Empirical results indicate that these measurements accurately rank changes according to their relevance to the desired test behaviors and thus partition history slices in an efficient and effective manner. Ministry of Education (MOE) Accepted version This research is partly supported by the Singapore Ministry of Education Academic Research Fund Tier 1 (award No. 2018-T1-002-069). 2021-05-21T09:24:46Z 2021-05-21T09:24:46Z 2019 Journal Article Li, Y., Zhu, C., Gligoric, M., Rubin, J. & Chechik, M. (2019). Precise semantic history slicing through dynamic delta refinement. Automated Software Engineering, 26(4), 757-793. https://dx.doi.org/10.1007/s10515-019-00260-8 0928-8910 0000-0003-4562-8208 0000-0001-7280-1614 0000-0002-6301-3517 https://hdl.handle.net/10356/149074 10.1007/s10515-019-00260-8 2-s2.0-85067827047 4 26 757 793 en MOE Tier1 2018-T1-002-069 Automated Software Engineering © 2019 Springer Science+Business Media. This is a post-peer-review, pre-copyedit version of an article published in Automated Software Engineering. The final authenticated version is available online at: http://dx.doi.org/10.1007/s10515-019-00260-8 application/pdf
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic Engineering::Computer science and engineering::Software::Software engineering
Semantic History Slicing
Program Analysis
spellingShingle Engineering::Computer science and engineering::Software::Software engineering
Semantic History Slicing
Program Analysis
Li, Yi
Zhu, Chenguang
Gligoric, Milos
Rubin, Julia
Chechik, Marsha
Precise semantic history slicing through dynamic delta refinement
description Semantic history slicing solves the problem of extracting changes related to a particular high-level functionality from software version histories. State-of-the-art techniques combine static program analysis and dynamic execution tracing to infer an over-approximated set of changes that can preserve the functional behaviors captured by a test suite. However, due to the conservative nature of such techniques, the sliced histories may contain irrelevant changes. In this paper, we propose a divide-and-conquer-style partitioning approach enhanced by dynamic delta refinement to produce much smaller semantic history slices. We utilize deltas in dynamic invariants generated from successive test executions to learn significance of changes with respect to the target functionality. Additionally, we introduce a file-level commit splitting technique for untangling unrelated changes introduced in a single commit. Empirical results indicate that these measurements accurately rank changes according to their relevance to the desired test behaviors and thus partition history slices in an efficient and effective manner.
author2 School of Computer Science and Engineering
author_facet School of Computer Science and Engineering
Li, Yi
Zhu, Chenguang
Gligoric, Milos
Rubin, Julia
Chechik, Marsha
format Article
author Li, Yi
Zhu, Chenguang
Gligoric, Milos
Rubin, Julia
Chechik, Marsha
author_sort Li, Yi
title Precise semantic history slicing through dynamic delta refinement
title_short Precise semantic history slicing through dynamic delta refinement
title_full Precise semantic history slicing through dynamic delta refinement
title_fullStr Precise semantic history slicing through dynamic delta refinement
title_full_unstemmed Precise semantic history slicing through dynamic delta refinement
title_sort precise semantic history slicing through dynamic delta refinement
publishDate 2021
url https://hdl.handle.net/10356/149074
_version_ 1701270472348401664