This document discusses different types of testing objects including hardware, firmware, and software. Hardware testing focuses on mechanics and safety but has limits on the number of test cycles. Firmware testing depends on hardware and requires specific low-level knowledge. Software testing is more automatable using commercial tools and can be approached generically with potential AI support. All testing requires an independent environment, both automated and manual tests, and a test strategy. While the sky is the limit for software testing, hardware and firmware testing come with more challenges and limitations.