IoT, embedded systems need a unique approach to testing
Jason Chandralal, general manager – product engineering services at Happiest Minds, says that IoT could be one of the biggest testing opportunities ever, but it needs to evolve and be automated to meet the unprecedented demands on it.
Gartner reckons that by 2020 there will be over 26 billion connected devices, some research houses predict even more. Whatever the number, these vast, networked arrays of smart devices will be enabled by a new-age Internet through the wide adoption of IPv6 and network virtualisation,and smarter and cheaper electronics, which will create many newtest opportunities.
IoT and embedded systems testing has much in common with application testing, but there are key differences. Traditional software testing focuses on black box and graphic user interfaces,and doesn’t necessarily consider the source code.
Embedded testing involves additional hardware elements, so testing focuses on this hardware, simulation, real-time behaviour, down time and grey box because the final results depend on these various aspects.
This means we need a new, more collaborative or integrated way to work with software ahead of deployment. The Internet of Things could restructure software development and releases into an intuitive cycle., which would need a new test strategy that should cover five areas:
- Testing IoT devices to capture metrics related to data values from data generated sensors onhome appliances,thermostats, lights, bulbs and door locks.
- Automated testing will be crucial to the large-scale adoption of IoT and associated mobile computing devices by enterprises,despite the challenges of automating test from end-to-end. It will provide significant benefits during the development cycle as the variety and number of devices grow.
- Simulation testing is essential as connectivity options increase – from Wi-Fi, BLE,3G, 4G, LoRa, Mi-Wi and more.
- Security testing is needed at both device level and forthe network as data passes across it. This involves an access mechanism, authentication, encryption techniques and more, all of which need validation.
- Interoperability testing is usually associated with hardware and software components, systems and platforms that enable machine-to-machine communication. This phase validates the devices andother elements in overall solution, which should be based on standards whenever possible.
- Real-time testing is performed in the environment the IoT devices will operate in. This could include exposing them to weather, site requirements and physical impact. This phase is sometimes referred to as factory acceptance testing, which involves calibration tests and standard-based certification.
From an end-to-end perspective, an IoT platform typically has four key components: sensors, application, network communication and a back-end database. Identifying the testing scope and coverage is the most important factor when formulating a comprehensive test strategy. The key considerations for each of the components of an IoT platform are:
- sensors and devices which cover hardware, embedded software, sensors’ response times and performance;
- network connectivity which governs the interaction between devices and the data transmission rate;
- applications which include functionality, users’ roles and access, multiple request handling and more.
- the database’s scope which ranges from the validation of data values, to data encryption and decryption, data’s consistency and integrity, performance and so on.
Developing an approach that delivers value
Agile IoT platforms are complex, scalable and high-performance systems that will need most testing strategies and practices to evolve, with embedded and software components closely integrated and grounded in automated testing.
Let’s look at the test approach that will focus on these different embedded test types and target areas, as well as compliment today’s mature application testing.
Different types of embedded testing
- Device characteristics represent a device’s data model when presented by various data types, which are saved to and fetched from the cloud, for validation of their integrity. Devices support different data types; the tests validate the data as well as ensuring that all the types are saved properly and retrieved from the cloud.
- Device interaction module uses protocols like UART (for universal asynchronous receiver-transmitter, which support the reliable data exchange between the microcontroller and the module)and needs testing to their specifications. The test verifies that data is transmitted in sequence and properly acknowledged.
- Output drive tests are normally at the edge and responsible for other high-power entities, achieved via ageneral purpose input/output interface.
- Firmware upgrade or downgrade is needed as customers might be using different releases of the firmware, so all upgrade-downgrade paths should be tested. This is normally done over that air – such as between device and cloud – against a pre-defined compatibility matrix, to ensure all the firmware releases that are covered can be updated.
- Central processor unit (CPU) and memory usage relates to real-time operating system and operating system tests to monitor the CPU and memory consumptions during different modes of operation.
- Power modes’ testing is always carried out on the edge where different types of power mode are available.
- Connectivity testing focuses on validating the wireless configuration for protocols like Bluetooth, BLE, Zigbee, 3G, 4G and LoRa, among others. For a Wi-Fi system, the test validates the wireless configuration, its ability to switch between access point and station modes, and its connections to various WLANs with different security settings. These standards change rapidly so it’s important to validate them.
IoT Testing is a critical success factor for deployment. Adopting a multi-layered and end-to-end approach provides great benefits that arise from the early detection of bugs, improved test cycles through automation, increased confidence levels and the required testing efficiency and sufficiency to ensure a smooth implementation. For more information, click here
The author of this blog is Jason Chandralal, general manager – product engineering services at Happiest Minds