What changes What makes IoT testing different from application testing?
An IoT system fails in places a pure software test never looks: the radio, the battery, the firmware version in the field, and the gap between a device that is offline and a device that is broken.
Testing a connected product means testing a distributed system whose edge nodes you do not control once they ship. A phone app can be updated tomorrow; a sensor in a warehouse may run the same firmware for years, on an intermittent link, powered by a battery you are not allowed to drain. So coverage has to include the states that only exist in the physical world — a device that reconnects after six hours offline and replays queued telemetry, a firmware rollback that leaves two versions of the same fleet talking to one backend, a gateway that loses power mid-update.
The protocol layer is its own discipline. MQTT, CoAP, BLE and cellular each fail differently under packet loss, and a backend that assumes ordered, exactly-once delivery will behave incorrectly the first time a device reconnects and floods it. We test the message path with those conditions applied deliberately rather than hoping the lab network reproduces them by accident.