Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Modern Software Testing
Rating: 4.4 out of 5(33 ratings)
864 students

Modern Software Testing

Principles, practices, patterns, and tips from the trenches
Last updated 3/2023
English

What you'll learn

  • The most common real-world trade-offs in software testing
  • Different techniques to engineer more rigorous test cases
  • Decide between unit, integration, or system tests, as well as when or not to mock
  • Design highly testable units of code
  • Understand what makes it easy for developers to write tests

Course content

8 sections37 lectures2h 43m total length
  • Welcome to this course!5:12
  • Test to guide development vs test to find bugs4:00
  • The laws of software testing5:59

Requirements

  • Some experience with testing frameworks in any programming language (Java's JUnit, C#'s NUnit, Python's pytest, etc)
  • Understanding of the basics of software design (i.e., classes, dependency injection)
  • Have used a mocking framework, even if only the basics of the tool

Description

Are you a software engineer that already knows how to write automated tests, but wants to get better at it? This is the course for you.

This course isn't about teaching you some testing tool or framework. It's much bigger and deeper than that. It's about explaining to you all the principles, practices, and patterns of software testing, their advantages and disadvantages, so that you can write very strong tests that are actually able to find bugs, in a very productive way.

This course addresses topics like:

  • How to write test cases that go beyond the happy paths?

  • When to go for unit testing and when to go for integration testing?

  • How can I use code coverage to help me improve my tests (and finally stop hating it!)?

  • What's the secret to write many tests?

  • How to make tests that run fast and are simple?

  • When to mock, and when not to mock something?

  • What's key to design testable systems?

  • How can I fight flaky tests?

  • How to test micro services?

  • How to test legacy systems?

  • What's the role of QAs if I'm the one writing tests?

  • ... and many more!

This course isn't focused on one specific technology or programming language, and everyone can benefit from it. These principles, practices, and tips emerge from my almost 20 years of experience in helping teams write better tests.

This course will feel like a conversation between two engineers. The majority of the course is about me speaking to the camera, with a few illustrations and highlights when needed. This course is perfect for you to take while cleaning the dishes, or taking the subway, as it requires your ears more than your eyes!

Who this course is for:

  • Software developers that already know how to write tests, but want to get better at it!