Recently i have given Interview for Google Test Engineer position. It was a virtual Interview of total 5 rounds, 4 of them are technical rounds and 1 behavioral round.
First Round
Interview with Software Engineer, the question was Similar to Coin Change problem. https://leetcode.com/problems/coin-change/
I vaguely remember the question, It was something like this, You will be given two inputs N = Number of blocks and L = Length of queue, you will have blocks of sizes ranging from 1-8, we should return number of ways to fill the queue of length L with exact Number of blocks N.
ex: N=2, L =4
Total 3 ways : 1+3 , 3+1, 2+2
It was easy, i have given the recursive solution, memoization and DP solution.
Second Round
Questions about Testing and approach about how you would make a project testable. Ex: When you joined google, you are given a project Google Maps, imagine that it doesn't have even a single test, what is your approach to make it testable.
I think i did very well here, as i have experience working on same kind of situation at my work
Third Round
Interviewer asked me to write code for deleting the leaf nodes and printing them, you will be given the rootnode.
ex: 1
2 3
4 5 6 7
output: 4 5 2 6 7 3 1
Next he asked me to print level by level
https://leetcode.com/problems/binary-tree-level-order-traversal/
Did pretty good in this as well.
Fourth Round
I don't remember exactly, but it is something like this. Given two strings s1 = "234" s2= "312" return the string which can give the largest number.
using the S1, the largest number you could get is 432 and S2 gives you 321 , so we should return s1.
Interviewer was expecting some questions and i asked him. He was impressed with my questions. First i gave him solution with O(NlogN) by sorting the strings, reverse them and compare. He asked me for better optimized solution and i gave him with use of HashMaps in linear time.
Fifth Round
More about situation based, what would do in this scenario? etc..,
Still waiting for the Result.