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)

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