Tricorder: Building a Program Analysis Ecosystem

Authors:
  • CSCaitlin Sadowski
    Caitlin Sadowski
  • JGJeffrey Van Gogh
    Jeffrey Van Gogh
  • CJCiera Jaspan
    Ciera Jaspan
  • ESEmma Soderberg
    Emma Soderberg
  • CWCollin Winter
    Collin Winter

Abstract
Static analysis tools help developers find bugs, improve code readability, and ensure consistent style across a project. However, these tools can be difficult to smoothly integrate with each other and into the developer workflow, particularly when scaling to large codebases. We present Tricorder, a program analysis platform aimed at building a data-driven ecosystem around program analysis. We present a set of guiding principles for our program analysis tools and a scalable architecture for an analysis platform implementing these principles. We include an empirical, in-situ evaluation of the tool as it is used by developers across Google that shows the usefulness and impact of the platform.