What Makes a Great Test Engineer?
Whether you’re recruiting from outside or growing from within, what characteristics make a great Test Engineer?
As well as the technical skills that you need you should also look for …
Play First
Great Test Engineers love to play with a new product.
- Really getting to know how it works and what it does.
- Trying out all of the corner cases.
- Discovering things about it that even its developer doesn’t know.
They are naturally inquisitive, taking a new product and exploring all of the possibilities, without any plan or direction.
Then Detail
Playing with a new product is essential, but once all the edges have been explored a great Test Engineer will focus in on the detail.
- Has every aspect of the product been tested?
- Can it all be repeated – exactly as before – time after time?
- What are the precise steps needed to show that bug?
It’s just as important to record and reproduce every step from that earlier inquisitive testing.
So great Test Engineers can switch from being creative and inquisitive to being step-by-step and detail focussed.
Friendly Rivalry
Great Test Engineers are friendly rivals with your developers:
- Test Engineers love finding bugs.
- Developers like their work to pass with a clean slate.
They each need to understand and respect the world of the other – making bug finding a competitive sport.
Development and Automation
Great Test Engineers are always on the lookout for ways to automate what they do. They know that this is needed to:
- take away the tedium,
- speed up the process,
- avoid human error.
So they will have enough development skills to select a test framework and build an automation environment – and these skills will also help cement the bond of rivalry with the developers.
Points to take away … a great Test Engineer …
- loves to play inquisitively with a new product,
- but is meticulous about recording the detail,
- is a friendly rival for developers,
- knows enough about development to automate test.
Apart from functional validation, as a Product Owner, I'm also interested in performance testing and that integration points are also tested (when appropriate). Providing the team the context of what we are developing helps in regards to how the solutions are designed, developed and tested. With testing mobiles, we often have to use software emulators as it's not always possible to get the physical phone ; hence in some cases, there is a place for using software based environments for testing.
A test engineer needs to be aware of the expected runtime environment. No good testing in a virtual environment if the runtime will be on real hardware!
Also the ability to distinguish good design from bad design in my experience. If a critical system operates in an unsafe way this needs to be flagged to designers