Unit Testing Approaches for Embedded Systems C Developers

Course

In Carshalton

£ 1,500 + VAT

Description

  • Type

    Course

  • Location

    Carshalton

  • Duration

    4 Days

At the end of the course student will know. how to set about constructing a C testing framework. how to evaluate a C testing framework. how to setup, integrate and work with CUnit. how to setup, integrate and work with CppUnit and adapt it to C Unit Framework Testing. how to design, implement and carry out C Unit tests, especially in an embedded systems development. Suitable for: The course is aimed at C developers (including developers of Computer Game software), quality-assurance engineers, and project managers. Students are expected to have a good understanding of C and embedded systems programming, as well as some familiarity with testing concepts (e.g. unit, integration, functional, and load testing)

Facilities

Location

Start date

Carshalton (Surrey)
See map
1-3 Fairlands House, North Street, SM5 2HW

Start date

On request

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Course programme

Overview
The course provides a thorough introduction to unit testing concepts and strategies. It describes techniques and strategies for implementing a Unit Testing framework in C and provides an overview of some open source C Unit Testing frameworks. It covers the concepts underlying unit testing, the requirements and characteristics of good unit testing frameworks and the way these concepts are realised in some practical frameworks. The hands on exercises will familiarise students with test-driven development as a methodology for implementing highly reliable C code.

Course Benefits
At the end of the course student will know
  • how to set about constructing a C testing framework
  • how to evaluate a C testing framework
  • how to setup, integrate and work with CUnit
  • how to setup, integrate and work with CppUnit and adapt it to C Unit Framework Testing
  • how to design, implement and carry out C Unit tests, especially in an embedded systems development context
  • using code coverage tools as part of a C Unit testing framework
  • follow best practices in testing and software development
  • improve their effectiveness in software testing and the quality of the code they are developing

Key Delivery
Instructor led in-house training with a great deal of hands-on practice.

Course Contents
Overview of C and Embedded Systems and Unit Testing
  • Basic concepts
  • Requirements of a good testing framework
  • Overview of implementing unit testing framework like systems using the C macro pre-processor and
  • Overview of CUnit
  • Overview of CppUnit and how to use it for C code unit testing
  • Overview of the MISRA C guidelines and how to use MISRA C Guideling conformance code testing tools as part of a testing framework
What to test for - Right BICEP
  • Right results
  • Boundary Conditions - CORRECT
    • Conformance
    • Ordering
    • Range
    • Reference
    • Existence
    • Cardinality
    • Time
  • Inverse Relationships - checking for
  • Cross checking
  • Error conditions - forcing of
  • Preformance characteristics - met
Structuring tests, automating tests, reporting results
  • Composing Test Cases into Test Suites
  • Combining Test Suites
  • Organizing Tests and Test Suites
  • Executing Tests
  • Showing Test Results
  • Reporting (XML and HTML)
  • Testing with Stubs
  • Mock Modules
  • Mock Devices
  • In Circuit Emulators
  • Hardware Simulators
Test-Driven Development (TDD)
  • Best Practices with C Unit testing and TDD in the embedded systems world
  • Designing C code with testing in mind
Characteristics of Good Tests
  • Automatic
  • Thorough
  • Repeatable
  • Independent
  • Professional
  • Quality controlling tests
Testing and Design
  • Designing for testability
  • Refactoring for Testing
  • Defining and verifying Class Invariants
  • Test Driven Design Strategies
  • Testing for Invalid Parameters
Testing and Project Planning and Management
  • Where to place the test code
  • Testing etiquette
  • Frequency of testing
  • Testing when working with legacy code
  • Testing and Code Reviews

Unit Testing Approaches for Embedded Systems C Developers

£ 1,500 + VAT