Test connected applications across the full device–gateway–cloud path, including normal operation, intermittent connectivity, software updates, authentication, load, failover and observability.
This four-hour module develops practical capability in IoT and networked application testing, extending the lower-level protocol and embedded verification skills developed earlier in the programme into complete connected-system scenarios.
Participants design and execute an end-to-end IoT test scenario, validate OTA rollback and store-and-forward behaviour, then load test a networked service using Locust while checking failover, health checks, logs and metrics.
The module concludes with an IoT pipeline and reliability test report combining device-to-dashboard verification with load and failover evidence.
View the Full Software Testing & Verification Programme
What You Will Learn
Module 8 develops testing skills for connected systems whose behaviour depends on multiple layers working together.
Participants examine how a device communicates through a gateway into cloud or dashboard services, and how that system behaves during connectivity loss, software updates, authentication failures and increasing load.
Topics
- Device, gateway and cloud/dashboard layer testing; sensor calibration testing
- Over-the-air (OTA) update testing: delta vs full image, rollback on failure
- Device provisioning and credential rotation testing
- Intermittent connectivity and store-and-forward testing
- IoT security testing: device identity and encrypted channel validation
- Load testing with Locust; load, stress, spike and soak test types
- Failover and redundancy testing; load balancer health checks
- WebSocket testing under load and reconnection behaviour
- Observability testing: logs, metrics and distributed traces
- Chaos testing and basic failure injection
Lab 1: End-to-End IoT Test Scenario
Learning Objectives: Device/gateway/cloud testing, OTA updates, connectivity resilience
Description: Design and run an end-to-end test scenario for a sample sensor-to-dashboard IoT pipeline.
Tasks
- Define an end-to-end test scenario from sensor device to cloud dashboard.
- Test sensor reading accuracy against an expected tolerance.
- Test gateway local buffering behaviour during a simulated connectivity drop.
- Verify store-and-forward delivery once connectivity is restored.
- Simulate an OTA update, including one interrupted-update rollback case.
- Verify device identity/authentication rejects an unauthorised device.
Extension Tasks
- Test protocol translation correctness between the device-side and cloud-side protocols.
- Simulate a basic fleet of multiple devices reporting concurrently.
Topics Covered
Device/Gateway/Cloud Testing, OTA Updates, Connectivity Resilience
Open Source Recommendation
Eclipse Mosquitto as the MQTT broker and Eclipse Paho as the device-side client for the sample IoT pipeline.
Lab 2: Load & Reliability Testing of a Networked Service
Learning Objectives: Locust, load/stress/spike/soak testing, failover, observability testing
Description: Load test a sample networked service with Locust and validate its failover and observability behaviour.
Tasks
- Write a basic Locust load test defining realistic user behaviour.
- Run a load test and interpret response-time percentiles (p50/p95/p99).
- Run a stress test to identify the service’s breaking point.
- Simulate a node failure and validate load-balancer failover.
- Verify unhealthy nodes are removed from rotation via health checks.
- Validate that logs and metrics correctly reflect behaviour observed during the load test.
Extension Tasks
- Run a short soak test to detect a slow resource leak.
- Run one simple chaos experiment injecting latency into a dependency.
Topics Covered
Load Testing, Failover Testing, Observability Testing, Chaos Testing
Open Source Recommendation
Locust for load generation, and an open-source observability stack such as Prometheus and Grafana for metrics validation.
Module 8 Coverage Matrix
| Topic | Lab 1 | Lab 2 |
|---|---|---|
| Device/Gateway/Cloud Testing | ✓ | |
| OTA & Provisioning | ✓ | |
| Connectivity Resilience | ✓ | |
| Load & Stress Testing | ✓ | |
| Failover & Observability Testing | ✓ |
Module Project: IoT Pipeline and Reliability Test Report
IoT pipeline and reliability test report — end-to-end device-to-dashboard test scenario with an OTA rollback case, plus a Locust-based load and failover test report for the receiving service.
The project combines functional connectivity testing with operational reliability evidence.
Participants bring together:
Sensor / Device
↓
Gateway
↓
Connectivity & Buffering
↓
Cloud / Dashboard
↓
OTA & Identity Validation
↓
Load & Stress Testing
↓
Failover & Observability
↓
IoT Reliability Evidence
This provides a practical example of how verification expands when software operates as part of a connected system rather than as a standalone component.
From Embedded Systems to Connected Applications
Module 7 focuses on embedded and real-time behaviour close to the device and hardware interface.
Module 8 expands that verification boundary into the wider connected application.
The progression becomes:
Embedded Device
↓
Gateway
↓
Network Connectivity
↓
Cloud / Dashboard
↓
Operational Reliability
This keeps Module 8 clearly distinct from Module 7.
Module 7 asks:
Does the embedded software behave correctly and meet its timing expectations?
Module 8 asks:
Does the complete connected application continue to behave correctly across devices, gateways, networks and services?
Testing the Device–Gateway–Cloud Path
IoT testing often requires verification across several interacting layers.
The curriculum explicitly covers:
Device layer
Sensor readings, device identity and OTA behaviour.
Gateway layer
Local buffering, connectivity interruption and store-and-forward behaviour.
Cloud/dashboard layer
Delivery, service behaviour and end-to-end visibility.
The practical lab combines these layers into a single sensor-to-dashboard test scenario.
OTA Update and Rollback Testing
Software updates are a critical operational behaviour in connected devices.
Module 8 includes OTA testing concepts covering:
- Delta vs full images
- Interrupted updates
- Rollback on failure
The practical lab includes an interrupted-update rollback case, which should remain prominently visible because it gives the module a concrete reliability-testing outcome.
Do not expand this into a generic firmware-update course; keep it within the IoT testing context.
Connectivity Resilience and Store and Forward Testing
Connected devices cannot always assume continuous network availability.
Participants therefore simulate a connectivity drop and test:
- Gateway local buffering
- Behaviour while connectivity is unavailable
- Store-and-forward delivery after restoration
This gives the module a useful resilience-testing dimension beyond simple functional connectivity.
Load, Stress, Spike and Soak Testing
The curriculum introduces four distinct load-related testing concepts:
- Load testing
- Stress testing
- Spike testing
- Soak testing
The practical lab uses Locust for load generation and asks participants to interpret response-time percentiles including p50, p95 and p99.
It also includes stress testing to identify the service’s breaking point and a soak-test extension for detecting slow resource leaks.
Keep these terms visible because they provide strong technical semantic coverage without needing artificial keyword repetition.
Failover and Health-Check Testing
Networked services must continue to operate when individual nodes fail.
Module 8 therefore includes:
- Node-failure simulation
- Load-balancer failover
- Health checks
- Removal of unhealthy nodes from rotation
This extends testing from application correctness into service reliability and resilience.
Observability Testing
The curriculum treats observability as something that should itself be validated.
Participants verify that:
- Logs
- Metrics
- Distributed traces
reflect behaviour observed during testing.
The practical laboratory specifically asks participants to check whether logs and metrics correctly represent what happened during the load test.
This is a useful distinction from merely installing monitoring tools.
Chaos Testing and Failure Injection
Module 8 also introduces basic failure-injection thinking.
An extension exercise introduces a simple chaos experiment by injecting latency into a dependency.
How Module 8 Connects With Other Modules
Module 6: Integration & Protocol-Level Testing
Module 6 develops protocol, network, middleware and data-integration verification.
Module 8 expands those ideas into complete connected applications and operational reliability.
Module 7: Embedded & Real-Time Systems Testing
Module 7 focuses on embedded firmware, QEMU, FreeRTOS, WCET and interrupt behaviour.
Module 8 takes the next step outward into device–gateway–cloud testing.
Module 11: Test Automation & CI/CD Integration
The test automation module later provides the broader pipeline framework for integrating automated test execution and quality gates.
Frequently Asked Questions
What does the IoT & Networking Applications Testing module cover?
The module covers device/gateway/cloud testing, OTA updates, provisioning, connectivity resilience, IoT security, load testing, failover, observability and basic chaos testing.
Does the module cover end-to-end IoT testing?
Yes. Participants design and run an end-to-end test scenario from a sensor device through a gateway to a cloud dashboard.
Is OTA update testing included?
Yes. The curriculum includes OTA update testing and an interrupted-update rollback scenario.
Does the module test connectivity loss?
Yes. Participants simulate connectivity loss, verify gateway buffering and test store-and-forward delivery after connectivity is restored.
Which MQTT tools are used?
The curriculum recommends Eclipse Mosquitto as the MQTT broker and Eclipse Paho as the device-side client for the sample IoT pipeline.
Is load testing included?
Yes. Participants use Locust to execute load and stress tests and interpret response-time percentiles including p50, p95 and p99.
Does the module cover stress and soak testing?
Yes. Stress, spike and soak testing are included as test types, while the practical work includes a stress test and a short soak-test extension.
Is failover testing included?
Yes. Participants simulate a node failure, validate load-balancer failover and verify that unhealthy nodes are removed from rotation through health checks.
What does observability testing mean in this module?
Participants validate that logs and metrics correctly reflect the behaviour observed during load and reliability testing. Distributed traces are also included in the module topics.
Does this module cover chaos testing?
Yes, at an introductory level. An extension task introduces a simple chaos experiment that injects latency into a dependency.
What is the Module 8 project?
The project is an IoT Pipeline and Reliability Test Report, combining a device-to-dashboard scenario with OTA rollback testing and a Locust-based load and failover report.
