Property-Based Testing with PropEr in Erlang

Gain insights into property-based testing with PropEr in Erlang. Delve into foundational principles, common frameworks, custom data generators, and applying testing in realistic projects for robust code validation.

Intermediate

94 Lessons

17h 30min

Certificate of Completion

Gain insights into property-based testing with PropEr in Erlang. Delve into foundational principles, common frameworks, custom data generators, and applying testing in realistic projects for robust code validation.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

60 Playgrounds
5 Quizzes

This course includes

60 Playgrounds
5 Quizzes

Course Overview

Property-based testing relies on specifying some property of code, rather than unit tests which specify the expected output in response to some inputs. In this course, you’ll cover the concepts you need to get started, up to the point where you feel confident enough to use the most advanced features of PropEr with Erlang. You’ll start smoothly with the basic and foundational principles of property-based testing. From there, you will cover some of the common frameworks, how to think in properties, how to wr...Show More

What You'll Learn

Understand the concepts of PropEr.

Understand the role of generators in property in property-based testing.

Have a clear sense where property-based testing has an advantage over EUnit tests and vice versa.

Be able to use stateful properties with ease.

Learn how to write State Machine Properties.

Understand property-based testing.

What You'll Learn

Understand the concepts of PropEr.

Show more

Course Content

1.

Foundations of Property-Based Testing

Get familiar with property-based testing for enhanced software quality and efficient debugging.
2.

Writing Properties

Get started with defining, structuring, and executing properties using PropEr for effective testing.
3.

Thinking in Properties

Break apart the key strategies for property-based testing, including modeling, generalizing, invariants, and symmetric properties.
4.

Custom Generators

Grasp the fundamentals of creating custom generators, resizing, transforming, and imposing restrictions tailored for precise property-based testing.
5.

Responsible Testing

Take a closer look at designing resilient units and integrating robust components for effective testing.
6.

Properties-Driven Development

9 Lessons

Follow the process of properties-driven development, testing, and refining program behaviors.
7.

Shrinking

5 Lessons

Piece together the parts of shrinking in property testing for simplified error identification.
8.

Targeted Properties

6 Lessons

Learn how to use targeted properties for efficient and dynamic property-based testing in Erlang.
9.

Stateful Properties

8 Lessons

Unpack the core of stateful property testing, focusing on system models, concurrency, and validation.
10.

Case Study: Bookstore

11 Lessons

Master the steps to implementing and refining stateful property-based testing for a complex system.
11.

State Machine Properties

11 Lessons

Enhance your skills in modeling and testing systems using finite state machines.
12.

Conclusion

1 Lesson

Take a look at utilizing property-based testing to enhance both unit and integration testing.

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor