Learn TDD in 24 hours

A crash course for you to get deep into automated testing and JUnit!
4.6 (66 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
349 students enrolled
Sale Ends Today!
25% off
Take This Course
  • Lectures 22
  • Length 2 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 5/2015 English

Course Description

Are you a Java developer and want to become an expert in software testing? That's the course for you! In this course, you will learn how to stop doing manual testing and start to do automated software testing.

How many times did you write a bug? How many times did you change the software and didn't test it all? Testing software is an art. And surprisingly easy! During the videos, we will see many real world classes that need to be tested.

In a nutshell, you will see that writing a test is almost like writing all those "main methods" you have written during your first programming lessons. Then, you will see how to do it professionally. And by professional, I mean learn how to have a good testing code, how to simulate databases using mock objects, and even how to practice Test-Driven Development, which is about writing the test code prior to the production code (and yes, that are many advantagens when doing it!).

Good developers write good code. And good code is, among many other things, code that work. Let's learn how to test software and never have a bug again!

What are the requirements?

  • Students must know Java and have the Eclipse IDE installed.

What am I going to get from this course?

  • Write automated unit tests
  • Practice Test-Driven Development in real code
  • Know about good unit testing patterns and practices
  • Use mock objects to write real isolated unit tests

Who is the target audience?

  • Developers that are tired to produce code that does not work.
  • Developers that want to improve their code quality using TDD

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Getting started with automated tests

Why should we test software? In this chapter, you will see that is really easy to write a bug -- in fact, more easy than we wanted it to be. How to find them? Testing the software, of course.


Now, it is time for us to write our first automated testing. And you will see that is looks like the code you've written in your first programming class -- yes, it is that easy. I will introduce you to JUnit, ladies and gentlemen.


Now you know how to write an unit test. Now, it is time to cover all possible scenarios. Let's write all the tests we can!

Eclipse shortcuts

I will open my heart in here. I will tell you a real story about how a bug caused me a lot of troubles. And I bet you have a similar story. Hope you get even more motivated to study software testing.


It is your time to code (and test)!

Getting started with unit tests
4 questions
Section 2: Taking care of the test code

We do have a lot of testing code now. More test code than production code, in fact. It's time for us to learn how to make test code more readable and maintainable. Let's start by removing repeated code.


And what about this famous "one assert per test" rule? I will tell you why I disagree with it, and how to make our assertions better.


Giving names is one of the most important thing when writing a test. We will discuss about how to give a test a name. It's easier than you think.


Time to go to the next level. Let's start by testing a more complicated class with different conditions and private methods. How do we do it?


Uhhh, now we have a very complicated private method. Should we test it isolated from the public method? Should we not? Let's talk about it.


Creating scenarios is, for sure, the hardest part when writing the test. Let's learn that "test data builders" are. They will save our time when dealing with more complicated scenarios.

Time to practice!
Good practices
3 questions
Section 3: Test-Driven Development

Can we start the test ... by the test? Let's learn about Test-Driven Development, and see why this is a very popular practice among developers.


Should I go faster? Should I go slower? Let's discuss about taking "baby steps" during your implementation. Do they help? Should I do it all the time?


Now, let's see how we can convince our managers that we are not losing time when we are writing automated tests. I will show you some very good arguments. After that, even your boss will tell you to write tests.


It is your time to practice.

Test-Driven Development
4 questions
Section 4: Mock Objects

Again, going to the next level. How can we test classes that depend upon another classes? What if I depend upon a DAO, that access my database? Easy... Let's simulate them using mock objects.


What if I use a crazy API in my code? I can't mock it. Hmm, yes, you can. All you have to do is to write a little bit more code. I will show you.


It's your time to practice.

Mock Objects
2 questions
Section 5: Last Thoughts

Let's review everything the talked about and see how much we learned when we started to study automated software testing.

What else?

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Maurício Aniche, A passionate PhD candidate in software engineering

PhD candidate in Computer Science, Maurício is passionate about software development. With 10 years of experience in writing software, Maurício is very focused on object-oriented software good practices (in which he just published a book about), and a Test Driven Development evangelist. His book about TDD and its effect on class design is very popular. He also participates in many industry and academic conferences about software engineering, such as ICSME, ICST, QCON, and Agile.

Ready to start learning?
Take This Course