Root Cause
intermediateDefinition
The underlying reason a bug happens, not just the symptom you see. A page might show a blank screen (symptom), but the root cause could be a typo in an API URL three files away. Fixing the root cause prevents the bug from coming back in a different form.
In the wild
Symptom: 'The user list is empty.' Quick fix: hardcode some users. Root cause: the API call uses http instead of https, so the browser blocks it silently. Fixing the URL solves it for real.
More from Debugging & Error Handling
Edge Case
An unusual or extreme input that the code might not handle correctly. Edge cases live at the boundaries: empty strings, zero, negative numbers, very large inputs, or special characters. Many bugs hide in edge cases because developers test the 'happy path' first.
Error Message
The text a program outputs when something goes wrong. Error messages usually include what failed, where it failed, and sometimes why. Sharing the exact error message, not a summary of it, is the fastest way to get useful help.
Expected vs. Actual
A simple framework for describing bugs: what should happen (expected) versus what does happen (actual). Stating both makes the problem unambiguous. Without the expected behavior, it's not always clear that something is wrong.
Logging
Recording what a program does as it runs: which functions were called, what data was received, what decisions were made. Logs are like a flight recorder: when something goes wrong, you read the logs to see what happened leading up to the crash.
Minimal Reproduction
The smallest possible example that still triggers the bug. Stripping away unrelated code makes the problem easier to spot and faster to fix. If a bug only shows up in a 10,000-line app, creating a 20-line version that reproduces it is incredibly valuable.
Regression
A bug that appears in something that used to work. It typically happens when a code change accidentally breaks an unrelated feature. Regressions are sneaky because nobody is looking for problems in parts of the app that were already working.