Synthesizing contracts correct modulo a test generator

Angello Astorga, Shambwaditya Saha, Ahmad Dinkins, Felicia Wang, P. Madhusudan, Tao Xie

Research output: Contribution to journalArticlepeer-review


We present an approach to learn contracts for object-oriented programs where guarantees of correctness of the contracts are made with respect to a test generator. Our contract synthesis approach is based on a novel notion of tight contracts and an online learning algorithm that works in tandem with a test generator to synthesize tight contracts. We implement our approach in a tool called Precis and evaluate it on a suite of programs written in C#, studying the safety and strength of the synthesized contracts, and compare them to those synthesized by Daikon.

Original languageEnglish (US)
Article number104
JournalProceedings of the ACM on Programming Languages
Issue numberOOPSLA
StatePublished - Oct 2021


  • Data-Driven Inference
  • Software Testing
  • Specification Mining
  • Synthesis

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Cite this