Testing shows the presence of errors in a product, but “cannot prove that there are no defects” – you probably know that quote. I remember so many hours spent on debugging those little, mean bugs hidding deeply in the code edge cases. But what’s worse, I remember even more hours trying to understand and reproduce an error that happens only in production environment. Here’s the first top 5 most popular issues I’ve met during last years:
- app hangs due to deadlocks (in the app or external library)
- memory issues like memory leaks, long GC pauses or high CPU usage due to the GC
- swallowed exception preventing some logic, with no logs available
- threading issues like thread-pool starvation
- intermittent errors due to the resources shortage, like running out of sockets or file handles
BTW. And what’s yours top 5?