Testing Real World Objects - Interview
I have a Junior QA interview coming up, and I was asked to learn the basics of Selenium. I have done this through free tutorials. I am fine with the Selenium concepts, but I was told I would be asked how I would test real-world objects at a conceptual level. I may be asked to test any random object in the world but it will probably be a simple one - bicycle, can opener, etc. I will not have to write code but explain it orally. I am not sure how to approach studying for this and how I should relate it to Selenium testing with Java. I can't find any resources that are similar to this, so I am asking here to be pointed in the right direction, or for a conceptual example for a real-world object.
The person in HR didn't really give me much info other than that I would be asked to explain how I would test real world objects without writing any code.
For example, let's say I'm asked how I would test a bicycle. The way I would answer this now not knowing what they're really looking for is this:
I would ask what the function of the bicycle is and how the various parts work together to achieve this functionality. I would deduce that the bicycle has 3 primary functions; be driven by a drive train through the rotation of the peddles by the user, and a braking mechanism operated by the user, and the swivel of the front wheel to turn.
Now that I have determined the primary functionality I would break these down into smaller problems to test. For the sake of this post, I will just go into the drive train. I would determine when the user pedals it will turn the chaining which it would pull the chain forward. This chain is connected to a chaining on the rear wheel which turns the wheel through the transfer of energy given from the chain. I would then ask is this the only way the user can use the bicycle? Is pedaling the only function that the client has access to? If, so I would test to make sure this function properly catches any invalid input or uses.
I would need to test each individual piece so as to build a larger test. I would check to see how the Pedal class calls the Chaining class. How do they interact? What would happen if I passed the argument "pedal_backwards" to the chaining? What kind of constraints with pedaling does the Chaining enforce? Next, I would check to see how the Chaining calls the Chain class. What constraints are there in this invocation? I would do the same for the rear chaining.
Basically I would break the object down into smaller problems and test how they interact with each other. This way changes to the code base will still be testable with my tests and will continue to work autonomously.
Am I on the right track? I wasn't really given much information just that an engineer would pick a real-world object and ask me to test it.
I think you have covered testing on different 'levels' in great detail however testing also includes on different 'types' as well.
One may think about security, performance, reliability & safety etc as important quality parameters to test an object on. I think you may easily relate it to an 'Bicycle' and come up with additional scenarios which may showcase to the interviewer how you look at it from different angels and covers all aspects of testing , not just the most obvious one('functionality') which might set you apart from other candidates.