Automated Test Design and Bug Fixing @ Facebook Nadia Alshahwan - - PowerPoint PPT Presentation

automated test design and bug fixing facebook
SMART_READER_LITE
LIVE PREVIEW

Automated Test Design and Bug Fixing @ Facebook Nadia Alshahwan - - PowerPoint PPT Presentation

Automated Test Design and Bug Fixing @ Facebook Nadia Alshahwan FACEBOOK SOFTWARE ENGINEER SAPIENZ TEAM; THIS TALK IS BASED ON WORK OF THE WHOLE TEAM Unfortunately, your app has stopped. Engineers Design Machines Execute System Level


slide-1
SLIDE 1

Nadia Alshahwan

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

Automated Test Design and Bug Fixing @ Facebook

slide-2
SLIDE 2
slide-3
SLIDE 3

Unfortunately, 
 your app has stopped.

slide-4
SLIDE 4

Engineers Design Machines Execute

slide-5
SLIDE 5

System Level UI Testing

RANDOM FUZZER

slide-6
SLIDE 6

System Level UI Testing

RANDOM FUZZER HUMAN TESTERS

slide-7
SLIDE 7

System Level UI Testing

RANDOM FUZZER HUMAN TESTERS

slide-8
SLIDE 8

What is Sapienz?

slide-9
SLIDE 9

IN PROC. OF ISSTA'16, 2016.

Sapienz: Multi-Objective Automated Testing for Android Applications

KE MAO, MARK HARMAN, AND YUE JIA

slide-10
SLIDE 10

Test live in a search space

slide-11
SLIDE 11

Auto Test Design Auto Fix Auto Boost Auto Test Design

slide-12
SLIDE 12

Auto Test Design

Auto Fix Auto Boost Auto Test Design

slide-13
SLIDE 13

Features

GENETIC ALGORITHM MULTI- OBJECTIVE MOTIF INTERACTION

slide-14
SLIDE 14

LOGIN USERNAME PASSWORD

slide-15
SLIDE 15

TEST GENERATION

slide-16
SLIDE 16

TEST GENERATION SELECTION CROSSOVER

slide-17
SLIDE 17

TEST GENERATION CROSSOVER MUTATION

slide-18
SLIDE 18

TEST GENERATION MUTATION

slide-19
SLIDE 19

COVERAGE SHORTEST POSSIBLE SEQUENCE

COVERAGE LENGTH PARETO FRONT

slide-20
SLIDE 20

Smarter CI

slide-21
SLIDE 21

REOCCURRING OPERATOR

Sapienz for Smarter CI

RELEASE BUILD CODE COLLABORATION ENGINEER REVIEWER AUTO TRIAGE AUTO TEST DESIGN AUTO FIX CONTINUOUS BUILD

slide-22
SLIDE 22

REOCCURRING OPERATOR

Sapienz Workflow

OPERATIONS IN THE EVOLUTION RUN WORKFLOW BUILD SEARCH CRASH TRIAGE MOBILE BUILD DB ENGINE

slide-23
SLIDE 23

Fault Triage Process

OPERATIONS IN THE EVOLUTION WORKFLOW TRIAGE BUILD SEARCH CRASH REOCCURRING
 OPERATOR FILE A FIX STACK TRACE

A B C D

DIFF OWNER REVIEW LOCALIZER CRASH DATA

slide-24
SLIDE 24

POST-LAND BUILD SMOKE BUILD

Diff-time Signals

slide-25
SLIDE 25

Test Design

ASYNCIO

PROVIDER

HOST

PYTHON 3

EVOLUTION
 ENGINE CONTROLLER ANALYZER PROXY FBLEARNER IO CLIENT MOTIFCORE

slide-26
SLIDE 26

~75%

FIX RATE

slide-27
SLIDE 27

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)

slide-28
SLIDE 28

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
slide-29
SLIDE 29

Support on Facebook App Family

INSTAGRAM FACEBOOK MESSENGER WORKPLACE FBLITE

slide-30
SLIDE 30 Workplac e for Android Messenge r for Android Instagram for Android Facebook for iOS Facebook for Android
slide-31
SLIDE 31

Auto Fix

Auto Boost Auto Test Design Auto Fix

slide-32
SLIDE 32

CRASH TRIGGERS

Auto Fix Workflow (Generation)

REVERT 
 FULL DIFF REVERT
 PARTIAL DIFF TEMPLATE MUTATION SAPIENZ AUTO
 TRIAGE FIX PATCH GENERATOR TRIGGER PATCH GENERATOR CREATE REVISION IN SAPFIX

slide-33
SLIDE 33

Auto Fix Workflow (Generation)

CRASH TRIGGERS REVERT 
 FULL DIFF REVERT
 PARTIAL DIFF TEMPLATE MUTATION SAPIENZ AUTO
 TRIAGE FIX PATCH GENERATOR TRIGGER PATCH GENERATOR CREATE REVISION IN SAPFIX

slide-34
SLIDE 34

Auto Fix Workflow (Validation)

slide-35
SLIDE 35

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

slide-36
SLIDE 36

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

slide-37
SLIDE 37

Auto Fix Workflow (Signal)

CREATE REVISION IN SAPFIX

REJECTED/ EXPRED

DEVELOPER REVIEWS AUTO FIX PROCESSOR DEVELOPER INTERACTION TRACKER

ACCEPTED

slide-38
SLIDE 38

Auto Boost Auto Test Design Auto Fix Auto Boost

slide-39
SLIDE 39

Auto Boost

Auto Test Design Auto Fix Auto Boost

slide-40
SLIDE 40

AFFECTED USER PREDICTION PROD CRASH LINK INFER LINK

Signal boosting

slide-41
SLIDE 41

IN PROC. OF SSBSE, 2018.

Deploying Search Based Software Engineering with Sapienz at Facebook

NADIA ALSHAHWAN, XINBO GAO, MARK HARMAN, YUE JIA, KE MAO, ALEXANDER MOLS, TAIJIN TEI AND ILYA ZORIN

Resources

slide-42
SLIDE 42

Flaky tests Fix detection Automated Oracles Smarter white box coverage Combining static and dynamic Unit test from system tests Human machine test hybrids Fully parallel search algorithms Auto Fix and perf improvement

slide-43
SLIDE 43

Nadia Alshahwan

nalshahwan@fb.com