Why Every Developer Should be a Good Tester

The testing phase is one of the most vital parts of software development. Recently, I wrote a blog Top 10 Things Every Developer MUST Do  that talked about some of the important things developers should focus on. In this article, I am going to focus on testing and why testing is one of the most important part of coders.

I have seen repeatedly, a developer a.k.a. programmer a.k.a. coder assumes that testing is not a part of his day-to-day job. His job is just write code and passes it to the testing team and the testing team will find all the bugs and problems in the code.

Correct?

WRONG! ABSOLUTELY WRONG!

If you are working in my team, you are so fired (kicked out of the team) right away my friend. The very first responsibility of a developer is to properly test his/her code. This not only involves unit and integration testing but also user testing. YES, you heard me right. User acceptance testing may not be a part of your project plan but this is something is inclusive as a coder.  

One of the biggest problems with developers is "the assumptions". Developers assume that the user is at the same level as they are. Developers assume that user is going to enter the correct and expected data. Developers assume that the user knows how the application works. They assume that user is going to read all the instructions on a user interface. This is where they are wrong?

The best advice I can give you is that do not assume that your users are going to enter correct data all the time. You need to play devil's advocate and try all possible non-correct scenarios. Try to put numbers in text fields and text in a date control. Try breaking down the system.

If you want to impress your manager or client, you need to make sure you build error-free (bug-free) software. First thing that annoys a user or client is errors in the software, particularly, common errors that are very obvious. For example, if I have a date field on a user interface and it allows me to enter text in it or I have a field define to read user name it allows me to enter a number in it.

If I am your Project Manager and you do not pay attention to these minor details, that's it. I would not consider you a good developer. I don't care how complex application and algorithms you can write, how complex solutions you can build, I would not care. My first focus is to build something right and error free.  I do not care if you take extra time to test it but do it. Do it and do it right.

Here are important points of testing.

  1. Understand requirements clearly. Speak up if something is not clear. Do not start any work unless it is not clear. Take your time.
  2. After coding is done, test it based on the requirements. Pretend you are the user, not the developer.
  3. Make sure to enter incorrect data and skip data.
  4. Pretend your users are illiterates and they do not know what to do with your application.
  5. Try to team up with your testing team and use some approaches what they use that does not consume too much time.
  6. Pass it to the test team and get their feedback. Once you get the feedback, pay attention to it. Do not ignore and come with excuse that I did not know or it was not in the requirements.

Please do share your experience and add points what you think are important for developers.

Here are some more related topics in this series.

 


Next Recommended Reading Top 10 Things Every Developer Must Do