Log In
0% completed
All Lessons
Free Lessons (3)
Foundations of Property-Based Testing
Why Property-based Testing?
Properties
Property-Based Testing in a Project
Running a Property
Wrapping Up
Writing Properties
Introduction to Writing Properties
File Structure
Property Structure
Execution Model
Default Generators
Putting It All Together
Wrapping Up
Quiz Yourself on Writing Properties
Thinking in Properties
Introduction to Thinking in Properties
Modeling
Generalizing Test Examples
Invariants
Symmetric Properties
Putting It All Together
Wrapping Up
Quiz Yourself on Thinking in Properties
Custom Generators
Introduction to Custom Generators
Gathering Statistics: Collecting
Gathering Statistics: Aggregating
Basic Custom Generators
Resizing Generators
Transforming Generators
Imposing Restrictions
Changing Probabilities
Fancy Custom Generators
Recursive Generators
Symbolic Calls
Wrapping Up
Quiz Yourself on Custom Generators
Responsible Testing
Introduction to Responsible Testing
The Program Structure
CSV Parsing: The Property
CSV Parsing: The CSV Parser
Filtering Records
Employee Module
Templating
Putting It All Together
Wrapping Up
Properties-Driven Development
Introduction to Properties-driven Development
Writing the First Property
Testing Specials
Generating Specials
Implementing Specials
Negative Testing: Broad Properties
Negative Testing: Calibrating Negative Properties
Negative Testing: Relaxing Constraints
Wrapping Up
Shrinking
Introduction to Shrinking
Re-centering with ?SHRINK
Dividing with ?LETSHRINK
Wrapping Up
Quiz Yourself on Shrinking
Targeted Properties
Introduction to Targeted Properties
Targeted Properties
Writing Neighbour Functions
Example Case: Quicksort
Limitations of Targeted Properties
Wrapping Up
Stateful Properties
Introduction to Stateful Properties
How Stateful Properties Run
Writing Stateful Properties
Testing a Basic Concurrent Cache: Implementation
Testing a Basic Concurrent Cache: Writing Tests
Testing Parallel Executions
Wrapping Up
Quiz Yourself on Stateful Properties
Case Study: Bookstore
Introducing the Application
The Application: Getting Started
The Application: The Database Module
The Application: Running the Code
Writing Generators
Broad Stateful Testing
Precise Stateful Modelling
Refining the Tests
Debugging Stateful Properties
Parallel Tests
Wrapping Up
State Machine Properties
Introduction to State Machine Properties
Laying Out State Machine Properties
How State Machine Properties Run
Writing FSM Properties
Testing a Circuit Breaker
Modeling the Circuit Breaker: The Shim Module
Modeling the Circuit Breaker: The Property
Modeling the Circuit Breaker: The Test Module
Adjusting the Model: Fixing the Issue
Adjusting the Model: Better Statistics
Wrapping Up
Conclusion
Conclusion
Property-Based Testing with PropEr in Erlang
/
...
/
Wrapping Up
Wrapping Up
We'll cover the following...
Summary
What’s next
Summary
In this final chapter, you’ve
...
Access this course and
1400+
top-rated courses and projects.
Unlock Full Access
Preview Free Lessons
→
Preview Free Lessons