I have been thinking for a long time to write something on interviews. I usually take an interview every week, if not more and most of the times the candidate loses out. More so because the interview process in my company is really comprehensive, 5+ interviews, and being a small company, in terms of number of employees, we really have to ensure that we are not making a bad call. But this is not my motivation behind this post. My real motivation is something else. There are more then few times, when I personally think that the candidate is losing out because he is not really aware on whats expected out of him. He either goes too deep and hence makes more mistakes, or remain too shallow making the interviewer feel that he doesn’t know the subject. This invariably happens because the candidate doesn’t know on what to focus upon. My goal is to give you a clue on where to focus.
My first source of these ten questions are the hundreds of interviews which I have taken over last many years. This source only constitutes a minor portion, the majority of this list has been drawn from the un-ending conversations we had after we interviewed a candidate. As I mentioned above that we usually have 5+ rounds of interviews and after this all the interviewers get together in a room and discuss. During this discussion everyone shares on what he asked and what did he feel about the response. These discussions have been a great ground of learning for me as you hear from at last 5-6 people on their experience with the candidate. So without any further ado, here my top ten questions for a software testing interview.
Q1 – What is ‘Software Testing’. What do you mean by ‘Validation’ and ‘Verification’.
Q2 – Write a program in ‘C’ to reverse a array of characters without using another array as a temporary variable.
Q3 – Write a ‘Test Plan’ for testing ‘Find’ Box of MS-Word.
Q4 – Test an object, say a bottle opener.
Q5 – Write a program to find a ‘Prime Number’.
Q6 – Design a traffic control system for a junction of four roads.
Q7 – What would be the factors which you will consider to decide whether you should fix a bug or defer the bug, late in the product release cycle.
Q8 – You sent a word document to your friend.MS Word crashes when he tries to open it on his machine. Isolate the bug.
Q9 – Explain a defect/bug lifecycle and write a bug report.
Q10 – Why you think, you can be a good tester.
The above is my list and probably if you ask me to compile the list after few months, some of the questions would change since this is not really a standard list. But if you have these covered, you are good.
I would not attempt to provide a copy-book answer but I would give you some thinking points, around each one of these. So here are the responses.
Q1 – What is ‘Software Testing’. What do you mean by ‘Validation’ and ‘Verification’.
Response – ‘Software Testing’ is an activity where we exercise the various features/tasks/actions within the software and record/observe the behavior to see if its doing what its is supposed to do. They key is to give a holistic and practical response and not really a text-book response. I would give a long response to this question by citing an example.
For verification and validation, read one of my earlier post on the same topic.
Q2 – Write a program in ‘C’ to reverse a array of characters without using another array as a temporary variable.
Response – Take the array. Go till the end and then start swapping first and last values. Do this till mid. A good tester would write this program on the board or on the white sheet given to him. It doesn’t matter whether you write this in C or in C# as long as you do it correcty. A bad tester would use in-built functions rather then using the basic loop structure and would probably not write the program and would prefer to talk through it. Dont do that.
Q3 – Write a ‘Test Plan’ for testing ‘Find’ Box of MS-Word.
Response – Read this and then think on how you would apply it to above problem.
Q4 – Test an object, say a bottle opener.
Response – Think about the object and then break that into multiple areas like ease of use, basic functioning, UI, durability etc. For each of these area think of cases. Start with the most relevant test case viz. opening a bottle and then go to less relevant one like ‘I would use it the wrong way’. A good tester should give at least 50 test-cases in 5 minutes.
Q5 – Write a program to find a ‘Prime Number’.
Response – I am sure you can do this. Once you write the program, think on optimizing it. The intent of asking a question in an interview is to check the ‘thought process’ and they are best done when you solving a problem for the first time. Incase you know the answer, say for the above que, then you should be thoroughly prepared on why your answer is the best answer and if there could be other ways to solve the same problem.
Q6 – Design a traffic control system for a junction of four roads.
Response – Take a white sheet and draw a junction. Put pillars for lights. Number the lights. For each light, identify the fields viz. On/Off, Seconds etc. Plan a pattern and so on.
Q7 – What would be the factors which you will consider to decide whether you should fix a bug or defer the bug, late in the product release cycle ?
Response – Risk of fix to codebase, need of fix, how many people it impacts, how much it impacts and for how long, how big is the change and how much additional testing need to happen.
Q8 – You send a word document to your friend.MS Word crashes when he tries to open it on his machine. Isolate the bug.
Response – Different version of MS Word, corruption while mailing, long document, MS Word itself is not correctly installed, different locale, font, object etc.
Q9 – Explain a defect/bug lifecycle and write a bug report.
Response – Read this.
Q10 – Why you think, you can be a good tester.
Response – Because you think you are. Eye for detail, persistence to observe something for hours and not get bored, hard working, can connect with users, great communication skills, great team skills, excellent problem solving skills and so on.
I know some of you would have more questions so add them to the list by writing a comment. There are no right or wrong answers, but there are definitely poor and good answers.
is programming knowledge is required for testing.
There are two types of testing, Manual and Automation testing. For manual testing programming skills not required but for automation it is required.
Yes Sangita. It is needed for bug isolation, understanding the fix so that you can test the impacted areas etc. It is not very hard to build as long as one is curious and has an interest.