32
Mark Harman FACEBOOK SOFTWARE ENGINEERING MANAGER SAPIENZ TEAM; THIS TALK IS BASED ON WORK OF THE WHOLE TEAM

Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Mark HarmanFACEBOOK SOFTWARE ENGINEERING MANAGER

SAPIENZ TEAM; THIS TALK IS BASED ON WORK OF THE WHOLE TEAM

Page 2: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Mark HarmanFACEBOOK SOFTWARE ENGINEERING MANAGER

SAPIENZ TEAM; THIS TALK IS BASED ON WORK OF THE WHOLE TEAM

Page 3: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

UNFORTUNATELY, YOUR APP HAS STOPPED.

OKREPORT

WORK IN PROGRESS

Page 4: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

SLOW BORING UNIMPORTANTPAINFUL

Page 5: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

URGENT

Page 6: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

IN PROC. OF SSBSE, 2018.

Deploying Search Based Software Engineering with Sapienz at FacebookNADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO, ALEXANDER MOLS, TAIJIN TEI AND ILYA ZORIN

Page 7: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based
Page 8: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based
Page 9: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Search Based Optimization

Software Engineering

S B S E

We use Search Based Software Engineering

widely studied in academia; now starting to reach into industry

Page 10: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

... covers history of SBST up to 2015

Page 11: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Test live in a search space

Page 12: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Engineers Design

Machines Execute

Page 13: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based
Page 14: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Unfortunately, your app has stopped.

Page 15: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

System Level Testing

RANDOM FUZZER HUMAN TESTERS

Page 16: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Fault Triage Process

OPERATIONS IN THE EVOLUTION WORKFLOW

TRIAGEBUILD SEARCH CRASHREOCCURRING

OPERATOR

FILE A FIX STACK TRACE

A

B

C

DDIFFOWNER REVIEW LOCALIZER CRASH DATA

Page 17: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

>1Msource control

commands run per day

>100Kcommits per week

Page 18: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based
Page 19: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Workplace for

Android

Messenger for

Android

Instagram for

Android

Facebook foriOS

Facebook for

Android

Page 20: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

~75%FIX RATE

Page 21: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Distribution (FB)

Null Pointer

Illegal State

Illegal Argument

RunTime

Class Cast

No Such Method

Assertion

Array Index Out of Bounds

Bad Token

Index Out of Bounds

TOP CRASHES TYPES ON FACEBOOK FOR ANDROID (BY SAPIENZ)

Page 22: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Distribution (Research)

TOP CRASHES TYPES ON 1000 ANDROID APPS (BY SAPIENZ[1])

Null Pointer

Illegal State

Illegal Argument

RunTime

Activity Not Found

Out of Memory

Concurrent

Array Index Out of Bounds

Bad Token

Index Out of Bounds

[1] K. MAO, M. HARMAN, AND Y. JIA, “SAPIENZ: MULTI-OBJECTIVE AUTOMATED TESTING FOR ANDROID APPLICATIONS,” IN PROC. OF ISSTA’16, 2016

Page 23: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Distribution (Research)

TOP CRASHES TYPES ON 1000 ANDROID APPS (BY SAPIENZ[1])

Null Pointer

Illegal State

Illegal Argument

RunTime

Activity Not Found

Out of Memory

Concurrent

Array Index Out of Bounds

Bad Token

Index Out of Bounds

[1] K. MAO, M. HARMAN, AND Y. JIA, “SAPIENZ: MULTI-OBJECTIVE AUTOMATED TESTING FOR ANDROID APPLICATIONS,” IN PROC. OF ISSTA’16, 2016

Page 24: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Auto Fix

Auto BoostAuto Test Design Auto Fix

Page 25: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Auto Fix Workflow (Generation)

CRASH TRIGGERS

REVERT FULL DIFF

REVERTPARTIAL DIFF TEMPLATE MUTATION

SAPIENZ AUTOTRIAGE

FIX PATCH GENERATOR

TRIGGER PATCH GENERATOR

CREATE REVISION IN SAPFIX

Page 26: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Auto Fix Workflow (Validation)

CREATE REVISION IN SAPFIX

PATCH 1

PATCH 2

PATCH N

MANUALLY WRITTEN

TESTS

COMPILATION ERROR?BUILD

CRASH FIXED? NEW CRASH?SAPIENZ E2E

Page 27: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Auto Fix Workflow (Signal)

CREATE REVISION IN SAPFIX

REJECTED/ EXPRED

DEVELOPER REVIEWS

AUTO FIX PROCESSOR

DEVELOPER INTERACTION

TRACKER

ACCEPTED

Page 28: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

SAPIENZ

INFER

Page 29: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Localization: Sapienz + Infer

SAPIENZ 1559

INFER

// Sapienz Revealed NPE Crash contextDateMap.put("name", displayedUser.getName());

1559// INFER WarningThe value of 'UserDetailFragment.displayedUser in the call to 'getName()'could be null.

Page 30: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Summary

AUTO TEST DESIGN

AUTO FIX AUTO BOOST

Page 31: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

Flaky testsFix detectionAutomated OraclesWider search spacesSmarter white box coverageCombining static and dynamicUnit test from system testsHuman machine test hybridsFully parallel search algorithmsAuto Fix and perf improvement

Page 32: Mark Harman - PuzzleIN PROC. OF SSBSE, 2018. Deploying Search Based Software Engineering with Sapienz at Facebook NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO,Search Based

IN PROC. OF SSBSE, 2018.

Deploying Search Based Software Engineering with Sapienz at FacebookNADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO, ALEXANDER MOLS, TAIJIN TEI AND ILYA ZORIN

Resources