Product companies like Amazon/ Google/ Microsoft/ Adobe etc have rigorous interview processes not just for hiring development engineers but other roles like Test engineers, support engineers and others. In this article, let us look at the skills that these companies look for , while hiring test engineers/ QAE’s/ SDET’s.
Computer Science Basics : A test engineer should not be a just a black box tester. He/she should know the program internals, Operating system internals, database queries to find bugs that cannot be usually found by black-box testers. You got to read a lot about OS, Computer Networks, SQL Queries
Programming/ Scripting: A Tester who knows programming can think of the logic that the programmer might have used to code the algorithm and accordingly write test inputs that can break the code. So, companies expect that you are able to write and understand code in at-least any one language
Debugging: This is one important skill-set that every test engineer should have. Debugging is not code debugging but finding out why a particular entity/ machine/ activity isn’t happening. For Example, if your computer is not switching on – what might be the reasons for it? Power failure, batter failure, button failure and many more .A test engineer should be able to debug every issue one by one and find the exact reason.
Critical thinking for Test enumeration: A test engineer should be able to provide a wide range of inputs based on the functionality of he application that can easily break the code . For example, consider a function that shuffles the input elements and returns the output. A normal tester would just test it with a couple of usual inputs like set of integers , negative numbers, varied input sizes etc. An exceptional test input that can break the logic is providing an input where all the elements are same except one and changing the position of that item starting from first and moving it towards end. This test case would pass only if every element in the input is shuffled and may probably break the code.
Strong Communication skills: A Test engineer interacts with Developers, development managers, test managers, product managers to communicate the bugs, project status etc. A test engineer should have decent communication skills to report bugs and statuses that can be understood by all the stakeholders.