Can Machines Learn Bug Language?

This ad is not shown to multipass and full ticket holders
React Summit
React Summit 2025
June 13 - 17, 2025
Amsterdam & Online
The biggest React conference worldwide
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit 2025
React Summit 2025
June 13 - 17, 2025. Amsterdam & Online
Learn more
Bookmark
Rate this content

Is communication with bugs possible? It is important to understand them because there is valuable information underlying the bugs of software, and it promises quality improvements. Let's talk about how we can analyze reported issues to improve the future of the product by means of Artificial Intelligence.

This talk has been presented at Productivity Conf for Devs and Tech Leaders, check out the latest edition of this Tech Conference.

FAQ

Mesut Turkal discusses the importance of analyzing software bugs to improve product quality and the role of machine learning in enhancing this process.

Analyzing software bugs is crucial because it helps identify improvement points, understand root causes, and enhance both software quality and the development process.

Machine learning can automate the analysis process, identify patterns, predict bug severity, and provide insights that are consistent and based on past data.

Key factors include the visibility, severity, and criticality of bugs, as well as the environment in which they occur and their root causes.

Escape bugs are those that make it into the production environment. They are important because they are costly to fix and identifying their root causes can prevent future occurrences.

Preparations include optimizing the project management environment, automating queries, and creating dashboards for better visualization and understanding of data.

Dashboards provide visual representations of bug data, making it easier to identify trends, distributions, and potential areas for improvement.

Proper communication, akin to asking the right questions, allows for a deeper understanding of bugs, leading to more effective solutions and process improvements.

The 'airport analogy' emphasizes the importance of clear communication, proper data formatting, and noise reduction for effective bug analysis.

Automation streamlines the bug analysis process by executing queries and calculations, thus saving time and reducing manual effort.

Mesut Durukal
Mesut Durukal
27 min
27 Mar, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
In this Talk, the speaker discusses the importance of analyzing bugs in software development. Analyzing bugs goes beyond just counting them; it helps improve processes, understand root causes, and gain insights through machine learning. The Talk emphasizes the need for proper communication with bugs and the importance of preparing the bug analysis environment. Automation and visualization can improve bug analysis efficiency, and a comprehensive analysis of different metrics is necessary to gain insights for improvement. The Talk also highlights examples of bug analysis and the use of machine learning for pattern recognition. Bug severity estimation using machine learning algorithms and the use of clustering for bug analysis are also mentioned. Overall, the Talk provides valuable insights on bug analysis and its role in improving software quality and productivity.

1. Introduction to Bug Analysis

Short description:

In this session, I will talk about the bugs that we might have in our product or the software that we are developing. Bugs are direct indicators of quality, but analyzing them goes beyond just counting. We will discuss how to analyze bugs and collect insights through machine learning.

Hello, my name is Mesut Turkal. I'm a Software Quality Assurance Automation Engineer and in this session, I will talk about the bugs that we might have in our product or the software that we are developing. Because there are several things that might relate to software quality or the product quality, but bugs or the issues, vulnerabilities, those kind of things we can improve on the product that we are delivering to the customers are one of the direct indicators of the quality, right?

Because the more bugs we have, probably the less quality. I'm saying probably, because that's not the case always. Like only checking the number of bugs might be misleading. Like sometimes we might have very few bugs, but they might be very critical and vital and very visible bugs. On the other hand, there might be several little minor issues that might be less critical. So we already started talking about the importance of analyzing the bugs, right? Not only the number, but also visibility, severity, criticality, lots of different things. So we will discuss in detail how we can analyze bugs to get some, to collect some insights about the improvement points. So this is what we will do.

And how we will do is by getting some help from the machines, by utilizing machine learning, right? Why? Talking about the productivity, efficiency, how easily we can maintain our tasks or finish our tasks to deliver our products. So of course, saving some time is very important. Doing things more efficiently is very important. So this is what we will discuss in depth. What we will do is analyze the bugs, try to collect some insights from them. And how we will do is by help of, by means of machine learning. And we will relate this machine learning with our biological learning as well. I'll give some examples and let's get started by discussing in detail.

2. Analyzing Bugs: Improving Quality and Processes

Short description:

Resolving bugs improves short-term quality, but analyzing them goes beyond fixing software. It helps improve processes and understand root causes. By communicating with bugs and asking the right questions, we can gain insights and improve productivity. Building a proper communication with bugs is crucial for long-term improvement.

So what we are doing by resolving bugs is, of course, momentarily we are improving the quality, right? If we resolve a bug, it means we are getting rid of some problems. This is the short term goal, or the short term win. How about improvement rooms in the long term? Like if we somehow understand some improvement from the bugs in the long term, we will not be improving only the software itself, but also we can improve our processes to develop those software or the product. Like if there is something that we can do in a better way to develop that software, then why not instead of just fixing the software, fixing the way to develop the software? So this is collecting some insights and trying to understand not only the ways to fix the bug, but also why this bug happened. The root cause, or the other related issues, some hidden patterns. So you realize we already started talking about some patterns and the models, right? We're building a model. So this is the basic principles of machine learning. We will discuss in detail again, but these two different dimensions are the big wins that we can get from analyzing the bugs.

What does analyzing the bugs mean? Actually it means building a proper communication to them, right? Talking to them. Like asking proper questions to a bug, like why did it raise? In what environment did it raise? What other issues is it related to? What other issues is it familiar with? So these kinds of questions, if we ask the proper queries to the bugs, we will get some answers. So it's kind of communication, right? If we talk in the correct language, then we will get a lot of answers from the bug. So this is talking to bugs. I have a lot of stories around building a proper communication with the bugs. Once I have a bug, which was live for a very long time, which is an old, late bug, I'm saying. So when I asked the questions like why it was not resolved for a long time, then I learned a lot of things that I can improve in my process. Like why it was not resolved because there were some testability issues. It was very difficult to replicate, duplicate the bug. There were some different difficulties, challenges. So by analyzing them, I tried to find some solutions to get rid of these root causes. And there were some other stories, like where I found how an escaped bug was going into production. Because escaped bug means normally we try to keep them in our testing environment or the development environment only. We try to close the gates to the production environment. But some of them somehow found a way to go to production. So when I asked the core questions, then I figured out how they managed to escape to the production environment. And then I closed those gates as well. So again, by building a good and proper communication to bugs, we can improve our productivity. Because again, we are talking not only about short-term wins, but also maintaining a long-term improvement, improving the processes, the ways to build and develop and deliver our products.

So going over an analogy to better explain the situation, let me explain you a scenario where we are waiting for our flight in the airport. And we have our flight and we know our gate, but they decided to change the gate. So this is an information that I have to have.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Modern Web Debugging
JSNation 2023JSNation 2023
29 min
Modern Web Debugging
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
Debugging JS
React Summit 2023React Summit 2023
24 min
Debugging JS
Top Content
Watch video: Debugging JS
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
AI and Web Development: Hype or Reality
JSNation 2023JSNation 2023
24 min
AI and Web Development: Hype or Reality
Top Content
This talk explores the use of AI in web development, including tools like GitHub Copilot and Fig for CLI commands. AI can generate boilerplate code, provide context-aware solutions, and generate dummy data. It can also assist with CSS selectors and regexes, and be integrated into applications. AI is used to enhance the podcast experience by transcribing episodes and providing JSON data. The talk also discusses formatting AI output, crafting requests, and analyzing embeddings for similarity.
From Friction to Flow: Debugging With Chrome DevTools
JSNation 2024JSNation 2024
32 min
From Friction to Flow: Debugging With Chrome DevTools
The Talk discusses the importance of removing frictions in the debugging process and being aware of the tools available in Chrome DevTools. It highlights the use of the 'Emulate a Focus Page' feature for debugging disappearing elements and the improvement of debugging tools and workflow. The Talk also mentions enhancing error understanding, improving debugging efficiency and performance, and the continuous improvement of DevTools. It emphasizes the importance of staying updated with new features and providing feedback to request new features.
Forget Bad Code, Focus on the System
React Summit US 2023React Summit US 2023
27 min
Forget Bad Code, Focus on the System
Top Content
Watch video: Forget Bad Code, Focus on the System
Setting up the system and separating concerns are important in software development. Modular construction and prefab units are a new trend that makes construction quicker and easier. Architectural complexity can lead to a drop in productivity and an increase in defects. Measuring architectural complexity can help identify natural modules in the code. Best practices for avoiding architectural complexity include organizing code by business domain and using prop drilling. Atomic design and organizing a monorepo are recommended approaches for managing architectural complexity.
Confessions from an Impostor
JSNation 2022JSNation 2022
46 min
Confessions from an Impostor
Top Content
The Talk discusses imposter syndrome and reframes it as being a professional imposter. It emphasizes the importance of sharing and starting, embracing imposterism, and building inclusively for the web. The speaker shares personal experiences of being an imposter in various technical disciplines and highlights the significance of accessibility. The Talk concludes with the idea of building a collective RPG game to remove excuses for not making things accessible.

Workshops on related topic

React Performance Debugging Masterclass
React Summit 2023React Summit 2023
170 min
React Performance Debugging Masterclass
Top Content
Featured Workshop
Ivan Akulov
Ivan Akulov
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)
Tracing: Frontend Issues With Backend Solutions
React Summit US 2024React Summit US 2024
112 min
Tracing: Frontend Issues With Backend Solutions
Top Content
Featured WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Frontend issues that affect your users are often triggered by backend problems. In this workshop, you’ll learn how to identify issues causing slow web pages and poor Core Web Vitals using tracing.
Then, try it for yourself by setting up Sentry in a ready-made Next.js project to discover performance issues including slow database queries in an interactive pair-programming session.
You’ll leave the workshop being able to:- Find backend issues that might be slowing down your frontend apps- Setup tracing with Sentry in a Next.js project- Debug and fix poor performance issues using tracing
This will be a live 2-hour event where you’ll have the opportunity to code along with us and ask us questions.
React Performance Debugging
React Advanced 2023React Advanced 2023
148 min
React Performance Debugging
Workshop
Ivan Akulov
Ivan Akulov
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)
The Clinic.js Workshop
JSNation 2022JSNation 2022
71 min
The Clinic.js Workshop
Workshop
Rafael Gonzaga
Rafael Gonzaga
Learn the ways of the clinic suite of tools, which help you detect performance issues in your Node.js applications. This workshop walks you through a number of examples, and the knowledge required to do benchmarking and debug I/O and Event Loop issues.
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
JSNation 2023JSNation 2023
44 min
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
WorkshopFree
Ryan Albrecht
Ryan Albrecht
You know that annoying bug? The one that doesn’t show up locally? And no matter how many times you try to recreate the environment you can’t reproduce it? You’ve gone through the breadcrumbs, read through the stack trace, and are now playing detective to piece together support tickets to make sure it’s real.
Join Sentry developer Ryan Albrecht in this talk to learn how developers can use Session Replay - a tool that provides video-like reproductions of user interactions - to identify, reproduce, and resolve errors and performance issues faster (without rolling your head on your keyboard).
How to Create a Web Application in an (Almost) Autonomous Way Using Clean Coder
Productivity Conf for Devs and Tech LeadersProductivity Conf for Devs and Tech Leaders
95 min
How to Create a Web Application in an (Almost) Autonomous Way Using Clean Coder
Workshop
Grigorij Dudnik
Grigorij Dudnik
Imagine replacing yourself with a multi-agent AI programmer to develop your production web application. That's exactly what we did at my startup takzyli.pl. To achieve this, we designed and used the Clean Coder - AI agent framework for autonomous code writing (https://github.com/GregorD1A1/Clean-Coder-AI), which is hopefully open-source project. If it worked for us, why shouldn't it work for you?In this workshop, I'll show you how to create an entire web application in an (almost) autonomous way and drastically reduce the time you or your employees spend on writing code.