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-...
Autores principales: | , , |
---|---|
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 |