Recently, I was asked to interview a young engineer for a web developer position in place of a colleague who had a last minute change in schedule. This led to a freewheeling interview, wherein I was slowly getting impressed by the candidate until I asked this:
“How do you perform unit tests?”
To my surprise, he replied, “I don’t.”
Still undeterred, I returned to the same question several times just to check if the candidate misinterpreted the question or was performing unit testing under some other name. But, finally, I had to arrive at the conclusion that he indeed didn’t do it.
Later on, I was informed that he performs ‘positive’ testing (which I would rather refer to as ‘selective’ testing).
Interviewing another candidate, a couple of weeks later, I had the same déjà vu experience.
These two instances brought a bigger question to my mind: Where does Unit Testing stand today in project development and particularly web-based application development?
Over the next few months, I was more attentive to the quality of unit testing on any website I happened to use. In no time, I was forced to conclude that:
- Stub testing / Testing with dummy data is a no-no for new-age developers
- In today’s WYSIWYG (What-You-See-Is-What-You-Get) age, developers only test what can be seen and not what has a chance of occurrence
Let me share a few samples of what I found:
Pic 1: This e-commerce site threw error, giving me finest details of where it needs a fix
Pic 2 : This e-commerce site gave me unparsed xml as description
Pic 3: Another e-commerce site encouraged me to buy null for a null price
Pic 4: This site was looking for file “—“. However, “–“ was put in the first place to indicate that no file is available
Pic 5: This site was asking me to check their log file (and probably provide a fix?)
While I can go on illustrating similar examples, the point is these appalling errors found their way right into the production debut. Inadvertently, these developers are putting the company’s brand at the mercy of providence.
I think the WYSIWYG concept was intended to give developers a vantage point of seeing their output from the user’s perspective. I doubt if the developers understand that they miss out many wrong data /error scenarios by limiting themselves to I-show-what-I-get- from-backend testing. A little dose of negative testing by these developers can go a long way in avoiding such embarrassing goof-ups.