Debugging Toolbox : Troubleshooting Software Problems: A Scientific Approach