Passing the technical question in your first interview for a software test engineer / QA position
It wasn’t easy to get this interview. Most job descriptions requires 2-3 year of experience, but how do you get 2-3 years of experience if no one gives you a chance? Still, you didn’t give up. You worked hard on your CV, you asked your friends to review them. You talked to anyone that could help you in all possible social networks. And finally it happened: you are invited to your first ever QA position interview with a testing team leader! That is so great.
But after a few hours, possibly minutes, the happiness levels starts to drop. You understand that there is the small issue of successfully passing the interview.
Now you start to hear little voices in your head asking: am I good enough? Will I pass the interview? And yes, how good are the other millions of candidates that compete with me for this position? Probably better than me, the one without any experience…
Of course you don’t know them, but the ‘unknown’ might scare you even more… Actually there might be less than a million, sometimes even a few.
Here is what you might do: try to relax. Easy to say, hard to implement, I know, I know! Just do something you like for a little while , like a hobbie, and then start planning. The mere thought that you are initiating action already contributes to your success.
First, as you know, you were not invited to the interview with the knowledge that you have experience. So you don’t have to display your exceptional proven skills and knowledge, as an experienced tester would. In some ways you have it easier than a candidate to a position that requires experience. Since the expectations in some levels are low (as it should be for an inexperienced) you can only use this to excel.
Now that you are relaxed, build a plan.
I would do is divided the plan to:
If you didn’t do it so far, start doing it now: try to learn the basic concepts of the software testing profession. You should know what are the test documents. What are Agile testing and what is Waterfall. What are regressions and progressions. How a bug should be reported etc. If you will not know the basics, the interviewer, even if is with good will, will start thinking how hard it will be to train you from level zero. On the other hand she will be impressed that you came prepared. You will not be expected to say what is the best approach for bug opening in Agile. Don’t lose your focus by going too deep.
Learn about the company and its products as much as you can. Even if you could say the names of the company products while the interviewer is telling you about the company, you will earn credit.
Most likely you will get a challenge, a product with a question of how to test it. And this is the purpose of this article: how to pass the technical question.
The technical question:
Since many times the question, especially for someone with no experience, is about a product we all know but never thought of testing (easy to ask a novice about a product she knows), this will be my example: an ATM machine.
So the question is: How would you test an ATM machine?
Sometimes the interviewer will leave you in the room to return later, sometimes he will remain and expect you to explain the process of your thinking, to understand how you think. This is what I would do because this is what matters for an inexperienced person.
Here I will try not to answer the question, but explain the way it should be approached, so that it will give you a more general idea of how to answer those questions.
By the way, ask for paper and a pen. This will be easier for you to plan and will show that you are a serious person.
If you will remember the test zone categories below in the interview, you already have a much bigger chance to pass the interview!
You can tell the interviewer what will be your test zones.
Test zone 1: What is the purpose of the product and how it achieves it?
Sure, to withdraw local currency. Is that all? It is also designed to deposit cash and cheques, withdraw foreign currency, display information about your account.
I will talk about the first and more usual purpose. You can too tell the interviewer that this is what you will do, and if she wants you can go to the other purposes after this one. I don't think they will ask for that. Here it is important to show that we see the full picture.
So step one will be to state what is the purpose of the product.
What does it do to reach the purpose?
Tip: always think about the steps you do when you use the product!
Step two would be to break the process of using the product into steps and write them down.
** I am not an ATM expert and I am not trying to give a full answer to the ATM challenge, just trying to suggest how you might answer.
Step 1: The system identifies you.
Step 2: For withdrawal and other purposes, it needs to get your current account data.
Step 3: It registers the amount you want to withdraw .
Step 4: Checks if you have enough money comparing to your account balance.
Step 5: Checks if the amount you entered in step 2 is in accordance with the cash it has in the system (for example in duplicates of 20s).
Step 6: If the steps below passed it hands you the money, if not… Well, you would have expected an explanation.
Step 7: Update the balance if needed.
Now that you have the steps, think how to test each and every one of them. This is called functional tests.
Think of positive and negative test per step:
Step 1: The system identifies you. - What if it is by credit card and the card is OK? (positive) - How many card companies it supports? Check them all probably. (positive) - What if the card expired? (Negative) - What if the card can’t be read? Is there another way? (negative)
Step 2: - If the the account is OK we should get the account data. (positive) - What if it can’t get the data? Is there a workaround? (negative)
And so on and so forth.
Notice: So far you don’t have to be technical or test expert for that. You do have to be analytical - and this is what the interviewer wants to see.
Test zone 2: User experience, AKA UX:
After you verified the functionality of the ATM works, check that:
the process was easy,
Has Help etc.
Even think of the ATM height - is it usable for all the users?
Test zone 3: the technical side of the system.
Yes, with less experience it is not easy, but even here some common sense might help.
What you know for sure?
You know the ATM needs to check who you are and your account balance. How does he has the data? Keeps it locally?
Well, when I was young it did, so when I was broke and couldn’t withdraw as much as needed I used to do an ATMs round and withdraw little from a few ATM machines. But today it will not work.
Anyway, you don’t have to know the truth, you just got to give a good explanation.
So you could say:
There are servers with all the customer's data and the clients - ATMs connect to the server for identification, data an update.
That is enough to find issues. Again, think you are now at the ATM in the process of withdrawing and something doesn't’ work. What is it?
Maybe the connection to the server is bad? We should test that.
What if I get approval to withdraw and then connection dies while the money is received - will the server get updated anyway or did I just win free money because the ATM didn’t assured the transaction was done?
Do the ATM connect with each other? What if one lose connection?
There are of course more tests.
Test Zone 4: Data integrity
Since it is so important issue (money, you know) how can we make sure the data is protected from corruption and loss? You may not have answers, but you were aware of the question!
You might say that the data should be backed up in real-time. (the how to do it is not something you must know at that moment).
The tests are:
Remove one hard drive in the server. ATM,
Stop in the middle of a transaction.
Test Zone 5: Performance
Again - it is logical issue and no need to be experienced QA for this:
What if from some reason many people want to withdraw at once? (e.g. rumors that the bank is going bankrupt and we must take out as much money as we can).
will the server work well and will not ‘lose’ transactions, and
will the users at the ATM will not encounter slowness.
Test Zone 6: Security
This is usually the first answer I get. So yes,
Is the communication secured?
In case of thieves do I get an alert? Test it.
Do the system has mechanism to see unusual activities? Test it.
I know they have a camera in each ATM. What should happen if the camera will not function?
Of course the verification of your code is important (correct code, a close code number) etc.
OK, but if I get another question?
Now if the question is how to test amazon.com site - use the same logic: check the functionality, UX, System-wise, Data integrity, performance and security.
If it is a notepad, cool. Maybe security is not applicable but its functionality, UX, System (here the notepad vs the operating system), data integrity (that it saves files with all data even if there are non regular chars or long text), performance (bulk of data).