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.
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.
- Understand requirements clearly. Speak up if something is not clear. Do not start any work unless it is not clear. Take your time.
- After coding is done, test it based on the requirements. Pretend you are the user, not the developer.
- Make sure to enter incorrect data and skip data.
- Pretend your users are illiterates and they do not know what to do with your application.
- Try to team up with your testing team and use some approaches what they use that does not consume too much time.
- 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.

SubashPosted Sep 20, 2016, 6:37 AM
Very useful article sir
Anil Kumar MurmuPosted Jan 18, 2016, 7:48 AM
Also developer should implement log(configurable) to track the defect easily during development stage. I helps to test the application in more efficient way and does not kill more time in investigating in the bug.
Anil Kumar MurmuPosted Jan 18, 2016, 7:46 AM
I like the article very much and would like to share my experience as well. Developer should focus more in handling exceptions. End user should not see Yellow screen of Death while using your application.
Kalyankumar RavichandranPosted Jul 23, 2015, 12:34 AM
All the points you have represented are really awesome and to be very frank dead-line is the only reason i consider where developers do not go beyond the tasks given.
Vithal WadjePosted Dec 11, 2014, 9:58 PM
yes agree..thanks for sharing
Guest UserPosted Dec 11, 2014, 6:40 PM
in my organization, we don't have QA team. So as developers we're responsible to test our code.
Sam HobbsPosted Jun 1, 2011, 11:56 PM
Most of my experience with large data-processing departments was back before the IBM PC existed. I was at Lockheed when the first IBM PC with Microsoft Basic was initially released. During my last year at Lockheed I was a member of the Quality Assurance team. We (the QA team) did not do testing. Testing was always done by the programmers. I agree that it is good for a QA team of some type to do some testing but I also agree that the programmer should find all errors they can. I also think that there should be strong reliance on test data and test cases. The user should provide test cases and do acceptance testing too. In most cases test cases should be a permanent part of the test data.
Dipal ChoksiPosted May 25, 2011, 5:58 PM
You bet!! Test-driven concepts of Extreme Programming methodology are a testament to the importance of testing in the development process.. Test-driven development: http://en.wikipedia.org/wiki/Test-driven_development
Suthish NairPosted May 25, 2011, 1:29 AM
This is must or role needed to be handled by every programmers/developers... i started my career as a Tester and also a certified tester (but it was too long back, almost 6 years now :)). But, its helping me lot for my day-to-day development. Thanks Mahesh, for this good blog.
Mahesh ChandPosted May 24, 2011, 2:19 PM
Fixed the links. Thanks for noticing.
javed khanPosted May 24, 2011, 12:55 PM
On Clicking the topics link redirect to the same page..:)