Embedded M2M Software Testing Slide 1
Neratec Overview WLAN Products Industrial Wireless LAN Stations WLAN Outdoor Access Points WLAN Module high performance, long distance M2M/IoT and Wireless Sensor Systems Customized Product Development Manufacturing & Delivery Life Cycle Management & Support Engineering Projects Feasibility Studies, System Design, Specification Electronic Product Development Verification, Validation & Certification Testing Project management Slide 2
Focus Focus Linux Class Devices Embedded Firmware development Long term support Headless devices Not Focus Low cost HW Raspberry PI customization Consumer product life cycle User maintains the device Embedded Devices based on Slide 3
Agenda Requirements for M2M Testing Yocto test concepts Solution Summary Slide 4
Requirements for M2M Testing Slide 5
Example IoT Topology User Data View Stock? UI, Data Processing M2M Administrator Management View M2M Server Internet Slide 6
System Test IoT Server Result Test Runner M2M Server Test Data Internet Devices Slide 7
Unit Test Unit Test Unit IoT Server Unit Test Unit Unit Test M2M Server Unit Internet Devices Slide 8
Develop and Test Data IoT Test IoT API Net M2M Test M2M Net Device (Embedded Device, Server) Device Server Services Unit Device Testing Server Testing Service Testing Unit Testing Slide 9
M2M Test Infrastructure Requirements Agile (~2 weeks per sprint) Automated testing Test environment per developer (pre testing) Easy to archive, deploy and use Defined dependencies to personal PC installations Contentious integration Hierarchic Testing Full featured test environment for continuous integration Specific test setups Slide 10
Yocto test concepts Virtual Device ptest Image Test Slide 11
native tools Requirements: Archive and Deploy Build Dependencies: Tools are provided by yocto (native receipes) Exception: ASSUME_PROVIDED Example: Ubuntu sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib buildessential chrpath socat libsdl1.2-dev xterm Use native tools for test implementation Reproducible Test Setup Slide 12
Virtual Device Requirements: early stable, easy to deploy... Run Firmware in virtual machine (QEMU) Virtual device SW = real device SW No root access needed on host (pseudo) Eclipse integration for C/C++, (Python) Virtual device is used by Yocto Autobuilder (Continuous Integration) Slide 13
ptest Cross Unit Test Requirements: Automated, different environments... Cross compile and run Unit Tests on target device Run tests on real Hardware Run tests on Embedded Linux Features: Autotools integration./configure && make && make test && make install Cross compile make test Deploy to firmware image (ptest packages) ptest-runner runs all tests Slide 14
Image tests Requirements: Automated... Image test runner runs on host (not on target devices as ptest-runner) Tests are executed on the device (virtual or physical) Support for image deployment to phys. devices Slide 15
Overview: Yocto testing Physical Device Host my-tool my-tool-ptest my-tool my-tool-ptest Yocto Linux Embedded Device Yocto Linux Virtual Device (Qemu) my-tool image test Native Tools (e.g. cross-compiler, qemu, libraries...) NAT Host Linux Distribution (e.g. Ubuntu, Fedora...) Internet Slide 16
M2M with Yocto Device Testing IoT IoT Test Virtual M2M M2M Test Physical Devices Dev. Test M2M / IoT Virtual Server Device Service Unit Serv. Test Unit Test Virtual Network Slide 17
Solution Slide 18
Patching Yocto for M2M Host IoT M2M my-tool my-tool-ptest Enterprise Linux Virtual Server (Qemu) Yocto Linux Virtual Device (Qemu) my-tool image test Native Tools my-tool my-tool-ptest Yocto Linux Virtual Device (Qemu) NAT Host Linux Distribution Internet Slide 19
Possible Test Coverage Neratec: M2M/IoT Network Neratec IoT M2M IoT Test M2M Test Yocto < 1.7 virtual device Yocto 1.7 physical device Yocto < 1.7 1.7 Devices Service Unit Serv. Test Unit Test Dev. Test Slide 20
Example: Image Test Image Test Runner Result Virtual M2M/IoT Server Virtual Bridge Test Data (Virtual) Device Slide 21
Example: ptest Virtual M2M/IoT Server ptest runner Unit Verify IoT API Test Data Virtual Bridge Virtual Device Slide 22
Test Categories 1)Virtual Device 2)Virtual Device + M2M / IoT 3)Physical Device 4)Physical Device + M2M / IoT Test Runner auto skip Slide 23
Summary Slide 24
Yocto based M2M Test Infrastructure Hierarchic network Topology requires hierarchic Test-System Agile work flow requires automated testing Virtualization (Device, Network and Server) is great High coverage for network related tests Early stable (before HW is available) Yocto native tools Easy to share and archive Test-Runner skips test requiring real HW Different test environments are supported Virtual Device + Virtual Server Physical Device + Virtual Server... Neratec patch set for Yocto has been published Slide 25
Thank you! Adrian Freihofer Senior SW Engineer Direct: +41 55 253 20 83 adrian.freihofer@neratec.com Slide 26