Course: Embedded and Internet of Things (IoT) Testing with C · 2 days [D2]

Course: Embedded and Internet of Things (IoT) Testing with C · 2 days [D2]

from 519.00

Learn how to create tests for embedded systems written in C.

Duration: 2 days / 4 evenings / 14 hours
Audience: Developers, Development Leads & Managers, Test Developers, Scrum Masters
Certification: Upon training completion
Courseware licensing: 3 months or perpetual

Learning cases and programming katas:
 Fit development unit testing in Agile Scrum and Kanban life cycles
 Analyze defect types, injection points and root causes
 Target test coverage using control flow test coverage base types
 Use control flow diagrams and data flow testing to generate test cases
 Calculate McCabe's cyclometric complexity and determine # of test cases
 Select and configure unit testing frameworks
 Use static analysis to find defects
 Use mocking and write code with dependency injection

- View price at top after selecting Format / Public event
- For zone-dependent pricing, please select your zone
- For discounts and terms, please view pricing details

Public Event:
Add to cart & Register

1. Testing Concepts

  • Software quality and test objectives
  • Defects.faults and failures
  • What are good tests?
  • Embedded and IoT testing principles
  • Testing challenges and limitations

2. Testing Process

  • Code coverage, quality risks and time
  • Defect injections and defect detection
  • Testing philosophies
  • The need for test design and test cases
  • Detection approaches.static, dynamic, model-based and more
  • Testing pipeline
  • Collaborative test ownership

3. Embedded/IoT & White-Box Testing Strategies

  • Maximising embedded and white-box testing ROI
  • Information sources for improving testing ROI
  • Defining test targets.code coverage, behavior, timing, and more
  • Coverage criteria.statement, branch, path and more
  • McCabe's cyclometic complexity
  • Selecting the most effective detection approach
  • Evaluating embedded testing effectiveness
  • When to stop testing?

4. Static testing

  • Technical principles underlying static code analysis
  • Using sets of rules for diagnosing standards and practices
  • Using static analysis for searching errors
  • Code inspection techniques
  • Static analysis tools for C, C++ and C#
  • Tools for calculating metrics
  • Visual Studio static code analysis in depth

5. Dynamic Unit Testing

  • Unit testing targets.logic versus structure
  • Source code analysis for dynamic testing
  • Control flow testing & test coverage types
  • Data flow testing
  • Path testing techniques
  • Statement coverge, branch coverage, decision coverage
  • Condition coverage, MC/DC, multiple condition coverage
  • Selecting and isolating logical test granularity
  • Testing logic through the API
  • Testing error conditions
  • Unit test frameworks - a first glance
  • Coverage testing tools - a first glance

6. Dynamic Integration Testing

  • Integration testing targets and techniques
  • What code-based integration tests do and do not detect
  • Choosing the combinations of test items
  • Testing combined granules
  • Testing control flow and data flow in interfaces
  • Using test doubles and mocks

7. Model-Based Testing for Embedded Systems

  • Overview of the Model-Based Testing approach
  • Structure and behavior models
  • Creation of MBT test harnesses
  • Generation of test suites from the model
  • MBT tools for test case generation

8. Alternative Approaches

  • Defining software testing attacks
  • Attacking software dependencies
  • Attacking design
  • Attacking implementation
  • Attacking security
  • Exploratory testing

9. Regression Testing

  • Causes of regressions
  • How to build effective regression tests suites
  • When to execute regression tests
  • Test automation for regression testing

10. Embedded & White-Box Testing Tools In-Depth

  • Static analysis tools
  • Test harnesses and test drivers
  • Unit and integration test frameworks
  • Mocking frameworks
  • Dependency injection frameworks
  • Other tools for test automation
  • Test productivity tools


Our live online and self-paced formats permits anybody to participate regardless of your location.

In addition, we offer in-house training in any location worldwide.

Venues for public training are located in the following cities:
Seattle, San Francisco, Denver, Chicago, Boston, New York, Austin (USA) · Vancouver, Toronto, Ottawa, Montreal, Halifax (Canada) · Mexico City, Monterrey (Mexico) · Rio de Janeiro, Sao Paulo, Brasilia (Brazil) · Buenos Aires (Argentina) · Santiago (Chile) · Vienna, Montevideo (Uruguay) · Stockholm, Gothenburg (Sweden) · Copenhagen (Denmark) · Dublin, Cork (Ireland) · London, Manchester, Glasgow, Brighton (UK) · Paris, Lille, Toulouse, Lyon, Montpellier, Bordeaux, Nice (France) · Amsterdam, Rotterdam, Utrecht, Eindhoven (Netherlands) · Brussels, Antwerp (Belgium) · Berlin, Munich, Frankfurt, Hamburg (Germany) · Helsinki (Finland) · Tallinn (Estonia) · Vilnius (Lithuania) · Riga (Latvia) · Zurich, Geneva (Switzerland) · Vienna, Innsbruck (Austria) · Prague (Czech Republic) · Budapest (Hungary) · Warsaw, Kraków (Poland) · Milan, Rome (Italy) · Barcelona, Madrid, Valencia, Málaga (Spain) · Lisbon, Porto (Portugal) · Moscow, St Petersburg, Novosibirsk (Russian Federation) · Casablanca (Morocco) · Tunis (Tunisia) · Cape Town, Johannesburg, Durban (South Africa) · Nairobi (Kenya) · Lagos (Nigeria) · Tel Aviv (Israel) · Beirut (Lebanon) · Riyadh, Jeddah (Saudi Arabia) · Abu Dhabi, Dubai (UAE) · Doha (Quatar) · Delhi, Pune, Mumbai, Hyderabad, Bengaluru, Chennai (India) · Bangkok (Thailand) · Kuala Lumpur (Malaysia) · Singapore · Jakarta (Indonesia) · Ho Chi Minh City (Vietnam) · Seoul (South Korea) · Beijing, Shanghai (China) · Hong Kong · Tokyo, Osaka (Japan) · Sydney, Melbourne, Brisbane, Perth (Australia) · Auckland, Wellington (New Zealand)