Keyskills: embedded software firmware design hardware design UAT functional testing integration testing performance testing system testing testing tools test automation hardware firmware PCB risk analysis mitigation strategies FreeRtos I2C SPI RS232 Ethernet 4G RFID