Formation Informatique | Formation Management
Formation Embedded Software Testing & Debugging : formation Mobilité, temps réel et embarqué avec Orsys
contact Orsys email Orsys English version Version Française Orsys Formation
   
 

Embedded Software Testing & Debugging



The primary goal of this course is to give the participant the skills necessary to systematically identify and correct defects in software for real-time computer systems developed with or without an RTOS. This course examines in details the activities involved in testing and debugging errors, flaws, faults and failures.

» Participants

Designers, developers, project managers, testers and quality engineers who have responsibility for implementing, testing and debugging the software for real-time and embedded computer systems.

» Pre-requisites

Course participants are expected to have practical knowledge of coding for real-time and embedded systems, plus some familiarity with at least one RTOS.

» Pedagogic Methods

This is a very practical, results-oriented course. Participants are asked to do detailed exercises on many of the techniques presented, so that the concepts and methods taught are reinforced and absorbed into the participant's arsenal of testing and debugging skills.
   
 

PROGRAM

» Embedded Testing Fundamentals

8 Principles of Testing Embedded Software.

Black Box Approaches: Equivalence Partitioning, Boundary Condition Testing.

White Box Approaches: Stubs and Drivers.

Code Coverage Levels.

High Payoff White, Gray, and Black Box Tests.

Unique Issues in Embedded Testing.

Real-Time Correctness: 'Liveness', Race Conditions.

Exercise
DO-178B "Modified Condition / Decision Coverage".


» Embedded Testing Techniques

Input Data Testing.

State Testing: State Transition Diagrams and Harel StateCharts.

Pairwise Testing and Orthogonal Arrays.

Fault Injection Testing.

Exercise
Backus-Naur Form of a Protocol. State Transitions of High-Availability Switchover. Pairwise Test Design.


» Life Cycle for Embedded Software Testing

Top-Down vs. Bottom-Up Integration: Embedded Testbeds.

System & Acceptance Testing.

Security Testing.

Stress Testing: Case Studies of NASA Spacecraft.

Cause-Effect Graphing & Decision Tables.

Independent Verification and Validation.

When to Stop Testing?

Exercise
Cause-Effect Test Design for a Temperature Display.


» Concepts for Debugging of Embedded / Real-Time Software

What is a Bug?

The Debugging "Cookbook".

9 Golden Guidelines for Debugging.

A Taxonomy of Real-Time / Embedded Bugs.

"Top 5" kinds of Real-Time Bugs that can be "project killers" or "product killers".

The "Top 5": Stack Overflows, Race Conditions, Deadlocks, Timing Problems, Re-entrancy Conditions.

Exercise
Bugs when Porting to New Hardware.


» Real-Time Debugging Tools and their Limitations

Where Traditional Debugging Techniques are Insufficient.

The Correctness Killers: Violations of Liveness.

Deadlock: 4 Ingredients, and 8 'Fixes'.

Task Lockouts and Starvations.

The 3 Classes of Real-Time Software Debuggers.

Cutting Edge Debuggers: Time-Reversal, SensorPoints.

Logic Analyzers.

Post-Mortem Debugging.

Exercise
Bug in a Real-Time Controller.


» Mindsets for Debugging Real-Time Software

Cause and Effect: The Scientific Method.

Assertions and Invariants.

Memory Allocation/De-allocation Bugs.

Proactive Debugging Techniques.


» Bugs in Multi-tasking and ISRs

Task Decomposition and Communication Defects.

Multi-tasking Debugging Techniques.

Interrupt Service Routine Design Defects.

RTOS Usage Defects.

Exercise
Bug in Interrupt Handling.


» Programming Bugs in Real-Time Software

C-Language Ambiguities and Coding Disciplines.

C-Language Code Analysis and Tools.

Static vs. Dynamic Code Analysis.

Metrics Predict Bugs.

Taxonomy of Embedded Testing Tools.

Update on Static Code Analysis.

The JPL "Power of 10" Coding Rules.

Exercise
C-Language Shenanigans. Cyclomatic Complexity.

 
     
 
     
   
  Formation Software for real-time  
 
Stage pratique - DIF
Réf :  EMB
Prix 2012 : Nous consulter
Durée : 3  jours
 
     
         
  Cliquer sur une session pour réserver  
  Prochaines sessions: Nous consulter


Paris,Lyon
Aix,Nantes
Rennes,Toulouse
Bordeaux,Bruxelles
Strasbourg,Lille
Genève,Sophia-antipolis
Luxembourg