Abstract
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 language | English (US) |
---|---|
Article number | 104 |
Journal | Proceedings of the ACM on Programming Languages |
Volume | 5 |
Issue number | OOPSLA |
DOIs | |
State | Published - Oct 2021 |
Keywords
- Data-Driven Inference
- Software Testing
- Specification Mining
- Synthesis
ASJC Scopus subject areas
- Software
- Safety, Risk, Reliability and Quality