Skip to content

Commit

Permalink
add Adrian; add Harry's talk details
Browse files Browse the repository at this point in the history
  • Loading branch information
lkuper committed Oct 4, 2023
1 parent af1a7b8 commit 00ea33c
Showing 1 changed file with 29 additions and 8 deletions.
37 changes: 29 additions & 8 deletions content/lsd-seminar/2023fa.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 00ea33c

Please sign in to comment.