~/talk

Generating Conforming Programs With Xsmith

Talkat GPCE 2023 · 2023-10-22..10-23· [testing, compilers-and-language-design]
links:none on file
links:none on file
links:none on file
name:Eric Eide
links:none on file
slides:none on file

Xsmith is a Racket DSL and library that generates conforming programs — syntactically, statically and dynamically valid tests that avoid undefined or nondeterministic behavior — by composing reusable properties and canned components. It reduces generator size from the scale of 39,000 LOC vs few hundred lines, emits test cases via a choice-based AST builder, and powers generators for Racket, Dafny, Standard ML and WebAssembly. Evaluation finds 46 deep semantic bugs across four implementations, demonstrating the approach works.

AI-written summary · about

  1. 0:00Xsmith and conforming programs
  2. 1:25Random testing needs conforming programs
  3. 3:53Challenge of program generators
  4. 4:57Xsmith simplifies generator creation
  5. 6:45Writing Xsmith specifications
  6. 8:12Generating ASTs step by step
  7. 10:21Customizing with properties
  8. 12:08Encoding types and rules
  9. 13:56WebAssembly generator example
  10. 14:37Reusing language components
  11. 15:41Evaluating Xsmith’s effectiveness
  12. 16:41Comparing generator sizes
  13. 17:22Bug categories found
  14. 18:23Real-world bugs discovered
  15. 20:28Xsmith conclusions and future
  16. 21:36Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.