SPLASH 2022
Mon 5 - Sat 10 December 2022 Auckland, New Zealand
Sat 10 Dec 2022 14:30 - 15:00 at AMRF Auditorium - Testing and Maintenance Chair(s): Işıl Dillig

Static Analysis tools have rules for several code quality issues and these rules are created by experts manually. In this paper, we address the problem of automatic synthesis of code quality rules from examples. We formulate the rule synthesis problem as synthesizing first order logic formulas over graph representations of code. We present a new synthesis algorithm RhoSynth that is based on Integer Linear Programming-based graph alignment for identifying code elements of interest to the rule. We bootstrap RhoSynth by leveraging code changes made by developers as the source of positive and negative examples. We also address rule refinement in which the rules are incrementally improved with additional user-provided examples. We validate RhoSynth by synthesizing more than 30 Java code quality rules. These rules have been deployed as part of Amazon CodeGuru Reviewer and their precision exceeds 75% based on developer feedback collected during live code-reviews within Amazon. Through comparisons with recent baselines, we show that current state-of-the-art program synthesis approaches are unable to synthesize most of these rules.

Sat 10 Dec

Displayed time zone: Auckland, Wellington change

13:30 - 15:00
Testing and MaintenanceOOPSLA at AMRF Auditorium
Chair(s): Işıl Dillig University of Texas at Austin
13:30
30m
Talk
Overwatch: Learning Patterns in Code Edit Sequences
OOPSLA
Yuhao Zhang University of Wisconsin-Madison, Yasharth Bajpai Microsoft, Priyanshu Gupta Microsoft, Ameya Ketkar Uber, Miltiadis Allamanis Microsoft Research, Titus Barik Microsoft, Sumit Gulwani Microsoft, Arjun Radhakrishna Microsoft, Mohammad Raza Microsoft, Gustavo Soares Microsoft, Ashish Tiwari Microsoft
DOI
14:00
30m
Talk
Satisfiability Modulo Fuzzing: A Synergistic Combination of SMT Solving and Fuzzing
OOPSLA
Sujit Kumar Muduli IIT Kanpur, Subhajit Roy IIT Kanpur
DOI
14:30
30m
Talk
Synthesizing Code Quality Rules from Examples
OOPSLA
DOI