Mô tả

Welcome (Back) to Dr. Surly’s School for Mad Scientists!

Unit Testing and Test Driven Development help smart, capable developers like you create robust, reliable, and maintainable software that lets you sleep soundly at night. In this course you will apply these concepts to embedded code and system software in C.

This material builds on the foundation of our first course, Unit Testing & Other Embedded Software Catalysts. If you’ve taken our first course or you’re already familiar with TDD and xUnit frameworks, this course is a great next step.


Dr. Surly’s School for Mad Scientists

When you’re trying to take over the world you learn two things quite quickly. First, you end up building lots of technology like death rays and such that requires high quality firmware. Second, minions, climate-altering satellites, and lairs are expensive. While Dr. Surly’s lab has become quite proficient at software design and testing, supplemental revenue to fund all manner of villainy is a necessary evil. It’s all part of the standard world domination business model, and you get to benefit.


In This Course You Will:

  • Learn interaction-based testing with stubbing and mocking in a real-world project.

  • Use new tools! CMock & Ceedling complement the C testing tool Unity.

  • Iteratively refactor already working code with the support of your test suite.

  • See techniques and patterns for unit testing tricky code.

  • Try strategies for prioritizing and planning an embedded project.

  • Encounter big idea philosophies for process, design, and testing.

  • Connect with a supportive community.


Learn by Doing—Build a Real-World Project from Start to Finish

The end result of this course is an actual, functional application that can run on real hardware. No simplistic exercises or toy examples. The hardware isn’t necessary for this course, but if you do have the hardware, it will serve as final proof that your code works. And, the final deliverable might just be handy for other projects too.

The project is the mechanism for learning in this course. We’ll grow the project from requirements using a structured, iterative process much as you would in a real project. We teach development, testing, design, and process skills as we build this project, showing where they are applicable in real life.

You will learn key concepts first from us demonstrating the skills by example, then through guided use, and finally as homework assignments that allow you to practice the skill on your own as you implement your project.


This Course Includes:

  • 0x01 (1) Large project from requirements to finished product

  • 0x19 (25) Code-centered lectures

  • 0x0D (13) Code-exercises contributing to the main project

  • 0x1F (31) Helpful resource-packed supplemental primers, guides, and how-to’s

  • 0x195 (405) Minutes of thorough video lectures

  • Links, quizzes, helpful hints, and more


Have questions? Please write us at… tdd@throwtheswitch.org

Join us in our mission to take over the world (with quality embedded software)!

Bạn sẽ học được gì

Develop an entire embedded project in C using Test Driven Development

Interaction-based testing with stubbing and mocking

Wield the open source tools CMock and Ceedling like an expert

Refactoring working code with testing support

Strategies and techniques for Unit Testing tricky code

Strategies for prioritizing and planning an embedded project

Yêu cầu

  • A basic proficiency in C programming.
  • Some experience with Embedded or Systems Programming. If you’ve ever dealt with a register or bit mask, you’re our kind of people!
  • Experience with basic unit testing, particularly in C using Unity. If that’s not you, yet, try our first course: ‘Unit Testing & Other Embedded Software Catalysts’.
  • There are tools required, but they’re all free. We’ve packaged them for easy installation, and we’ll guide you through their set up.

Nội dung khoá học

6 sections

Getting Started

8 lectures
Welcome
02:58
How This Course Works
03:18
Preparing for World Domination
10:44
A Little Help From Our Friends—Setting Up Your Development Environment
04:16
Log All The Bits
03:02
Preparing for the Meeting
00:46
Iteration 0—The Requirements Review Meeting
09:01
Iteration 0—Getting Ready to Start
01:12

Iteration 1: Base Platform

11 lectures
The First Iteration
17:25
Iteration 1: Homework 1: LED Init
00:40
Forget What Your Mama Said. Mocking Is Just Fine.
41:11
Mocks
6 questions
How is it doing that? Under the hood.
17:59
Architecting 101
12:46
Feature #2—Let’s Get Digital
20:32
Iteration 1: Homework 2: LED Toggle & Digital Get
00:34
CMock Under the Hood [Optional]
00:22
Blinken Lights!
09:46
Why Start Where? (Iteration 1 Wrapup)
08:24

Iteration 2: Getting Analog

10 lectures
The Second Iteration
02:09
Iteration 2: Homework 1: Analog Spike
00:28
Conducting Our Analog
25:06
Let's Play "Model Conductor or Hardware"
5 questions
Reuse—The Rare Unicorn
13:31
Iteration 2: Homework 2: Testing Filtered Analog Values
00:21
Why Mock? A Recap.
05:02
Filtering Correctly—Refactoring Is So Much Fun!
09:51
Iteration 2: Homework 3: Finish Timer Subsystem
00:17
Checking Our Progress (Iteration 2 Recap)
00:50

Iteration 3: At Your Command

15 lectures
The Third Iteration
01:29
HCH—A Pattern by Any Other Name…
20:23
Iteration 3: Homework 1: Version Command
00:15
Return Thru Pointer & ExpectAnyArgs
3 questions
Reuse—The Magical Unicorn
27:19
Iteration 3: Homework 2: Handling Errors & Packing Messages
00:26
It’s a Wrap—Using the Adapter Pattern
18:56
Iteration 3: Homework 3: Finish Usb Driver
00:04
A Little More About the Adapter Pattern
00:03
Look, We Can System Test! [optional]
00:35
It’s About Time—Our Second Command Handler
07:37
Command Wrangling—Managing Complexity with Refactoring
12:22
Pack It Up—Returning Variable Data
02:23
Iteration 3: Homework 4: Results Command
00:37
Check Our Progress—Iteration 3 Recap
00:39

Iteration 4: The Wonderful Thing About Triggers

15 lectures
The Fourth Iteration
03:58
Public Service Announcement
00:13
Gotta Catch ’em All (Refactoring Our Capture System)
08:23
Iteration 4: Homework 1: Capture Refactoring
00:06
What Would You Expect?
3 questions
Code Aspirin—Reducing Future Pain
13:10
Armed—Triggers Are Wonderful Things
08:57
Iteration 4: Homework 2: An Arm and a Leg
00:09
Babel Fish—Translations Are Wonderful
20:22
Iteration 4: Homework 3: Getting Triggered
00:16
Configuration—Our Parameter System
23:13
Using and Configuring :treat_as:
00:35
Param Set—Being Observant
13:25
Iteration 4: Homework 4: A Few Details
00:07
More Levers! (Configuration For Everything!)
08:15

Wrapup

2 lectures
Project Retrospective
03:42
Learning More…
00:56

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.