Add property-based tests talk

This commit is contained in:
Smaug123
2023-10-01 21:08:08 +01:00
parent 9b71477f59
commit d459266f21
3 changed files with 23 additions and 5 deletions

6
flake.lock generated
View File

@@ -183,11 +183,11 @@
"scripts": "scripts_3"
},
"locked": {
"lastModified": 1696031212,
"narHash": "sha256-Aymg9vvPksYIbE5ahOzusmKN8w65n64lv9lY+W+I9nw=",
"lastModified": 1696190787,
"narHash": "sha256-bO/NInpwVefs5Iey8WVwPFnXPt/3WN7WvYXTxzLKmGQ=",
"owner": "Smaug123",
"repo": "static-site-pdfs",
"rev": "97c35066c1661d2c88c3833c4686f37a9fd7588e",
"rev": "a36d3025b9625cc50fc5bd2eca867eacd8a5bcb9",
"type": "github"
},
"original": {

View File

@@ -1,8 +1,8 @@
---
lastmod: "2023-09-28T00:15:00.0000000+01:00"
lastmod: "2023-10-01T00:15:00.0000000+01:00"
author: patrick
categories:
- programming
- mathematical_summary
date: "2023-09-28T00:15:00Z"
title: The tiny proof that primes 1 mod 4 are sums of two squares
summary: "Exploding the incredibly terse proof into a bunch of exposition."

View File

@@ -0,0 +1,18 @@
---
lastmod: "2023-10-01T20:53:00.0000000+01:00"
author: patrick
categories:
- programming
- g-research
date: "2023-10-01T20:53:00.0000000+01:00"
title: Property-based testing introduction
summary: "A talk I gave at work introducing property-based testing and then giving some more advanced techniques."
---
A linkpost for [the slides for a talk](/misc/DogeConfPBT/DogeConfPBT.pdf) I gave in 2019 at G-Research.
I've put it up now because I keep on losing it and wanting to look stuff up in it.
We first cover what [property-based testing](https://en.wikipedia.org/wiki/Software_testing#Property_testing) is and why you might want to use it.
Then we discuss more advanced techniques: how to check that the distribution is sane from which you're drawing tests, and what to do about it if the distribution turns out not to be sane.
We next consider how to test stateful systems by modelling the transitions you want it to undergo (ultimately perhaps even progressing to a full alternative immutable implementation of the system, where the property is "the system under test behaves exactly like this reference implementation").
Finally we give a warning that while it's possible to sink arbitrary amounts of time and cleverness into testing every corner of your system, you can do much better than most people if you simply start small and stop whenever you think it's worth stopping.