5 Things a Beginner Developer (and Tester) Should Know About Software Testing

Whole conference room went silent and after waiting for couple of minutes, I could not keep patience and had to repeat my question:

Who would like to join testing team?

We had 20 trainees on board and they were being trained on different aspects of software projects. Leads and managers from different departments like business analysis, development, testing, and sales held meetings with those trainees to provide the knowledge and to help them in understanding what and how actual software project looks like. As a test lead, I explained basic testing aspects and importance of testing life cycle to those new faces.

With excitement, when I dropped the question, I never thought of pin drop silence. No one was ready to join testing. I sighed sadly and picked up another track to educate this future generation of IT.

I tweaked my question to know the reasons behind declining software testing as a profession

Why don’t you want to join software testing?

Answers were interesting (and practical at some point)

What You Will Learn:

Why software testing exists?

Ok, so it was time to train those new people about why software testing exists and what should they know about it if they are going to join software development.

How I changed Their Mind?

Here I am just trying to brief out what we have discussed during that afternoon and how I was successful to change mind of at least 20 people, while clearing perception about software testing.

#1. Software testing is not waste of time:

What happens when you have guest at home and you hurriedly prepare lemonade for them and serve them? When the guests leave the glasses unfinished, you feel that something must have gone wrong and when you taste the lemonade, OMG……it felt stinky. You wish you would have spent only 10 seconds more and taste the lemonade before serving.

While being in hurry to deliver the project in a timeline, companies/management/anyone gets ready to compromise on the time for testing because the perception about software testing really takes long time than required is still alive in people’s mind. But isn’t the time taken for testing is worth compared to the customer’s call at midnight to let you know that he is going to cancel the next assignment as the current assignment delivered exhibited more than 5 critical bugs within first two hours of internal usage. Bang!!

#2. Software testing is mandatory:

Software testing is an unavoidable part of software development lifecycle. The way



Software testing helps software in being better. I don’t think I need to spend even single more word to explain it.

#3. Unit testing is a complete responsibility of developer:

When you develop something, you need to check it before asking someone else to check it. The way

The developer is completely responsible to test his/her own code before sending it to testers. Testers are there to help you in improving quality of code and ultimately the product and not to find out the silliest mistakes you did while writing the code.

In addition to that, never assume that quality is the responsibility of testers only.

In today’s agile world, developers and testers are supposed to take combined responsibility of product quality. Developers are expected to do pair testing with tester and provide insight about what and why something can go wrong and encourage tester to generate testing ideas based upon your insights.

#4. Developers and testers are equal:

Any work/project is a combined effort of team and that means each and every person is equally important. If a developer thinks that he is doing best and should be given more importance because he is creating something from scratch, re-consideration of the thought is required. Yes, developer develops something from scratch but he is not able to complete the creation without help of tester.

Tester provides a user’s eye for the product. A well-trained and experienced tester can show the loopholes in the product, a developer can never think off. A tester brings in new ideas about how product should be, how it should look at particular instance, how it should work, how it can behave and how it can crash.

The way it is important to add salt to every recipe to make them eatable, testing is needed to make the product deliverable.

And therefore, developers and testers are equally important. They are the left and right hands of body called project.

#5. Tester should be involved from first day of project:

As a developer, you should never make that mistake to assume that there is no need for a tester to become aware about something like requirement analysis, logic applied while writing code, change requests by client, feedbacks by client etc.

Tester is a stack holder and should be involved from kick-off the project. Initial involvement of testing team gives them confidence, constant discussions nurtures an understanding between development and testing team, kind help boosts their spirit to do something better, demands for suggestions make them feel worth.

Conclusion:

Tester is not to test a module / product only, he is there to help in delivering best product, he is there to help by suggesting some proven ideas about users’ expectations, he is there to let you know that how frequently your beloved code gets crashed……and you, as a developer, really need it, aren’t you?

About the author: This awesome post is written by STH team member Bhumika Mehta. She is a project lead, carrying 7+ years of software testing experience. She is totally into testing and loves to test everything exists.

As usual, waiting for your feedback, opinion, and suggestions about the topic.