A formalization of Heisenbugs and their causes in terms of hyperproperties

Abstract The already challenging task of identifying the cause of a bug becomes even more cumbersome if those bugs disappear or change their behavior under observation. Such bugs occur in a range of contexts including elusive concurrency bugs as well as unintended system alterations during debugging and—as a pun on the name of Werner Heisenberg—are often referred to as Heisenbugs. Heisenbugs can be caused by various sources of nondeterminism on different system levels, many of which developers and testers might not even be aware of. This paper provides formal foundations for rigorously reasoning about causes of Heisenbugs. It provides a formal definition of Heisenbugs in terms of a hyperproperty and introduces a framework for determining the causality of Heisenbugs in presence of multiple candidate causes based on said hyperproperty. We analyze the properties of causes and the implications on practical causal analyses. We provide two small case studies and a taxonomy of potential causes of Heisenbugs.

Authors

Institutions

Publication Details

Journal
Software & Systems Modeling
Published
2026-02-24
DOI
https://doi.org/10.1007/s10270-025-01345-7
Primary Topic
Software Testing and Debugging Techniques
Type
article
Field-Weighted Citation Impact
0.00

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

A formalization of Heisenbugs and their causes in terms of hyperproperties

Georg Weißenbacher, Florian Zuleger, Sarah Sallinger
Software & Systems Modeling
Software Testing and Debugging Techniques
article

A formalization of Heisenbugs and their causes in terms of hyperproperties

Georg Weißenbacher, Florian Zuleger, Sarah Sallinger
article en

Abstract

Abstract The already challenging task of identifying the cause of a bug becomes even more cumbersome if those bugs disappear or change their behavior under observation. Such bugs occur in a range of contexts including elusive concurrency bugs as well as unintended system alterations during debugging and—as a pun on the name of Werner Heisenberg—are often referred to as Heisenbugs. Heisenbugs can be caused by various sources of nondeterminism on different system levels, many of which developers and testers might not even be aware of. This paper provides formal foundations for rigorously reasoning about causes of Heisenbugs. It provides a formal definition of Heisenbugs in terms of a hyperproperty and introduces a framework for determining the causality of Heisenbugs in presence of multiple candidate causes based on said hyperproperty. We analyze the properties of causes and the implications on practical causal analyses. We provide two small case studies and a taxonomy of potential causes of Heisenbugs.

Software & Systems Modeling
TU Wien (AT)
European Commission, Vienna Science and Technology Fund, Austrian Science Fund, HORIZON EUROPE Framework Programme
Openalex Percentile: Top 53%
Software Testing and Debugging Techniques
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.