← Latest papers
💻 computer science

Is this Build Failure Related to my Patch? An Empirical Study of Unrelated Build Failures in Continuous Integration

This empirical study analyzes 77,354 CI build failures across seven Apache projects to quantify the developer effort wasted on unrelated failures and demonstrates that semi-supervised Positive and Unlabeled (PU) learning models, utilizing features like CI latency and error patterns, can effectively predict such non-actionable failures to help developers prioritize their debugging efforts.

Original authors: Andie Huang, Daniel Alencar da Costa, Grant Dick, Mariam El Mezouar

Published 2026-05-08
📖 5 min read🧠 Deep dive

Original authors: Andie Huang, Daniel Alencar da Costa, Grant Dick, Mariam El Mezouar

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are a chef working in a very busy, chaotic kitchen (this is the Continuous Integration environment). Every few minutes, a new order comes in (a code push), and the kitchen automatically starts cooking a test meal to see if the new ingredients work.

Sometimes, the test meal burns or tastes terrible. Usually, this means the chef who just added the new ingredients made a mistake. But sometimes, the fire alarm goes off because the previous chef left the stove on, or the oven broke, or someone else dropped a tray in the next room. This is what the paper calls an "Unrelated Build Failure."

The problem is that the chef who just added the new ingredients doesn't know why the meal failed. They spend hours (the paper says a median of 4 hours) frantically checking their own spices and knives, trying to prove, "It wasn't me!" This wastes a lot of time and causes stress.

What the Researchers Did

The authors (a team of researchers) decided to investigate this kitchen chaos. They looked at 77,354 "burnt meals" (build failures) from 7 large open-source software projects (like Apache Hadoop and HBase).

  1. The Detective Work: They manually read through thousands of comments left by developers after a failure. They looked for phrases like "this isn't related to my change" or "unrelated." They found about 10,300 cases where developers explicitly said, "This failure wasn't my fault."
  2. The Interview: They picked a smaller, representative sample of 371 of these "not my fault" cases and analyzed them like a detective analyzing a crime scene. They asked: Why did the developers say this wasn't their fault?
    • The Findings: The most common reasons were:
      • Unrelated Tests: The test that failed was actually checking something from a different part of the kitchen, not the new ingredient.
      • External Interference: Something outside the kitchen changed (like a supplier delivering bad flour to everyone).
      • Non-reproducible: The fire happened once, but when they tried to make the meal again, it was fine (maybe a random power surge).
      • The "Unspecified" Group: A huge chunk (35%) of the time, developers just said "It's not me" without explaining why.

The Solution: A "Smart Assistant"

Since developers can't always explain why a failure is unrelated immediately, the researchers built a Smart Assistant (a machine learning model) to guess for them.

They used a special technique called PU Learning (Positive-Unlabeled Learning).

  • The Analogy: Imagine you are trying to teach a dog to find a specific type of ball. You have a few balls you know are the right kind (the Positive examples). But you have a huge pile of mixed balls where you don't know which are the right kind and which are wrong (the Unlabeled pile). You can't just say "everything else is a wrong ball" because some of them might actually be the right kind, you just haven't checked them yet.
  • How it worked: The researchers fed their model the "known unrelated failures" and the "unknown pile." The model learned to spot patterns that suggest a failure is likely unrelated, even without a clear label.

How Good Was the Assistant?

The model was tested on the same 7 projects.

  • It was very good at precision (when it said "This isn't your fault," it was usually right, about 70% to 88% of the time).
  • It was good at recall (it found most of the unrelated failures, though it missed some).
  • It significantly outperformed random guessing or simple rules.

The "Clues" the Model Used

The researchers found three main clues that helped the model decide if a failure was unrelated:

  1. The Time Gap (CI Latency): If a developer pushed code and waited a long time before triggering the build, it's more likely that someone else broke the kitchen in the meantime.
  2. The "Deja Vu" Error: If the error message looks exactly like one that happened recently, it's probably a repeat of an old problem, not a new one caused by the current chef.
  3. The Chatter: If there are a lot of comments on the issue before the failure happened, it suggests the problem is complex and likely involves other people's work, not just the current push.

The Bottom Line

The paper concludes that by using this "Smart Assistant," developers can get a quick hint: "There's a high chance this failure isn't your fault."

This doesn't mean they can ignore the problem, but it tells them, "Don't spend 4 hours checking your own code. Maybe check the oven or ask the other chef." This helps them stop wasting time on false alarms and get back to cooking (coding) faster.

Important Note: The paper focuses entirely on identifying these failures in software projects. It does not claim this method works for medical diagnosis, financial trading, or any other field outside of software development. It is strictly a tool for software teams to manage their own "kitchen" chaos.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →