Table of Contents
Fetching ...

Hot Fixing Software: A Comprehensive Review of Terminology, Techniques, and Applications

Carol Hanna, David Clark, Federica Sarro, Justyna Petke

TL;DR

The paper surveys hot fixing as unplanned, time-critical production repairs in software systems, noting terminological inconsistency. It proposes a unified definition, scopes the literature from 2000 to 2022, and documents 91 core papers across empirical and tooling themes. It categorizes techniques into semi-automated and fully automated approaches spanning detection, remediation, deployment, and end-to-end tooling, with domain examples from OSS, commercial, mobile, games, and security. The authors articulate an open research agenda and emphasize benchmarks, industrial practice, and end-to-end automation to advance hot fixing as a mature software engineering activity.

Abstract

A hot fix is an unplanned improvement to a specific time-critical issue deployed to a software system in production. While hot fixing is an essential and common activity in software maintenance, it has never been surveyed as a research activity. Thus, such a review is long overdue. In this paper, we conduct a comprehensive literature review of work on hot fixing. We highlight the fields where this topic has been addressed, inconsistencies we identified in the terminology, gaps in the literature, and directions for future work. Our search concluded with 91 articles on the topic between the years 2000 and 2022. The articles found encompass many different research areas such as log analysis, runtime patching (also known as hot patching), and automated repair, as well as various application domains such as security, mobile, and video games. We find that many directions can take hot fix research forward such as unifying existing terminology, establishing a benchmark set of hot fixes, researching costs and frequency of hot fixes, and researching the possibility of end-to-end automation of detection, mitigation, and deployment. We discuss these avenues in detail to inspire the community to systematize hot fixing as a software engineering activity.

Hot Fixing Software: A Comprehensive Review of Terminology, Techniques, and Applications

TL;DR

The paper surveys hot fixing as unplanned, time-critical production repairs in software systems, noting terminological inconsistency. It proposes a unified definition, scopes the literature from 2000 to 2022, and documents 91 core papers across empirical and tooling themes. It categorizes techniques into semi-automated and fully automated approaches spanning detection, remediation, deployment, and end-to-end tooling, with domain examples from OSS, commercial, mobile, games, and security. The authors articulate an open research agenda and emphasize benchmarks, industrial practice, and end-to-end automation to advance hot fixing as a mature software engineering activity.

Abstract

A hot fix is an unplanned improvement to a specific time-critical issue deployed to a software system in production. While hot fixing is an essential and common activity in software maintenance, it has never been surveyed as a research activity. Thus, such a review is long overdue. In this paper, we conduct a comprehensive literature review of work on hot fixing. We highlight the fields where this topic has been addressed, inconsistencies we identified in the terminology, gaps in the literature, and directions for future work. Our search concluded with 91 articles on the topic between the years 2000 and 2022. The articles found encompass many different research areas such as log analysis, runtime patching (also known as hot patching), and automated repair, as well as various application domains such as security, mobile, and video games. We find that many directions can take hot fix research forward such as unifying existing terminology, establishing a benchmark set of hot fixes, researching costs and frequency of hot fixes, and researching the possibility of end-to-end automation of detection, mitigation, and deployment. We discuss these avenues in detail to inspire the community to systematize hot fixing as a software engineering activity.
Paper Structure (31 sections, 4 figures, 4 tables)

This paper contains 31 sections, 4 figures, 4 tables.

Figures (4)

  • Figure 1: Publications on hot fixing software (2000-2022) over the years.
  • Figure 2: Research areas the surveyed publications pertain to (Programming Languages, Mobile, Release Management, Software Maintenance, Human Factors, Software Reliability, Systems, Security, Software Engineering, and Other).
  • Figure 3: Number of publications for the different tooling types for hot fixing software. This includes detecting critical issues, remediation techniques for these issues, deployment strategies for their hot fixes into the target system, as well as end-to-end tools that encapsulate all three aforementioned stages.
  • Figure 4: Taxonomy of existing work on tooling for hot fixing activities.