The Internet of Things (IoT) is omnipresent. More and more hardware devices get connected and will collect and share huge amounts of data in the near future. This progress will lead to a digital and hyper-connected world. Though, in such growing networks of interconnected things, quality assurance (QA) will become a continuous challenge. Especially aspects like conformance, interoperability and security but also performance and robustness will require an increased attention from QA perspective.
1 of 43
Download to read offline
More Related Content
Functional and non-functional testing with IoT-Testware
1. Axel Rennoch, Alexander Kaiser, Sascha Hackel
Software Quality Days 2019
16. January 2019, Vienna, Austria
FUNCTIONAL AND NON-FUNCTIONAL TESTING WITH
IOT-TESTWARE
2. 2
IoT Testing
Challenges and scope
IoT test language: TTCN-3
Project IoT-T
Eclipse IoT-Testware
Standardization & Certification
Summary and outlook
AGENDA
3. 3
Mirai botnet, October 2016:
botnet using insecure configured IoT-devices (~100.000)
attack causes blackout and disruption
(e.g. Amazon, Netflix, Twitter, Github)
Wannacry, May 2017
ransomeware affecting the whole world (e.g. hospitals in the U.K.)
KRACK: Key Reinstallation Attack, October 2017
Replay attack on Wi-Fi Protected Access protocol
Spectre and Meltdown, January 2018
Spectre: vulnerability that allows observable side effects from mispredicted
speculative executions
Meltdown: hardware vulnerability that allows to read all memory
MOTIVATION FOR QUALITY
5. 5
IOT ARCHITECTURE
The Three Software Stacks Required for IoT Architectures, Eclipse IoT Working Group, September 2016
telemetry
commands
telemetry
commands
8. 8
After the acceptance and system tests there will be
a long operation phase => new test phase operation
LONG OPERATION LIFETIME
9. 9
INTEGRATION OF SEVERAL TESTING APPROACHES
IoT
Testing
Software
Testing
System
Testing
Security
Testing
Test
Automation
Protocol
Testing
10. 10
Less resources needed (time and money)
Avoid human mistakes due to manually testing
During test development and execution
Speed-up of regression tests and product time-to-market
TEST AUTOMATION
12. 12
Toolset (selection of available means)
Protocol tester/monitor (Eclipse Titan, Wireshark)
Test devices (RFID kit, Bluetooth test device)
GUI tester (Selenium, SikuliX, Chrome headless)
Web services tester (soapUI)
Public Testsuites (in development)
Application of a standardized notation
Abstract and platform-independent
TESTWARE
14. 14
TTCN-3 is the Testing and Test Control Notation
Internationally standardized testing language for formally defining test
scenarios.
Designed purely for testing
CHALLENGE TEST AUTOMATION
testcase Hello_Bob () {
p.send(How do you do?);
alt {
[]p.receive(Fine!);
{setverdict( pass )};
[else]
{setverdict( inconc )} //Bob asleep!
}
}
15. 15
One test technology for different tests
Distributed, platform-independent testing
Integrated graphical test development, documentation and analysis
Adaptable, open test environment
Areas of Testing
Conformance and functional testing
Interoperability and integration testing
Real-time, performance, load and stress testing
Security testing
Regression testing
Used for system and product qualification and certification
DESIGN PRINCIPLES OF TTCN-3
18. 18
Take available software and tools
and adding public testuites as a result of insights from IoT testing:
IOT-TESTWARE
https://projects.eclipse.org/projects/technology.iottestware
19. 19
Supplement to running and active Eclipse projects
Paho, OM2M, Titan
New project at Eclipse Foundation:
https://projects.eclipse.org/projects/technology.iottestware
TTCN-3 test suites for CoAP, MQTT, OPC-UA, LoRa?
Assured licenses for users
Currently in cooperation with
relayr GmbH, Ericsson, LAAS/CNRS, itemis AG, Spirent Communications,
Easy Global Market, Iskratel/Sintesio,
THE ECLIPSE PROJECT
20. 20
SAMPLE TESTSUITE STRUCTURE: MQTT
Broker as SUT
All mandatory message data fields
Regular and illegal data
(Fixed/variable header, payload)
Protocol features
General
Connect/disconnect (session)
Subscribe/unsubscribe
Immediate publish
Last will and Testament (LWT)
Heartbeats keepAlive values
Topic
Error handling
Client as SUT
21. 21
TEST DEVELOPMENT SAMPLE: MQTT
TESTZIEL-KATALOG
Test configurations
Test Suite Structure
Test purpose (catalogue)
Test implementation (TTCN-3)
24. 24
Vulnerability scanner:
in particular for web applications, zero-day/fuzzing, consideration of data
bases, traffic/network analyser, program code scanner
Penetration tester, e.g. SQL injection
Intrusion detection tools
Load test/Scalability
Further utilities: Model-based testing (UML testing profile) and risk modelling
TESTWARE: SECURITY
26. 26
Results for CoAP:
- Initially, 4421 fuzzed test data for CoAP were generated
- After sending the data to a (local) CoAP server, it crashed after date 1107
https://www.fokus.fraunhofer.de/de/sqc/security_testing
https://github.com/fraunhoferfokus/Fuzzino/blob/master/doc/Fuzzino_XML_Description.pdf
FUZZINO RESULTS AND RESOURCES
28. 28
息 Fraunhofer FOKUS
PERFORMANCE TESTING: WORKFLOW
(1)
(1) Create/choose State Machine
(2) Configure scenario
(3) Start Performance Test Suite
a. Observe RIoT verdicts
b. Observe IUT process with htop
(CPU / Mem. Usage)
(2)
Titan /
RIoT
SUT
htop
(3)
Load
29. 29
1. Control Logic
1. State Machine
2. Configuration Files
2. Applib
1. CoAP / MQTT / LwM2M / HTTP
2. Model-base Testing
3. CLL
1. Loadtest Framework
2. Functiontest Framework
3. Etc.
息 Fraunhofer FOKUS
RIOT UNDER THE HOOD
TTCN-3
&
Titan
User
space
30. 30
COAP STATE MACHINE: EXAMPLE
S0 S1
Start Traffic Case
CoAP rsp: 2.05: verdict = pass
CoAP rsp: not 2.05: verdict = fail
Timeout : verdict = fail
息 Fraunhofer FOKUS
S0: idle state
S1: initiated, test case execution of => CoAP GET /some/resource/123
31. 31
COAP STATE MACHINE: EXAMPLE CONT.
S0 S1
init
息 Fraunhofer FOKUS
S2: CoAP GET /some/resource/123 S4: CoAP DELETE /some/resource/123
S3: CoAP PUT /some/resource/123
S2
set verdict
!2.05
S3
!2.01
S4
2.02
2.05
2.01
rnd*
rnd*
Scenario:
randomly GET / PUT or DELETE
a single resource from multiple/
parallel CoAP Clients4.04
36. 36
New Working Group (TST) will develop
IoT test catalogues and specifications (not covered elsewhere)
The types of testing include
conformance, interoperability, security and performance testing
The initial technical focus will be:
IoT network layer
(communication protocols, node connectivity, edge computing etc.),
Basic security of IoT devices
ETSI TC MTS
38. 38
BASE SECURITY CERTIFICATION SCOPE
The Three Software Stacks Required for IoT Architectures, Eclipse IoT Working Group, September 2016
IoT-Testlab Scope
(basic security level
certification)
telemetry
commands
telemetry
commands
41. 41
Advanced testing technology:
Open source IoT-Testware (code):
External (open source) SW
Standardized IoT test purposes:
SUMMARY
42. 42
Adding more protocols to IoT-Testware
AMQP, LWM2M, 6LoWPAN, LPWAN
Increased security level for certification
Cooperation/liaisons (in preparation) with
ETSI TC Cyber/SmartM2M, oneM2M, OPC Foundation ...
OUTLOOK