Sunday, February 16, 2014

Software bugs

According to a study by Cambridge University, software bugs cost the economy 312 billion (yes, with a "b") per year (see this link for the full article). The study also found that software developers spend up to 50% of their time finding and fixing bugs. This certainly emphasizes the importance of not just writing clean, well-commented code, but also being sure to perform thorough testing of the code. As a programmer, I find that sometimes the hardest part of debugging is reproducibility. Someone will run your program and find a bug, but then they can't remember exactly what they did to get the error. The article mentioned the concept of "reversible debugging", which essentially records everything that a program does so that when a bug is found, the developer can more easily find the cause. I would imagine that having a tool that implemented this concept would be incredibly helpful when it came to finding and fixing a bug. The article was not clear about whether this type of debugging is only used during development or whether it could be "attached" the deployment program as well. Obviously, having a tool that recorded everything the program does while an actual user is using it could be a big legal issue depending on exactly what the program itself does (i.e. you wouldn't want this debugger attached to a banking app). However, using a reversible debugger during alpha and beta testing could be extremely helpful since it would allow the developer to more easily find and fix bugs while the tool is in use.

No comments:

Post a Comment