Intermediate
17h 30min
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.
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 write your own custom data generators, and more. You'll also see how you can use Property-Based Testing in a realistic project.
By the time you finish this course, you will be comfortable testing real-world applications using properties.
Property-based testing relies on specifying some property of code, rather than unit tests which specify the expected output in r...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.
Understand the concepts of PropEr.
Show more
Content
1.
Foundations of Property-Based Testing
5 Lessons
Get familiar with property-based testing for enhanced software quality and efficient debugging.
2.
Writing Properties
8 Lessons
Get started with defining, structuring, and executing properties using PropEr for effective testing.
3.
Thinking in Properties
8 Lessons
Break apart the key strategies for property-based testing, including modeling, generalizing, invariants, and symmetric properties.
4.
Custom Generators
13 Lessons
Grasp the fundamentals of creating custom generators, resizing, transforming, and imposing restrictions tailored for precise property-based testing.
5.
Responsible Testing
9 Lessons
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 Lessons
Take a look at utilizing property-based testing to enhance both unit and integration testing.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:
Developed by MAANG Engineers
Trusted by 2.8 million developers working at companies
"These are high-quality courses. Trust me. I own around 10 and the price is worth it for the content quality. EducativeInc came at the right time in my career. I'm understanding topics better than with any book or online video tutorial I've done. Truly made for developers. Thanks"
Anthony Walker
@_webarchitect_
"Just finished my first full #ML course: Machine learning for Software Engineers from Educative, Inc. ... Highly recommend!"
Evan Dunbar
ML Engineer
"You guys are the gold standard of crash-courses... Narrow enough that it doesn't need years of study or a full blown book to get the gist, but broad enough that an afternoon of Googling doesn't cut it."
Software Developer
Carlos Matias La Borde
"I spend my days and nights on Educative. It is indispensable. It is such a unique and reader-friendly site"
Souvik Kundu
Front-end Developer
"Your courses are simply awesome, the depth they go into and the breadth of coverage is so good that I don't have to refer to 10 different websites looking for interview topics and content."
Vinay Krishnaiah
Software Developer
Hands-on Learning Powered by AI
See how Educative uses AI to make your learning more immersive than ever before.
AI Prompt
Code Feedback
Explain with AI
AI Code Mentor
Free Resources