automated test design and bug fixing facebook
play

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


  1. Automated Test Design and Bug Fixing @ Facebook Nadia Alshahwan FACEBOOK 
 SOFTWARE ENGINEER SAPIENZ TEAM; THIS TALK IS BASED ON WORK OF THE WHOLE TEAM

  2. Unfortunately, 
 your app has stopped.

  3. Engineers Design Machines Execute

  4. System Level UI Testing RANDOM FUZZER

  5. System Level UI Testing RANDOM FUZZER HUMAN TESTERS

  6. System Level UI Testing RANDOM FUZZER HUMAN TESTERS

  7. What is Sapienz?

  8. Sapienz: Multi-Objective Automated Testing for Android Applications KE MAO, MARK HARMAN, AND YUE JIA IN PROC. OF ISSTA'16, 2016.

  9. Test live in a search space

  10. Auto Test Design Auto Test Design Auto Fix Auto Boost

  11. Auto Test Design Auto Fix Auto Boost Auto Test Design

  12. Features MOTIF GENETIC MULTI- ALGORITHM OBJECTIVE INTERACTION

  13. USERNAME PASSWORD LOGIN

  14. TEST GENERATION

  15. TEST GENERATION CROSSOVER SELECTION

  16. TEST GENERATION CROSSOVER MUTATION

  17. TEST GENERATION MUTATION

  18. COVERAGE PARETO FRONT LENGTH COVERAGE SHORTEST POSSIBLE SEQUENCE

  19. Smarter CI

  20. Sapienz for Smarter CI REVIEWER AUTO FIX ENGINEER CODE COLLABORATION CONTINUOUS RELEASE BUILD BUILD AUTO TRIAGE AUTO TEST DESIGN REOCCURRING OPERATOR

  21. Sapienz Workflow MOBILE BUILD ENGINE DB BUILD SEARCH CRASH TRIAGE REOCCURRING OPERATOR OPERATIONS IN THE EVOLUTION RUN WORKFLOW

  22. Fault Triage Process OPERATIONS IN THE EVOLUTION WORKFLOW BUILD SEARCH CRASH TRIAGE REOCCURRING 
 OPERATOR A B C OWNER DIFF REVIEW CRASH DATA LOCALIZER D STACK TRACE FILE A FIX

  23. Diff-time Signals POST-LAND BUILD SMOKE BUILD

  24. Test Design PYTHON 3 PROVIDER CONTROLLER EVOLUTION 
 ENGINE ANALYZER ASYNCIO PROXY FBLEARNER IO MOTIFCORE HOST CLIENT

  25. ~75% FIX RATE

  26. 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)

  27. Distribution (Research) 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 TOP CRASHES TYPES ON 1000 ANDROID APPS (BY SAPIENZ [1] ) [1] K. MAO, M. HARMAN, AND Y. JIA, “SAPIENZ: MULTI-OBJECTIVE AUTOMATED TESTING FOR ANDROID APPLICATIONS,” IN PROC. OF ISSTA’16, 2016

  28. Support on Facebook App Family WORKPLACE INSTAGRAM FACEBOOK FBLITE MESSENGER

  29. Facebook for iOS Facebook for Android Workplac e for Android Messenge r for Android Instagram for Android

  30. Auto Test Design Auto Fix Auto Boost Auto Fix

  31. Auto Fix Workflow (Generation) CRASH TRIGGERS SAPIENZ AUTO 
 TRIGGER PATCH FIX PATCH CREATE REVISION TRIAGE GENERATOR GENERATOR IN SAPFIX REVERT 
 REVERT 
 TEMPLATE MUTATION FULL DIFF PARTIAL DIFF

  32. Auto Fix Workflow (Generation) CRASH TRIGGERS SAPIENZ AUTO 
 TRIGGER PATCH FIX PATCH CREATE REVISION TRIAGE GENERATOR GENERATOR IN SAPFIX REVERT 
 REVERT 
 TEMPLATE MUTATION FULL DIFF PARTIAL DIFF

  33. Auto Fix Workflow (Validation)

  34. Auto Fix Workflow (Validation) PATCH 1 CREATE REVISION IN SAPFIX MANUALLY PATCH 2 WRITTEN TESTS PATCH N BUILD SAPIENZ E2E COMPILATION ERROR? CRASH FIXED? NEW CRASH?

  35. Auto Fix Workflow (Validation) PATCH 1 CREATE REVISION IN SAPFIX MANUALLY PATCH 2 WRITTEN TESTS PATCH N BUILD SAPIENZ E2E COMPILATION ERROR? CRASH FIXED? NEW CRASH?

  36. Auto Fix Workflow (Signal) ACCEPTED CREATE REVISION AUTO FIX DEVELOPER DEVELOPER IN SAPFIX PROCESSOR INTERACTION REVIEWS TRACKER REJECTED/ EXPRED

  37. Auto Test Design Auto Fix Auto Boost Auto Boost

  38. Auto Test Design Auto Fix Auto Boost Auto Boost

  39. Signal boosting PROD CRASH LINK AFFECTED USER PREDICTION INFER LINK

  40. Resources 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 IN PROC. OF SSBSE, 2018.

  41. 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

  42. Nadia Alshahwan nalshahwan@fb.com

Recommend


More recommend