Your developers have been working on your latest software project. The hours have been long, the going a little rough, and they’re just about finished in more ways than one. Now it’s time to verify that the application works. Are you thinking of asking your developers to do a full test effort, along with fixing bugs and planning for the next phase of the project?
Here are three of the many reasons why your developers aren’t the best choices to test your completed software.
Outside of the development lead on a project, most developers are focusing on only a piece of the project or maybe a couple of pieces. They’ve been working at the most detailed level of the project – the code. Although some exposure to the application as a whole could be helpful to them, this isn’t where they “live.” The developers’ views of the project are detailed and isolated. They should unit test at this level. They should do code reviews at this level.
However, integration testing, black box testing, and even component testing requires a higher level view of the application. This is a different perspective of the project than the developer has. Frequently testers, at least at the beginning, may not even look at the code. Instead, they approach testing the application from the top-down, or the outside-in.
The testers also come to the testing with fresh perspectives, as they haven’t been working the past weeks or months on the application (although they are preparing tests and test environments weeks or months in advance). This freshness will almost always result in finding issues that have been overlooked, no matter how good the developer is.
2. Skill Set
The skill sets of the developer and tester are different. The developer is more analytical and creative. He’s been given a problem to solve with various ways and means to do it. It’s a puzzle with more than one answer, and he creates a solution.
The tester is more analytical and critical. She needs to look critically at the solution and find problems with it. Someone focused on testing, with the specific mindset of a tester, will find more bugs and help you achieve better results for the overall project.
The hard truth – most developers don’t want to do the testing. They’ve spent a lot of energy and time doing what they do well. When asked to do the testing, they either resent it or they simply don’t do such a great job.
A large portion of testing is redundant – running the same tests over and over, sometimes manually by keyed entry and mouse clicks. Many developers feel that kind of work is boring, but there are some people who genuinely enjoy it. As the developer looks forward to writing the code that works, the tester looks forward to finding the things that cause the code not to work.