diff --git a/content/lsd-seminar/2023fa.md b/content/lsd-seminar/2023fa.md index 2ab7f2f..cf9a82e 100644 --- a/content/lsd-seminar/2023fa.md +++ b/content/lsd-seminar/2023fa.md @@ -21,8 +21,8 @@ Talks will be advertised on the [ucsc-lsd-seminar-announce](https://groups.googl |------- |--------- |--------- | | [Sept. 29](#sept-29)| Vikram Narayanan | Towards fine-grained compartmentalization of operating system kernels | | [Oct. 6](#oct-6) | Nick Rioux | Compositional & Scalable Programming in Granite | -| [Oct. 13](#oct-13) | Harrison Goldstein | TBD | -| [Oct. 20](#oct-20) | TBD | TBD | +| [Oct. 13](#oct-13) | Harrison Goldstein | Advancing Property-Based Testing in Theory and Practice | +| [Oct. 20](#oct-20) | Adrian Lehmann | TBD | | [Oct. 27](#oct-27) | Elaine Li | TBD | | [Nov. 3](#nov-3) | Karine Even-Mendoza | TBD | | [Nov. 17](#nov-17) | Suha S. Hussain | TBD | @@ -93,15 +93,36 @@ programs across a distributed system. **Speaker:** Harrison Goldstein -**Title:** TBD - -**Abstract:** TBD - -**Bio:** TBD +**Title:** Advancing Property-Based Testing in Theory and Practice + +**Abstract:** Property-based testing (PBT) is a testing methodology that allows users to write executable +specifications of programs and test those specifications with automatically generated program +inputs. PBT is well-documented as a power-tool for bug-finding, with success stories at companies +like DropBox, Volvo, and Amazon, but we think it has still not reached its full potential. Our group +has taken a user-centered approach to advancing PBT, talking to real developers and discovering the +challenges that they face when using it. + +I present two new abstractions for random data generators---free generators and reflective +generators---that help address some of these challenges. Free generators re-imagine generators as +"parsers of randomness." They show that a generator is really a parser for sequences of random +choices, and this perspective suggests new generation techniques. Reflective generators build on +free generators, adding support for "backward" execution in which a generated value can be turned +back into the sequence of choices that produced it. Backward generator execution is the foundation +for a wealth of new algorithms, including ones for test-case "shrinking," test-case mutation, and +example-based generator tuning. + +Moving forward, we plan to focus on usability: free and reflective generators should be easy for +developers to write, and they should make other parts of the PBT process easier as well. I discuss +future work in this direction. + +**Bio:** Harry Goldstein is a Ph.D. candidate at the University of Pennsylvania, advised by professor +Benjamin Pierce. His work leverages techniques from both programming languages and human-computer +interaction to make tools for software testing more powerful and usable. You can find his +publication list, blog, and other information at https://harrisongoldste.in. # Oct. 20 -**Speaker:** TBD +**Speaker:** Adrian Lehmann **Title:** TBD