Not sure how many will agree, every one of us is a born tester. Any idea how? We all consume products and services and while doing so we evaluate, test, validate and review the product or service. There is a tester in all of us who will come to the fore when our money is at stake, when we buy or when we consume something. Developers are no different in that they have the tester in them as well. But often the tester doesn't come and take the center stage while developing for the customer.
We typically see many small software development projects that require one or 2 developers. What's the need for a separate, full time tester when the project doesn't involve the integration of many modules/components or the integration of the efforts of a big number of developers? Assume you are hiring the services of a electrician on a hourly basis. If he brings a tester with him to test the work he did and asks you to pay for the hours of the tester, will you pay for that? Then why do we do the same to the hapless customer?
Does that mean we need to fire most of the testers? Certainly not. The answer lies in the professional ethics of developers and testers
I am a developer
- Software development is my profession just like doctors and attorneys.
- I am not entitled to basic testing services by other professional testers, for the modules that I am developing
- But I am entitled to their services for better understanding of the customer perspectives, validating the functionalities and product reviews
- I will write unit tests, whether my manager asks me or not, whether my customer pays me or not
- I am not done until I write the unit tests that cover all the meaningful portions of my code
- 85% of the bugs in my modules were found by me
- When I test my module, the tester inside me takes complete charge of me.
- When I test my module, I become a ruthless tester and an over ambitious customer- it's very difficult to tackle the tester and satisfy the customer
- I fail miserably in my profession whenever a third person points out direct bugs in my code
I am a tester
- Software testing is my profession just like doctors and attorneys
- I am the guardian of my customer's interests within my organization
- I am the whistle blower for my customer, even if it goes against my organization
- It's not my organization that pays my salary but my customer
- If the module released for testing contains numerous direct bugs then I don't raise them as bugs in the bug tracker, but I refuse and stop testing the module. I return it to the developer. I don't believe in wasting time
- When I test any module, the customer inside me takes complete charge of me
- When I test any module, I review the product just like the end user. I am not looking for bugs since I am confident of the quality of the module released for testing
- I find only 12~13% of total bugs but that are very crucial, could not have been found out by the developer and provide the cutting edge and competitiveness to my customer
By now you would have got answer to the question whether we need to fire the testers. How can you fire the representatives of your customer? How can you fire the customer-designates? How can you dismiss your customer's interests?
So a tester is always needed, not to find the unit testing bugs but to be a part of the customer's business, to increase the returns to the customer, to provide the competitive edge to the customer and most importantly to take care of the customers of your customer