Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
V2.2 | 2017-10-02
Jeffrey Fortin, Product Manager, Vector
Ensuring Software Code Quality for the IIoT
2
IoT Topology
DEVICESMACHINES
GATEWAYS Access and Service
Networks
Service Platform
andDomain
Applications
SENSORS
ACTUATORS
Edge Tier
3
Essential Design Tenants of IoT Systems
Monetize Hardware, Software, and Data Management
Actionable Analytics
Data Normalization
Discovery and Provisioning
Safety & Security as the Foundation – Hardware and Software
4
Lots of Consumer Grade Software will Suddenly be the Critical Path
Re-use of legacy code bases, cameras for autonomous driving
Cellular/Internet connectivity to cars for SOS
The Quantity of Embedded Software will Increase Exponentially
Autonomous software that integrates unobtrusively
Heart Function, Blood Sugar and Blood Pressure Monitoring
Intelligence will be Deployed to the End Points
IoT will not be a collection of dumb sensors
Complexity and Data Volumes are too large for central control
What Changes will IoT Bring to Software
5
Release cycles have shrunk from years to days to hours
We have to get these new features to customers
There is more competition than Ever
The barriers to entry for the software business are low
Trade-offs made during development
We Can Fix That in the Next Release …
Market Pressure
6
IEC 61508-3
Functional safety of electrical/electronic/programmable electronic safety-related systems
Part 3: Software requirements
IEC 61508-3
7
IEC 61508 Safety Integrity Levels (SIL)
8
IEC 61508 – Verification and Validation
Activities related to verification and validation of software
9
Faster Release Cycles
Few Bugs get into the Release Cycle
Release Cycle is Faster
Customer Get New Features Faster
Lower Life-Cycle Costs
Less Time Fixing Bugs
More Time Building New Product Features
Brand Loyalty
Fewer Bugs get to the Customer
Customers are Happier
The Business Case for a Deming Revolution
11
The Cost of Independent Processes
12
Independent Process Integrated Processes
All team Members contribute to Quality
Periodic Testing Continuous Testing
Quality is built-in at each stage of development
Long Feedback Loops Immediate Feedback
Bugs are Fixed when they are introduced
Improved Software Development Workflow
13
Make Tests Sharable
There cannot be flavors of tests owned by separate groups
Everyone has something to contribute
Remove Infrastructure Limitations
Virtualized Test Environments
Labor is your most expensive resource
Tests Must be Small and Easy to Run
Anyone can run any test at any time
Make Results Simple to Understand
Test pass or fail, no thinking needed
Failed tests must be debuggable
Make Testing Easy: Test Collaboration
14
Easy
Easy to build new tests
Easy to understand existing tests
Easy to run and interpret results
Easy to debug failing tests
Fast
Shorten the feedback loop
Automated
Push button testing with no manual setup or steps
Anyone can run any test at any time
How to Implement Continuous Testing
15
Test Each Component Before Integration
Test the published API of all components
Build Tests for APIs and Requirements
Test for Correctness
Verify that all requirements have tests
Ensure Tests are Complete
Use Code Coverage to verify adequate testing
Build In Quality
16
Without gates on behavior code bases become buggy
Software development should be engineering not art
With too many gates nothing gets done.
Build Documented workflows for each Activity
SCM commit, requires a clean static analysis report
Branch cannot go to QA until all existing tests pass
Quality Gates Must be Automated
Except for peer review – which still has great value
Implement Quality Gates
17
Tying it all together
DeliverValue
IIoT
Quality Process
Deming
Quality Standards
18 © 2017. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V6.14 | 2017-04-18
For more information about Vectorand our products please visit
www.vector.com