An emulating universal serial bus, USB, hardware device that emulates a host side of a USB connection or a plurality of physical USB peripheral devices in a computing system, the emulating USB hardware device comprising: a memory to store configuration descriptors; a USB to serial interface chip; and one or more microcontrollers including a first and a second microcontroller with USB support, wherein the first microcontroller is programmable with software to emulate a first physical USB peripheral device and the second microcontroller is programmable with software to emulate a host side of a USB connection of the first physical USB peripheral device, wherein the first and second microcontrollers are further configured to receive a software command to set a control signal that dictates the state of a USB switching device, connecting either a computing device under test or the second microcontroller of the emulating USB hardware device to the first physical USB peripheral device, wherein the second microcontroller is connected via a serial bus to a test executor computing device running an emulation process and wherein the second microcontroller is further programmable to receive, from the test executor computing device, software that: configures USB host mode bus signals, initiates USB frames on the serial bus, indicates a connection status of the first physical USB peripheral device to the emulation process running on the test executor computing device, and when the control signal dictates that the state of the USB switching device is a connection of the second microcontroller of the emulating USB hardware device to the first physical USB peripheral device, relays packets between the first physical USB peripheral device and the emulation process. a memory to store configuration descriptors; a USB to serial interface chip; and one or more microcontrollers including a first and a second microcontroller with USB support, wherein the first microcontroller is programmable with software to emulate a first physical USB peripheral device and the second microcontroller is programmable with software to emulate a host side of a USB connection of the first physical USB peripheral device, wherein the first and second microcontrollers are further configured to receive a software command to set a control signal that dictates the state of a USB switching device, connecting either a computing device under test or the second microcontroller of the emulating USB hardware device to the first physical USB peripheral device, wherein the second microcontroller is connected via a serial bus to a test executor computing device running an emulation process and wherein the second microcontroller is further programmable to receive, from the test executor computing device, software that: configures USB host mode bus signals, initiates USB frames on the serial bus, indicates a connection status of the first physical USB peripheral device to the emulation process running on the test executor computing device, and when the control signal dictates that the state of the USB switching device is a connection of the second microcontroller of the emulating USB hardware device to the first physical USB peripheral device, relays packets between the first physical USB peripheral device and the emulation process. configures USB host mode bus signals, initiates USB frames on the serial bus, indicates a connection status of the first physical USB peripheral device to the emulation process running on the test executor computing device, and when the control signal dictates that the state of the USB switching device is a connection of the second microcontroller of the emulating USB hardware device to the first physical USB peripheral device, relays packets between the first physical USB peripheral device and the emulation process.