Thursday, June 11, 2009

To test or not to test?

Having some experience in software development outsourcing company, I faced the problem with how our customers think of testing. Some of customers believe that testing is an added cost that can simply be cut. They believe that testing is simple and they can do it on their own. Others just keep insisting that developers write code without defects, so testers won't be needed.

Let's start from the first problem. Customers who come to us asking for development only and testing product themselves soon find themselves drowned in the information regarding quality. Not to say they rarely know what to test in the system because they simply do not know what boundary conditions or security testing means. Such projects usually result in mutual frustration. Customer is frustrated with quality of development work and quality of the resulting product (under-tested). Developers are frustrated with the project failure.

In order to avoid such problem, we have to warn customer of possible bad scenarios that may be caused by decision to buy only development services and to cut testing off.

The second bad scenario is when customer believes that testing is not needed, that developers can produce software without defects. Yes, they can. Developers can check they produced correct code but they have trouble making sure they implemented right thing. Developers are too biased toward inner code structure and design, so they have trouble seeing a big picture. Independent testers play role of end user advocate. They pretend they are users during the testing. I doubt developers can do it effectively because they have to think of inner design all the time.

So, having independent system testing is crucial for project success. The question in the title of this post has the meaning similar to the famous question posed by Shakespear. And it has the same crucial importance to the project as it was for Hamlet.

No comments:

Post a Comment