Software Testing
Here is an overview of agile testing, compared to traditional V-Model approach - link.
Introduction
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).
Behaviour-Driven Development (BDD)
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.
Coverage
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.
Performance Testing
Lists of software: 1, 2, open source (link)
- Microsoft Web Application Stress Tool - WCat (link). Articles:
- Stress tools to test your Web server
- HOW TO: Test ASP.NET Web Services with the Web Application Stress Tool
- HOW TO: Measure ASP.NET Responsiveness with the Web Application Stress Tool
- jMeter (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
Unit testing...
Writing Great Unit Tests: Best and Worst Practices (link)
Testing in Agile Methodologies
Traditional V-Model (Waterfall) looks like this
while testing, when using agile methodologies, looks more like this