Here is an overview of agile testing, compared to traditional V-Model approach - link.
Software testing page on Wikipedia (link).
Software testing tools (link).
Using BDD, the flow would go from business requirements, in form of user stories, to test specifications.
Also check PEX (link).
See Wikipedia page for more details. Good introductory article in Code Magazine (link).
SpecFlow and Selenium Quick Start (link).
Blog post about SpecFlow and ASP.NET MVC (link).
Introducing BDD article (link).
List of tools.
When doing Unit Testing, pay attention as to how much of your code the test actually call during execution. This is called Coverage and there are tools (like NCover for .NET platform) that measure how much code the tests cover. For most cases it is very hard to get to full coverage but try to get as high as reasonably possible.
Lists of software: 1, 2, open source (link)
For Performance Testing it is necessary to carefully create a realistic Workload Model. This needs to represent use cases in the system that are performed by the users. This is, then, scripted and a test plan is created.
Various metrics is used to monitor system behaviour and performance during testing and relate it to the load. The results are compared to the use cases used in testing to see which actions cause the most stress and in which conditions.
Unit testing...
Writing Great Unit Tests: Best and Worst Practices (link)
Traditional V-Model (Waterfall) looks like this
while testing, when using agile methodologies, looks more like this