SlideShare une entreprise Scribd logo
1  sur  13
Learning for Test Prioritization
An Industrial Case Study
Benjamin Busjaeger
Salesforce
Tao Xie
University of Illinois,
Urbana-Champaign
ACM SIGSOFT FSE 2016
Large Scale Continuous Integration
2K+
Modules
600K+
Tests
2K+
Engineers
500+
Changes/Day
Main repository ...
350K+
Source files
Motivation
Before Commit After Commit
Objective Reject faulty changes Detect test failures as quickly as possible
Current Run hand-picked tests Parallelize (8000 concurrent VMs) &
batch (1-1000 changes per run)
Problem Too complex for human Feedback time constrained by capacity &
batching complicates fault assignment
Desired Select top-k tests likely to fail Prioritize all tests by likelihood of failure
Insight: Need Multiple Existing Techniques
● Heterogeneous languages: Java, PL/SQL, JavaScript, Apex, etc.
●Non-code artifacts: metadata and configuration
●New/recently-failed tests more likely to fail
Test code coverage of change Textual similarity between test and change Test age and recent failures
Insight: Need Scalable Techniques
●Complex integration tests: concurrent execution
●Large data volume: 500+ changes, 50M+ test runs, 20TB+ results per day
→ Our approach: Periodically collect coarse-grained measurements
Test code coverage of change Textual similarity between test and change Test age and recent failures
Formal model for
learning from
past test results
New Approach: Learning for Test Prioritization
Test code coverage of change Textual similarity between test and change Test age and recent failures
Change
Test
Ranking
→ Implementation currently in pilot use at Salesforce
Empirical Study: Setup
●Test results of 45K tests for ~3 month period
●In this period, 711 changes with ≥1 failure
• 440 for training
• 271 for testing
●Collected once for each test:
• Test code coverage
• Test text content
●Collected continuously:
• Test age and recent failures
● New approach achieves highest
average recall at all cutoff points
• 50% failures detected with top 0.2%
• 75% failures detected with top 3%
Results: Test selection (before commit)
New Approach
● New approach achieves highest
APFD with least variance
• Median: 85%
• Average: 99%
Results: Test prioritization (after commit)
New Approach
Results: Side Benefits
Invalid Assignments
Flaky Tests
Summary
● Main insights gained in conducting test prioritization in industry
● Novel learning-based approach to test prioritization
● Implementation currently in pilot use at Salesforce
● Empirical evaluation using a large Salesforce dataset
● Ongoing work: add features, word2vec, deep learning, cost-aware
Thank you
Q&A
Summary
● Main insights gained in conducting test prioritization in industry
● Novel learning-based approach to test prioritization
● Implementation currently in pilot use at Salesforce
● Empirical evaluation using a large Salesforce dataset
● Ongoing work: add features, word2vec/deep learning, cost-aware

Contenu connexe

En vedette

The learning process- Fundamentals of Instruction
The learning process- Fundamentals of InstructionThe learning process- Fundamentals of Instruction
The learning process- Fundamentals of Instruction
Holmes Aviation Training
 
Learning Process Theories
 Learning Process Theories  Learning Process Theories
Learning Process Theories
Malyn Singson
 
Philosophy of education
Philosophy of educationPhilosophy of education
Philosophy of education
ajtame
 

En vedette (17)

1 gerir o teu dinheiro
1   gerir o teu dinheiro1   gerir o teu dinheiro
1 gerir o teu dinheiro
 
Group Mentoring Session 12: Dealing with Difficulties
Group Mentoring Session 12: Dealing with DifficultiesGroup Mentoring Session 12: Dealing with Difficulties
Group Mentoring Session 12: Dealing with Difficulties
 
Summit2013 choi - wise kb-introd
Summit2013   choi - wise kb-introdSummit2013   choi - wise kb-introd
Summit2013 choi - wise kb-introd
 
nature of learning
nature of learningnature of learning
nature of learning
 
Transferring Software Testing Tools to Practice
Transferring Software Testing Tools to PracticeTransferring Software Testing Tools to Practice
Transferring Software Testing Tools to Practice
 
Best Philosophy of Education
Best Philosophy of EducationBest Philosophy of Education
Best Philosophy of Education
 
The learning process- Fundamentals of Instruction
The learning process- Fundamentals of InstructionThe learning process- Fundamentals of Instruction
The learning process- Fundamentals of Instruction
 
The learning process
The learning processThe learning process
The learning process
 
Drive test learning
Drive test learningDrive test learning
Drive test learning
 
Learning Process Theories
 Learning Process Theories  Learning Process Theories
Learning Process Theories
 
Learning presentation
Learning presentationLearning presentation
Learning presentation
 
The Teaching Learning Process: Intro, Phases, Definitions, Theories and Model...
The Teaching Learning Process: Intro, Phases, Definitions, Theories and Model...The Teaching Learning Process: Intro, Phases, Definitions, Theories and Model...
The Teaching Learning Process: Intro, Phases, Definitions, Theories and Model...
 
Teaching and Learning Process
Teaching and Learning ProcessTeaching and Learning Process
Teaching and Learning Process
 
Philosophy of education
Philosophy of educationPhilosophy of education
Philosophy of education
 
Philosophies of education
Philosophies of educationPhilosophies of education
Philosophies of education
 
Major philosophies in education
Major philosophies in educationMajor philosophies in education
Major philosophies in education
 
Philosophy of education
Philosophy of educationPhilosophy of education
Philosophy of education
 

Plus de Salesforce Engineering

Plus de Salesforce Engineering (20)

Locker Service Ready Lightning Components With Webpack
Locker Service Ready Lightning Components With WebpackLocker Service Ready Lightning Components With Webpack
Locker Service Ready Lightning Components With Webpack
 
Scaling HBase for Big Data
Scaling HBase for Big DataScaling HBase for Big Data
Scaling HBase for Big Data
 
Techniques to Effectively Monitor the Performance of Customers in the Cloud
Techniques to Effectively Monitor the Performance of Customers in the CloudTechniques to Effectively Monitor the Performance of Customers in the Cloud
Techniques to Effectively Monitor the Performance of Customers in the Cloud
 
Predictive System Performance Data Analysis
Predictive System Performance Data AnalysisPredictive System Performance Data Analysis
Predictive System Performance Data Analysis
 
Apache HBase State of the Project
Apache HBase State of the ProjectApache HBase State of the Project
Apache HBase State of the Project
 
Hit the Trail with Trailhead
Hit the Trail with TrailheadHit the Trail with Trailhead
Hit the Trail with Trailhead
 
HBase/PHOENIX @ Scale
HBase/PHOENIX @ ScaleHBase/PHOENIX @ Scale
HBase/PHOENIX @ Scale
 
Scaling up data science applications
Scaling up data science applicationsScaling up data science applications
Scaling up data science applications
 
Containers and Security for DevOps
Containers and Security for DevOpsContainers and Security for DevOps
Containers and Security for DevOps
 
Aspect Oriented Programming: Hidden Toolkit That You Already Have
Aspect Oriented Programming: Hidden Toolkit That You Already HaveAspect Oriented Programming: Hidden Toolkit That You Already Have
Aspect Oriented Programming: Hidden Toolkit That You Already Have
 
Monitoring @ Scale in Salesforce
Monitoring @ Scale in SalesforceMonitoring @ Scale in Salesforce
Monitoring @ Scale in Salesforce
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
 
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache CalciteA Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
 
Implementing a Content Strategy Is Like Running 100 Miles
Implementing a Content Strategy Is Like Running 100 MilesImplementing a Content Strategy Is Like Running 100 Miles
Implementing a Content Strategy Is Like Running 100 Miles
 
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
 
Koober Preduction IO Presentation
Koober Preduction IO PresentationKoober Preduction IO Presentation
Koober Preduction IO Presentation
 
Finding Security Issues Fast!
Finding Security Issues Fast!Finding Security Issues Fast!
Finding Security Issues Fast!
 
Microservices
MicroservicesMicroservices
Microservices
 
Global State Management of Micro Services
Global State Management of Micro ServicesGlobal State Management of Micro Services
Global State Management of Micro Services
 
The Future of Hbase
The Future of HbaseThe Future of Hbase
The Future of Hbase
 

Dernier

Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 

Dernier (20)

HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 

Learning for Testing Prioritization- an industrial case study

  • 1. Learning for Test Prioritization An Industrial Case Study Benjamin Busjaeger Salesforce Tao Xie University of Illinois, Urbana-Champaign ACM SIGSOFT FSE 2016
  • 2. Large Scale Continuous Integration 2K+ Modules 600K+ Tests 2K+ Engineers 500+ Changes/Day Main repository ... 350K+ Source files
  • 3. Motivation Before Commit After Commit Objective Reject faulty changes Detect test failures as quickly as possible Current Run hand-picked tests Parallelize (8000 concurrent VMs) & batch (1-1000 changes per run) Problem Too complex for human Feedback time constrained by capacity & batching complicates fault assignment Desired Select top-k tests likely to fail Prioritize all tests by likelihood of failure
  • 4. Insight: Need Multiple Existing Techniques ● Heterogeneous languages: Java, PL/SQL, JavaScript, Apex, etc. ●Non-code artifacts: metadata and configuration ●New/recently-failed tests more likely to fail Test code coverage of change Textual similarity between test and change Test age and recent failures
  • 5. Insight: Need Scalable Techniques ●Complex integration tests: concurrent execution ●Large data volume: 500+ changes, 50M+ test runs, 20TB+ results per day → Our approach: Periodically collect coarse-grained measurements Test code coverage of change Textual similarity between test and change Test age and recent failures
  • 6. Formal model for learning from past test results New Approach: Learning for Test Prioritization Test code coverage of change Textual similarity between test and change Test age and recent failures Change Test Ranking → Implementation currently in pilot use at Salesforce
  • 7. Empirical Study: Setup ●Test results of 45K tests for ~3 month period ●In this period, 711 changes with ≥1 failure • 440 for training • 271 for testing ●Collected once for each test: • Test code coverage • Test text content ●Collected continuously: • Test age and recent failures
  • 8. ● New approach achieves highest average recall at all cutoff points • 50% failures detected with top 0.2% • 75% failures detected with top 3% Results: Test selection (before commit) New Approach
  • 9. ● New approach achieves highest APFD with least variance • Median: 85% • Average: 99% Results: Test prioritization (after commit) New Approach
  • 10. Results: Side Benefits Invalid Assignments Flaky Tests
  • 11. Summary ● Main insights gained in conducting test prioritization in industry ● Novel learning-based approach to test prioritization ● Implementation currently in pilot use at Salesforce ● Empirical evaluation using a large Salesforce dataset ● Ongoing work: add features, word2vec, deep learning, cost-aware
  • 13. Summary ● Main insights gained in conducting test prioritization in industry ● Novel learning-based approach to test prioritization ● Implementation currently in pilot use at Salesforce ● Empirical evaluation using a large Salesforce dataset ● Ongoing work: add features, word2vec/deep learning, cost-aware

Notes de l'éditeur

  1. coverage: periodically collected (slightly out-of-date), dynamic instrumentation (JaCoCo, no rebuild), approximate proximity