I have seen a lot of project heartache that could have been avoided with better testing. However, testing is an art form and very few organizations do it well. Most people believe the extent of testing is to make sure that the system behaves as expected. But that is the easy part.
There are many aspects of testing, including unit testing (just testing the particular aspect of functionality), integration testing (making sure all of the components work end-to-end), interface testing, conversion testing, stress testing (simulating real world volumes), and exception testing (because users don’t always do what you expect). This is far from complete. The type and amount of testing will vary by project.
Most project plans that I see need to triple the amount of testing that they plan. The development of a comprehensive test plan is a key component of any IT project.
Also, testing should be auditable and signed off by the business. When I worked for SMS in the 80s we created folders for screen prints. The outside of the folder had the scenario stapled and the expected results were checked off as they were validated. Today we typically document the testing in a QuickBase application.
I feel so strongly about testing we have created a new position in our organization for a testing guru. This person will be the consultant to the various projects helping the project teams to develop effective test plans. This person will also develop our internal methodologies which we will improve over time.