HomeContact

Main Menu

  • Home
  • Contact Us
  • About
  • James' Blog

The Software Renaissance

  • Agile Renaissance
  • Embedded Renaissance

Services

  • Coaching
  • Training
  • Public Training
  • Workshops
  • Testimonials
  • Customer Feedback

Resources

  • Papers and Presentations
  • CppUTest
  • James' Blog

Who's Online

None

Member Login






Forgot login?
Register

Designed by:
SiteGround web hosting Joomla Templates
Test Driven Development for Embedded C PDF Print E-mail
Test Driven Development is a powerful technique for building embedded software. This hands-on course teaches the practice of Test Driven Development in the challenging environment of C. In this course you will learn how TDD helps overcome some of the challenges embedded developers face including: unpredictable schedules, poor quality, and the problems that follow. In addition, embedded software developers must conquer the realities of concurrent hardware/software development, scarce target hardware availability, long download times, high deployment costs, as well as the challenges of testing embedded C.

TDD leads to better designs, towards more object oriented approaches to C. In this call you will also learn some of the design principles that can help to guide engineers to better designs.

Most of you have existing legacy code. In this class you will learn valuable techniques for dealing with legacy code. You will see incremental approaches to getting control of the legacy code with tests making improvements to the design less risky.

Test-Driven Development, a key agile practice, helps software developers improve schedule predictability and product quality and can do the same for embedded developers. TDD is valuable even outside of agile development methods.

This course describes the problems addressed by TDD, as well as the additional challenges and benefits of applying it to embedded software. You will learn the test driven techniques as well as specific design approaches to make your C code to testable today, maintainable tomorrow, and ready for a long useful life.

See what attendees say about our classes.

Course Specifics

Length
  • 3 days
Audience
  • Embedded Software Developers
  • Technical team leaders
  • Managers that want to know the technology they manage
Prerequisites
  • Embedded C programming experience
Related Courses
  • For embedded software engineers.
  • For non-embedded software engineers.
Course Outline
  • Test Driven Development
    • Why Test Driven Development?
    • What is Test Driven Development?
    • The Microcycle
    • Exercise
  • Special Considerations for Embedded
    • Leveraging the Development System
    • Risks of Development System Unit Testing
    • Embedded TDD Cycle
    • Hardware/Platform Independence
  • Testing with Printed Output
    • Why is inspecting printed output manually is a loosing proposition?
    • Spying on the printed output
    • Using a dynamic spy
    • Exercise
  • TDD with Collaborating Modules
    • Design for Test
    • Separating Responsibilities
    • Creating a Test List
    • Spying
    • Faking the Clock
    • Working Incrementally
    • Exercise
  • Test Fakes, Stubs, Doubles, Mocks
    • Spy
    • Link time fake
    • Exercise
  • Breaking dependencies dynamically
    • Dynamic fake
    • Exercise
  • Managing Hardware Dependencies
    • Self-Verifying Mock Objects
    • Exercise
  • Intro to Refactoring
    • Test Smells, Code Smells
    • Critical Skills
    • Incremental Improvement
    • Exercise
  • Object Oriented Design for Embedded Software
    • Why OO for Embedded Software?
    • Hardware Abstraction
    • OO Design Model
    • UML
    • Design Exercise
    • Agile Design
      • Rules of Simple Design
      • SOLID Design Principles
      • DRY Principle
      • Mind Your Own Business
      • Architectural Vision
      • The Big Picture
      • Vertical Slices
      • From Specific to General
      • Evolution
    • Exercise - Design Envisioning and Refinement
  • Working with Legacy C
    • Boy Scout Rule
    • Incremental Improvement
    • Legacy Change Algorithm
    • Seams
    • The first test, the next test
    • Sprouting
    • Convert Direct Function Call to Indirect Call
    • Library substitution
    • Generating Mocks
    • Encapsulate Data Structure; Exercise
    • Extract and Override; Exercise
    • Crash to Pass Algorithm
    • Learning Tests
    • Legacy Code Test Addition Strategy
    • TDD and Bug Fixes; Exercise
  • Wrap up Discussion
This course will get you and your team well on the way to applying TDD for Embedded C in your development efforts.
< Prev   Next >
Last Updated on Monday, 02 January 2012 14:45
 

See Attendee Feedback

  • Test-Driven Development
  • Legacy Code Workshop
  • Instructor
  • Other

Valid XHTML and CSS.

renaissancesoftware.net, Powered by Joomla! and designed by SiteGround web hosting