I'm a software developer. What do I need to know about software testing (apart from TDD, unit-testing and stuff) to make my software work as it should? For example, there are cases when TDD is not applicable. Therefore, I need to do simple smoke testing of my code every time it is deployed/changed. In order to prevent silly mistakes, I probably should have some simple test cases and check manually if everything works properly. It's better to avoid bugs than fix them, right? And this is the time when basic software testing skills might come in handy. What are those basics that I need to know?
Software testing for developer
self improvement;testing;education
A book that was recommended to me and which I relied on as a professional software tester is Testing Computer Software by Kaner, Falk, and Nguyen. Topics include the fact that you simply can't test everything, how to report and analyze bugs (more useful for a larger team or when dealing with bug reports from customers), equivalence classes and boundary values, localization, user manuals, legal consequences, and managing. So it covers a broad range of areas relevant to testing, and introduces and defines key terminology. If you're going to spend a lot of time testing or even working with testers, I recommend this book.