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...
Saved in:
Main Authors: | , , , , |
---|---|
Other Authors: | |
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 |