I have touched on this topic in the past but the question keeps coming up. Some Ivory Tower types actually question the need to do software testing. This mindset seems quite odd to me since I live and breathe software testing, but I can see how some people that are completely detached from the process might question the validity of it.

The bottom line is that software testing is absolutely, positively necessary in today’s high-tech world. In fact, it has been necessary for as long as software has been in existence, but it is even more critical today given the accelerating pace of technological change that we are currently experiencing.

Software creation is an iterative process, and as such bugs and defects will emerge from time to time in almost all cases. One reason is that software is developed by human beings. No one is perfect and everyone makes mistakes. That is just the nature of being human. Additionally, it is usually not possible for humans to figure out all possible scenarios, outcomes, and variables in advance, and thus software testing helps to reveal previously unconsidered elements. Finally, software does not exist in a vacuum. It is dependent on hardware, users, systemic integration, etc. Therefore it is necessary to test these dependencies to ensure a seamless integration.

To summarize, software testing following ISEB / ISTQB best practices is necessary to ensure that everything works as intended. It also serves to optimize product quality by instituting a check and balance system. If we could be confident that our software is developed error-free 100% of the time, then obviously software testing would not be needed, but unfortunately that is simply not the case.