Skip to content
This repository was archived by the owner on Nov 11, 2019. It is now read-only.
This repository was archived by the owner on Nov 11, 2019. It is now read-only.

shipit_static_analysis: Enable before/after comparison in production #1236

@jankeromnes

Description

@jankeromnes

We are currently experimenting with a better heuristic to detect which code defects were caused by a given patch (as opposed to code defects that were already present in the code before the patch).

Currently, our bot uses IN_PATCH (i.e. "only report defects that are on lines directly modified by the patch"). While good enough, this heuristic misses new defects that are adjacent in the control graph (e.g. if you modify a function, you might indirectly cause a defect at a call site somewhere else in the code).

Our new approach is called BEFORE_AFTER, and runs analysis twice: once before applying the patch, and once more after the patch is applied, in order to detect which defects are actually new.

To enable BEFORE_AFTER in production, we should evaluate its results on staging, and verify that they are indeed superior, and also bug free.

TODO:

  • 1. Verify that BEFORE_AFTER works on staging, without any bugs
  • 2. Determine whether BEFORE_AFTER is a clear improvement over IN_PATCH (we'll likely want to combine both in order to catch more bugs)
  • 3. Enable BEFORE_AFTER in production
  • 4. Verify that it also works well in production, and that developers are happy with the results

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions