Who Perform Functional Testing?

After the results of a previous poll focused on functional testing automation, I wondered if there was still a great divide between the worlds of development and functional testing. So I did this follow-up question to check who was performing the functional testing.

This poll was trying to determine who perform functional testing in your IT department? Here are the answers:

Software developers 15.4%
Specialized testers: 37.4%
Both 36.2%
Nobody: functional testing is done by end-users 11.0%

Participants: 409
Ending date: March 2010
Source: Methods & Tools Software Development Magazine

As you can see by the results, in close to 50% of the cases, developers are not involved in functional testing. Trying to find the causes of this situation, I asked for explanations in various testing and agile groups on LinkedIn. Two explanations came out:

Developers do not master functional testing tools. These are specialized tools that use mostly proprietary scripting languages, even if some new tools like the WatX family use the same programming language to create tests. Then validation needs to be independent from development. Following this rule, people said that the role of analyst and functional tester can be mixed in software development projects, but you cannot ask a developer to test its own work. This opinion has been expressed both in software testing and in agile focused groups.

This situation is representative of the mistrust relationships that often exists between development and testing teams in software development organizations and apparently Agile hasn’t’ changed it. If few people will deny the fact that the customer is the ultimate judge to validate an application, QA people often describes developers as careless people that are unable to challenge their own work and developers see QA people as disconnected from the project reality and slowing the delivery of applications to users.