Wednesday 19 June 2013

Developing & Delivering KnowHow

Home > Training > Embedded Software Testing

Embedded Software Testing

Length: 4 days

view dates and locations

This course is delivered in co-operation with Doulos' training partner Feabhas, who specialise in training courses for real-time embedded developers.

Course Description

Testing is a vital aspect of verifying the design of a software system. This is especially true in a real-time embedded environment, where the system may be subject to strict safety or reliability requirements.
Engineers require a good knowledge of how to test their code but in addition they must understand other techniques to find and eliminate errors earlier in the design lifecycle.
Supporting testing are the concepts of configuration and change management, vital skills required for managing industrial software.This course introduces the concepts and practice of testing real-time embedded software across the entire development lifecycle.
Attendees will also perform practical exercises in static analysis and dynamic software testing.

Overview

A four day course covering testing software in a real-time embedded environment. The course is a mixture of lectures and practical exercises.

Course Objective

  • To understand the need for testing in an embedded environment
  • To develop practical testing skills
  • To give an understanding of the test process and how it fits with the development lifecycle
  • To identify the different types of testing and where and when they should be used
  • To introduce good testing practices.

Pre-requisites

  • Attendees should have a practical working knowledge of the C language.

Delegates will learn:

  • How to perform static analysis of code
  • The creation of black box test harnesses
  • The creation of white box tests
  • An understanding of software metrics
  • How to create tests from Use Cases.

Who Should Attend?

This course is designed for software engineers working in an embedded, real-time environment. The target audience is engineers who have to create and also test their own code. This course is also highly beneficial for test engineers new to software testing in a real-time environment.

Course Materials

Delegate Handbook.

Related Courses

Course Workshop

At least a third of the course is devoted to practical exercises. Delegates will gain hands-on experience developing test harnesses, static analysis and software metric analysis.

Course Outline

Introduction to Testing:
  • Why test software?

Concepts of Testing:
  • Why exhaustive testing is not practicable
  • The concept of good test/bad tests
  • Categories and levels of test
  • Test cases and test procedures.

Test Harnesses:
  • Principles of test harnesses
  • Creating a test harness
  • Commercial test tools.

Dynamic Testing:
  • Structured basis testing
  • Equivalence Partitions
  • Boundary Value Analysis
  • Problems with polymorphic code.

Model-Based Testing:
  • Synthesis- versus Analysis- models
  • Generating tests from state diagrams.

Coverage Testing:
  • Why perform White-box tests?
  • Coverage measures – Statement, Branch, Condition, Path and others
  • Coverage testing tools.

Code Reviews:
  • Benefits of reviews
  • Review process
  • Checklists.

Static Analysis:
  • Static analysis concepts
  • The use of the compiler for static analysis
  • The implications of ISO C standard Annex F
  • Static analysis tools
  • Coding standards.

Metrics:
  • Why gather metrics?
  • Using metrics to manage and control testing
  • Metrics for test.

Software Integration:
  • Importance of planning your integration
  • Top-down vs Bottom-up Integration
  • Practical integration models.

Testing from Use Cases:
  • Introduction to use cases
  • Calculating test cases
  • Structured Basis testing for use cases
  • Generating test cases from use cases.

Regression Testing:
  • Purpose of regression tests
  • The build process.

Configuration Management:
  • Why is configuration management vital?
  • Configuration items
  • Version control
  • Change Management
  • CM tools.

Test Management:
  • The test process
  • How the test process relates to the software V-model
  • “Design by contract”
  • Test-driven development
  • Agile development processes.

This course is available now for team-based training at or near to your location. To find out more:

Complete an on-line form and a Doulos representative will get back to you »
Call Doulos to discuss your requirements »
Back to top
Privacy Policy Site Map Contact Us