Unit Testing Approaches for Embedded Systems C Developers
Course
In Carshalton
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
Start date
Reviews
Course programme
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
- 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
- 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
- Best Practices with C Unit testing and TDD in the embedded systems world
- Designing C code with testing in mind
- Automatic
- Thorough
- Repeatable
- Independent
- Professional
- Quality controlling tests
- Designing for testability
- Refactoring for Testing
- Defining and verifying Class Invariants
- Test Driven Design Strategies
- Testing for Invalid Parameters
- 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