---
title: Fundamentals of Test-Driven Development, Now on Upcase
teaser: 'Learn how to use Test-Driven Development to write better software in our
  newest Upcase trail.

  '
tags: news,testing,ruby,upcase
author:
- Chris Toomey
- Geoff Harcourt
published_on: 2016-07-19
---

We talk a lot about Test-Driven Development, aka "TDD", here on the blog, and
for good reason! We've found TDD to be one of the most effective and important
parts of our process when building applications.

That said, we often work with developers who've either never tested or only ever
written tests after the fact without really feeling like the tests add much
value. While they may feel comfortable writing a few tests, they find the
prospect of test-first development confusing and backwards.

What had been missing was a solid introduction to what makes TDD unique. Well,
no longer! Today we're happy to announce the release of our newest course on
Upcase, _**[Fundamentals of Test-Driven Development][trail]**_.

This course starts from zero, and guided by thoughtbot developers [Harry
Schwartz][harry] and [Ian C. Anderson][ian] you'll learn all the critical
aspects that make TDD so powerful, including:

- Breaking the problem down into small, well-defined next steps
- Thinking about the problem from the outside-in
- Favoring simpler, more focused solutions
- Producing a test suite covering all the behavior of your application (one heck
  of a side effect!)

You'll use the red-green-refactor loop to drive code supported and documented by
tests. As you progress through the lessons you'll learn how to use both
integration and unit tests to get the ideal coverage for your application.

**This course requires no prior knowledge of TDD**, but it will teach you the
critical thinking and workflows that make TDD such a powerful approach. At the
same time, even seasoned testers will likely find a few new ideas in this
course. We've got something for everyone!

<div class="post-cta-section">
    <div class="cta-image-wrapper">
      <img
        class="cta-image"
        src="https://images.thoughtbot.com/upcase/trail-title-cards/fundamentals-of-tdd.jpg"
        alt=""
      />
    </div>

  <div class="cta-content">
    <p>
      Ready to let your tests guide you to cleaner more maintainable code, and
      finally master TDD?
    </p>

    <a
      class="cta-button"
      href="https://thoughtbot.com/upcase/fundamentals-of-tdd?utm_source=giantrobots&utm_medium=blog&utm_campaign=fundamentals-of-tdd-announcement">
      Get Started Now
    </a>
  </div>
</div>

[harry]: https://thoughtbot.com/blog/authors/harry-schwartz
[ian]: https://thoughtbot.com/blog/authors/ian-c-anderson
[trail]: https://thoughtbot.com/upcase/fundamentals-of-tdd?utm_source=giantrobots&utm_medium=blog&utm_campaign=fundamentals-of-tdd-announcement
