During requirement gathering phase test team will prepare manual test cases as per requirement. Complete Test plan along with test cases would be maintained in Testopia or any other test-case management tool based on your comforts, like 'Test Track' , 'X Studio' etc.
During development phase developers can perform Unit Testing to check against coding errors and do Developers testing to test the functionality from developers side. Nunit or MS Test will be used for the unit testing based on your suggestions. Both of the tools allow creation of test methods and are integrated with Visual Studio, which can also be customized to write specific test methods for the unit testing. Any error returned by such methods will stop successful compilation of code and will be needed to be resolved first. Which will make sure successful unit testing is done. Our preference would be to use MS Test as its provided by Microsoft and have more detailed integration with Visual Studio.
For the developers testing , developers would check against the check-list provided by test team. Which they will submit when the completed work is handed over to QA team. The same will be attached with the release package. Sample format of such check-list is attached with this package.
Once developers are done with developer testing, that module will be given to test team for testing. Test team will start with adhoc testing by running manual test cases prepared in Test-case Management tool. Any bugs found, will be logged in Bugzilla or any other bug management tool. For major features, test team will prepare automated test scripts using Watir. Testopia does allow to maintain such script directly under tool itself.