So… they asked me to write a small 500-word article about something. The “something” itself is way too big for a 500-word article and I have to pick another one. Just wasted 30 words. Hooray! I will pick an easy one “Should developers be testers too?”. The real question is actually if developers can be testers and not if they should but the title will help us with the SEO, though.
Create and destroy
Let’s start by mentioning our main difference. A developer creates, a tester tends to destroy. Yes, it sounds funny but you have to level the ground if you want to build a house. Got it? Soooo say bye bye to your beloved plants. We have to verify if the framework is stable and safe. We have to check if the server is going to work just fine and it’s not going to crash after the first 100 visitors. I have to check those things by pushing their limits. Well, quality is indeed a habit but destruction is the devil in the details.
1+1 = 2
It’s a tester thing to not trust anything or anyone. Not even your own code. Easy question. One plus one equals to? Two! Obviously. But does it? Are you sure? What if I tell you that there is nothing obvious? If you think that something is going to work because d’ah it’s obvious, believe me, this is where the issue is going to be (Hello Murphy!). You don’t believe me? 3 – 2.99 = ? obviously 0.01. But if you run the following script
$a = '3';
$b = '-2.99';
echo ($a + $b);
The answer you are going to get is “0.0099999999999998”. Obviously? Wink!
Follow the rules
As I said, a developer creates and wants to protect. They use to simplify complex cases. So they are not going to push anything but follow the main path. The path that a simple and well-behaved user is going to follow. That’s healthy and I’m a bit jealous. I’m jealous because my job demand to be a psychopath. I’m a well-educated young guy with more than the basic knowledge of using a computer, I’m an old guy who have clicked a few buttons, I’m a demanding guy who wants to do something fast and move on, I’m a guy who is going to verify his account after 2 weeks. Developer will go from A to B and then to C. Humans tend to do things complicated and we have to cover that part.
From my tiny experience as a dev, I can say that developing is a simple and pure line with branches. It’s clean. Sometimes, it can be complicated but you know where the start is and where the finish line is. Something that is pure experience, is noticing the details. That’s the part a tester steps in. Even if everything seems to be working just fine, a tester is the one who you will hear to say “something is strange here, something doesn’t fit”.
Time = Money
There are three main groups. Managers, developers and testers. The following table shows how much and each one of them cares about the time and the money a business needs to build an application.
It’s a common subject of disagreement between testers and developers, the time they need to fix or implement something. A tester doesn’t care for anything but quality. After a while it’s part of your “existence”, it become a way of living. Testers are closer to the end-user and as we all know the end- user doesn’t care about money nor time. They just want a quality product.
Would you judge your own kids/code? Maybe, but would you be objective? I rest my case.
You guessed it. A developer should not and can’t be a tester. You just wasted your time reading an article about something obvious. Well, no! I know that 99% of the internet community is not going to agree with me (I don’t care), but I do believe that a developer can be a tester but in very specific cases. In small teams and depending the size of the application, a developer can be tester. If it’s cost-efficient?
Plot twist? After all I’m a psychopath. I’m a tester.