This Software Engineering book is free for today(6th April 2015).
Any software projects can be divided into following phrases: Requirement, "Design & Development", “Unit Testing”, “Integration Testing” and “Support & Maintenance”. Due to highly complex nature of real life software projects, various set of software engineering tools are developed/purchased to facilitate understanding the requirements better, estimate more accurately, design software with good clarity, catch as many bugs as possible in “Unit Testing” phrase, catch all functional bugs in “Integration testing & Deployment” phrase, automate routine project support activities, etc.
http://www.amazon.com/Software-Engin...re+engineering
There is an easy way to find out the lines of code responsible for "regression bugs" using code coverage tool.
Brian Kernighan, the father of C programming language said, "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." For debugging code, you need smart software engineering tools which took many staff years to build, which embeds the experience of thousands of software engineers across the world.