hardware in the loop testing meaning