Nadia Alshahwan
FACEBOOK SOFTWARE ENGINEER SAPIENZ TEAM; THIS TALK IS BASED ON WORK OF THE WHOLE TEAM
Automated Test Design and Bug Fixing @ Facebook
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
Nadia Alshahwan
FACEBOOK SOFTWARE ENGINEER SAPIENZ TEAM; THIS TALK IS BASED ON WORK OF THE WHOLE TEAM
Automated Test Design and Bug Fixing @ Facebook
Unfortunately, your app has stopped.
Engineers Design Machines Execute
System Level UI Testing
RANDOM FUZZER
System Level UI Testing
RANDOM FUZZER HUMAN TESTERS
System Level UI Testing
RANDOM FUZZER HUMAN TESTERS
IN PROC. OF ISSTA'16, 2016.
Sapienz: Multi-Objective Automated Testing for Android Applications
KE MAO, MARK HARMAN, AND YUE JIA
Test live in a search space
Auto Test Design Auto Fix Auto Boost Auto Test Design
Auto Test Design
Auto Fix Auto Boost Auto Test Design
Features
GENETIC ALGORITHM MULTI- OBJECTIVE MOTIF INTERACTION
LOGIN USERNAME PASSWORD
TEST GENERATION
TEST GENERATION SELECTION CROSSOVER
TEST GENERATION CROSSOVER MUTATION
TEST GENERATION MUTATION
COVERAGE SHORTEST POSSIBLE SEQUENCE
COVERAGE LENGTH PARETO FRONT
REOCCURRING OPERATOR
Sapienz for Smarter CI
RELEASE BUILD CODE COLLABORATION ENGINEER REVIEWER AUTO TRIAGE AUTO TEST DESIGN AUTO FIX CONTINUOUS BUILD
REOCCURRING OPERATOR
Sapienz Workflow
OPERATIONS IN THE EVOLUTION RUN WORKFLOW BUILD SEARCH CRASH TRIAGE MOBILE BUILD DB ENGINE
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
POST-LAND BUILD SMOKE BUILD
Diff-time Signals
Test Design
ASYNCIO
PROVIDER
HOST
PYTHON 3
EVOLUTION ENGINE CONTROLLER ANALYZER PROXY FBLEARNER IO CLIENT MOTIFCORE
FIX RATE
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)
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, 2016Support on Facebook App Family
INSTAGRAM FACEBOOK MESSENGER WORKPLACE FBLITE
Auto Fix
Auto Boost Auto Test Design Auto Fix
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
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
Auto Fix Workflow (Validation)
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
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
Auto Fix Workflow (Signal)
CREATE REVISION IN SAPFIX
REJECTED/ EXPRED
DEVELOPER REVIEWS AUTO FIX PROCESSOR DEVELOPER INTERACTION TRACKER
ACCEPTED
Auto Boost Auto Test Design Auto Fix Auto Boost
Auto Boost
Auto Test Design Auto Fix Auto Boost
AFFECTED USER PREDICTION PROD CRASH LINK INFER LINK
Signal boosting
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
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
Nadia Alshahwan
nalshahwan@fb.com