The purpose of testing is twofold: to validate the requirements have been met and verify that no defects have been introduced in the process of implementing the requirements - achieving these objectives with limited resources is no easy task.
ObjektDev espouses some of the Agile approach to testing - it should be done early in the lifecycle, it should be frequent as part of the edit-build-run-test cycle and in some cases Test Driven Development (TDD) is appropriate. But there is not a 'one size fits all' philosophy for testing.
We have many years experience of testing various types of systems from safety-critical to mission-critical. We have also innovated new approaches to testing, combining the Model Driven approach with Open Source software such as FIT.
We frequently use NUnit, NCover, CruiseControl, Selenium and FIT to achieve these elusive goals.