How do you approach testing software when you don't have immediate access to the physical hardware it controls?