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.
- 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.