Cargando…

Practical Machine-Checked Formalization of Change Impact Analysis

Change impact analysis techniques determine the components affected by a change to a software system, and are used as part of many program analysis techniques and tools, e.g., in regression test selection, build systems, and compilers. The correctness of such analyses usually depends both on domain-...

Descripción completa

Detalles Bibliográficos
Autores principales: Palmskog, Karl, Celik, Ahmet, Gligoric, Milos
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7480691/
http://dx.doi.org/10.1007/978-3-030-45237-7_9
_version_ 1783580460284116992
author Palmskog, Karl
Celik, Ahmet
Gligoric, Milos
author_facet Palmskog, Karl
Celik, Ahmet
Gligoric, Milos
author_sort Palmskog, Karl
collection PubMed
description Change impact analysis techniques determine the components affected by a change to a software system, and are used as part of many program analysis techniques and tools, e.g., in regression test selection, build systems, and compilers. The correctness of such analyses usually depends both on domain-specific properties and change impact analysis, and is rarely established formally, which is detrimental to trustworthiness. We present a formalization of change impact analysis with machine-checked proofs of correctness in the Coq proof assistant. Our formal model factors out domain-specific concerns and captures system components and their interrelations in terms of dependency graphs. Using compositionality, we also capture hierarchical impact analysis formally for the first time, which, e.g., can capture when impacted files are used to locate impacted tests inside those files. We refined our verified impact analysis for performance, extracted it to efficient executable OCaml code, and integrated it with a regression test selection tool, one regression proof selection tool, and one build system, replacing their existing impact analyses. We then evaluated the resulting toolchains on several open source projects, and our results show that the toolchains run with only small differences compared to the original running time. We believe our formalization can provide a basis for formally proving domain-specific techniques using change impact analysis correct, and our verified code can be integrated with additional tools to increase their reliability.
format Online
Article
Text
id pubmed-7480691
institution National Center for Biotechnology Information
language English
publishDate 2020
record_format MEDLINE/PubMed
spelling pubmed-74806912020-09-10 Practical Machine-Checked Formalization of Change Impact Analysis Palmskog, Karl Celik, Ahmet Gligoric, Milos Tools and Algorithms for the Construction and Analysis of Systems Article Change impact analysis techniques determine the components affected by a change to a software system, and are used as part of many program analysis techniques and tools, e.g., in regression test selection, build systems, and compilers. The correctness of such analyses usually depends both on domain-specific properties and change impact analysis, and is rarely established formally, which is detrimental to trustworthiness. We present a formalization of change impact analysis with machine-checked proofs of correctness in the Coq proof assistant. Our formal model factors out domain-specific concerns and captures system components and their interrelations in terms of dependency graphs. Using compositionality, we also capture hierarchical impact analysis formally for the first time, which, e.g., can capture when impacted files are used to locate impacted tests inside those files. We refined our verified impact analysis for performance, extracted it to efficient executable OCaml code, and integrated it with a regression test selection tool, one regression proof selection tool, and one build system, replacing their existing impact analyses. We then evaluated the resulting toolchains on several open source projects, and our results show that the toolchains run with only small differences compared to the original running time. We believe our formalization can provide a basis for formally proving domain-specific techniques using change impact analysis correct, and our verified code can be integrated with additional tools to increase their reliability. 2020-03-13 /pmc/articles/PMC7480691/ http://dx.doi.org/10.1007/978-3-030-45237-7_9 Text en © The Author(s) 2020 Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
spellingShingle Article
Palmskog, Karl
Celik, Ahmet
Gligoric, Milos
Practical Machine-Checked Formalization of Change Impact Analysis
title Practical Machine-Checked Formalization of Change Impact Analysis
title_full Practical Machine-Checked Formalization of Change Impact Analysis
title_fullStr Practical Machine-Checked Formalization of Change Impact Analysis
title_full_unstemmed Practical Machine-Checked Formalization of Change Impact Analysis
title_short Practical Machine-Checked Formalization of Change Impact Analysis
title_sort practical machine-checked formalization of change impact analysis
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7480691/
http://dx.doi.org/10.1007/978-3-030-45237-7_9
work_keys_str_mv AT palmskogkarl practicalmachinecheckedformalizationofchangeimpactanalysis
AT celikahmet practicalmachinecheckedformalizationofchangeimpactanalysis
AT gligoricmilos practicalmachinecheckedformalizationofchangeimpactanalysis