SlideShare uma empresa Scribd logo
1 de 28
Shattr:
Combinatorial Group Testing for Software Integration

Leslie Wu
CS343, 2007 June
Motivation

• Software testing under-researched but important in practice (Amitabh
  Srivastava, MSFT VP)


• Today’s datacenter-scale distributed systems deploy software-as-a-service:


  • A pageview on Google may trigger upwards of 50 services (Jeff Dean)


  • View on Amazon.com may access more than 100 services (AMZN CTO)
Motivation

• Software testing under-researched but important in practice (Amitabh
  Srivastava, MSFT VP)


• Today’s datacenter-scale distributed systems deploy software-as-a-service:


  • A pageview on Google may trigger upwards of 50 services (Jeff Dean)


  • View on Amazon.com may access more than 100 services (AMZN CTO)


   • Our work: apply “group testing” to software integration in-the-large


   • Goal: accelerate integration-defect root cause analysis
Background

• Group Testing: Syphilis in World War II draftees


   • method invented Robert Dorfman, an economist


• Electronics testing (1960s-)


• Pooling designs in Biology (1990s-)


• Software Integration (modern day)
Related work

• Combinatorial Group Testing (Du and Hwang 2000)


• Pooling Designs in Biology (Du and Hwang 2006)


• Web services / Delta debugging (Zeller)


• Group Testing on Complexes vs. Isolated Components




• (More details in final report)
Problem statement

• Testing a group g of services means:


  • Upgrade all services in g


  • Perform an automated integration test


• Graph model of integration: each vertex corresponds to a service


• Problem: Find the defective (“positive”) edge


• Assume only one bad edge (k-complexes for k=1)
Problem statement

• Testing a group g of services means:                         C

  • Upgrade all services in g


  • Perform an automated integration test
                                                       A             B

• Graph model of integration: each vertex corresponds to a service


• Problem: Find the defective (“positive”) edge


• Assume only one bad edge (k-complexes for k=1)
Integration cost metrics

1) Number of integration tests (traditional group testing)


2) Depth of recursion tree (inspired by pooling designs)




• More tests means more test machines required


• Deeper recursion tree means longer time to isolate integration defect
Methods for Software Integration

1.   Bottom-up integration

2.   Top-down

3.   Shattr-style
Traditional integration tree

• Trees and branches




                               Mozilla.org
Bottom-up integration

After integration




Before integration                                           n=8




 Image from http://www.gigaflop.demon.co.uk/comp/chapt3.htm
Bottom-up integration




         OK
                                      A                     C   B


Image from http://www.gigaflop.demon.co.uk/comp/chapt3.htm
Bottom-up integration

         Failure!                                               ...what’s the root cause?


         OK

         OK


         OK
                                      A                     C          B


Image from http://www.gigaflop.demon.co.uk/comp/chapt3.htm
Natural divide-and-conquer
• Example:


  • Given 64 services/components, divide into four subsets of size 16


  • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge




        • Doesn’t scale if you need to increase branching factor!
Natural divide-and-conquer
• Example:


  • Given 64 services/components, divide into four subsets of size 16


  • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge




        • Doesn’t scale if you need to increase branching factor!
Natural divide-and-conquer
• Example:


  • Given 64 services/components, divide into four subsets of size 16


  • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge




        • Doesn’t scale if you need to increase branching factor!
Natural divide-and-conquer
• Example:


  • Given 64 services/components, divide into four subsets of size 16


  • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge




        • Doesn’t scale if you need to increase branching factor!
Natural divide-and-conquer
• Example:


  • Given 64 services/components, divide into four subsets of size 16


  • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge




        • Doesn’t scale if you need to increase branching factor!
Natural divide-and-conquer
• Example:


  • Given 64 services/components, divide into four subsets of size 16


  • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge




        • Doesn’t scale if you need to increase branching factor!
Natural divide-and-conquer
• Example:


  • Given 64 services/components, divide into four subsets of size 16


  • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge




        • Doesn’t scale if you need to increase branching factor!
Group Testing for 1-Complexes
• Shattr-style:


   • Instead, perform group tests on larger, overlapping subsets


   • ...recurse on intersection of positive subsets


   • Example: 3 tests suffice to determine defective edge
Group Testing for 1-Complexes
• Shattr-style:


   • Instead, perform group tests on larger, overlapping subsets


   • ...recurse on intersection of positive subsets


   • Example: 3 tests suffice to determine defective edge
Group Testing for 1-Complexes
• Shattr-style:


   • Instead, perform group tests on larger, overlapping subsets


   • ...recurse on intersection of positive subsets


   • Example: 3 tests suffice to determine defective edge
Group Testing for 1-Complexes
• Shattr-style:


   • Instead, perform group tests on larger, overlapping subsets


   • ...recurse on intersection of positive subsets


   • Example: 3 tests suffice to determine defective edge
Simulation

        • (Ruby)
Simulation Results

 A sample:

                (n=128)    Time   # tests (avg.)

                 Tree       7          32

                Shattr      4          28


(More details in report)
Contributions

• Novel application of “Group Testing for 1-Complexes” to Software Integration


• Proposed graph-theoretic model for Software Integration as a social system


   • Introduced software service integration cost metrics


   • Describe several integration algorithms


   • Implemented simulation in Ruby, more analysis in report


   • Demonstrated potential way to find integration defects more quickly


• Literature review
Future work

• Remove restrictions: generalize to k-complexes


• More specific graph model, interaction not generally complete graph


• More data-driven -- integration defect count and probability


• Core theory: practical group testing on complexes relatively unstudied


• Prototyping in the wild: is group testing feasible in practice?

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Shattr: Combinatorial Group Testing for Software Integration

  • 1. Shattr: Combinatorial Group Testing for Software Integration Leslie Wu CS343, 2007 June
  • 2. Motivation • Software testing under-researched but important in practice (Amitabh Srivastava, MSFT VP) • Today’s datacenter-scale distributed systems deploy software-as-a-service: • A pageview on Google may trigger upwards of 50 services (Jeff Dean) • View on Amazon.com may access more than 100 services (AMZN CTO)
  • 3. Motivation • Software testing under-researched but important in practice (Amitabh Srivastava, MSFT VP) • Today’s datacenter-scale distributed systems deploy software-as-a-service: • A pageview on Google may trigger upwards of 50 services (Jeff Dean) • View on Amazon.com may access more than 100 services (AMZN CTO) • Our work: apply “group testing” to software integration in-the-large • Goal: accelerate integration-defect root cause analysis
  • 4. Background • Group Testing: Syphilis in World War II draftees • method invented Robert Dorfman, an economist • Electronics testing (1960s-) • Pooling designs in Biology (1990s-) • Software Integration (modern day)
  • 5. Related work • Combinatorial Group Testing (Du and Hwang 2000) • Pooling Designs in Biology (Du and Hwang 2006) • Web services / Delta debugging (Zeller) • Group Testing on Complexes vs. Isolated Components • (More details in final report)
  • 6. Problem statement • Testing a group g of services means: • Upgrade all services in g • Perform an automated integration test • Graph model of integration: each vertex corresponds to a service • Problem: Find the defective (“positive”) edge • Assume only one bad edge (k-complexes for k=1)
  • 7. Problem statement • Testing a group g of services means: C • Upgrade all services in g • Perform an automated integration test A B • Graph model of integration: each vertex corresponds to a service • Problem: Find the defective (“positive”) edge • Assume only one bad edge (k-complexes for k=1)
  • 8. Integration cost metrics 1) Number of integration tests (traditional group testing) 2) Depth of recursion tree (inspired by pooling designs) • More tests means more test machines required • Deeper recursion tree means longer time to isolate integration defect
  • 9. Methods for Software Integration 1. Bottom-up integration 2. Top-down 3. Shattr-style
  • 10. Traditional integration tree • Trees and branches Mozilla.org
  • 11. Bottom-up integration After integration Before integration n=8 Image from http://www.gigaflop.demon.co.uk/comp/chapt3.htm
  • 12. Bottom-up integration OK A C B Image from http://www.gigaflop.demon.co.uk/comp/chapt3.htm
  • 13. Bottom-up integration Failure! ...what’s the root cause? OK OK OK A C B Image from http://www.gigaflop.demon.co.uk/comp/chapt3.htm
  • 14. Natural divide-and-conquer • Example: • Given 64 services/components, divide into four subsets of size 16 • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge • Doesn’t scale if you need to increase branching factor!
  • 15. Natural divide-and-conquer • Example: • Given 64 services/components, divide into four subsets of size 16 • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge • Doesn’t scale if you need to increase branching factor!
  • 16. Natural divide-and-conquer • Example: • Given 64 services/components, divide into four subsets of size 16 • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge • Doesn’t scale if you need to increase branching factor!
  • 17. Natural divide-and-conquer • Example: • Given 64 services/components, divide into four subsets of size 16 • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge • Doesn’t scale if you need to increase branching factor!
  • 18. Natural divide-and-conquer • Example: • Given 64 services/components, divide into four subsets of size 16 • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge • Doesn’t scale if you need to increase branching factor!
  • 19. Natural divide-and-conquer • Example: • Given 64 services/components, divide into four subsets of size 16 • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge • Doesn’t scale if you need to increase branching factor!
  • 20. Natural divide-and-conquer • Example: • Given 64 services/components, divide into four subsets of size 16 • Test all (4 choose 2) pairs of subsets (6 edges), recurse on positive edge • Doesn’t scale if you need to increase branching factor!
  • 21. Group Testing for 1-Complexes • Shattr-style: • Instead, perform group tests on larger, overlapping subsets • ...recurse on intersection of positive subsets • Example: 3 tests suffice to determine defective edge
  • 22. Group Testing for 1-Complexes • Shattr-style: • Instead, perform group tests on larger, overlapping subsets • ...recurse on intersection of positive subsets • Example: 3 tests suffice to determine defective edge
  • 23. Group Testing for 1-Complexes • Shattr-style: • Instead, perform group tests on larger, overlapping subsets • ...recurse on intersection of positive subsets • Example: 3 tests suffice to determine defective edge
  • 24. Group Testing for 1-Complexes • Shattr-style: • Instead, perform group tests on larger, overlapping subsets • ...recurse on intersection of positive subsets • Example: 3 tests suffice to determine defective edge
  • 25. Simulation • (Ruby)
  • 26. Simulation Results A sample: (n=128) Time # tests (avg.) Tree 7 32 Shattr 4 28 (More details in report)
  • 27. Contributions • Novel application of “Group Testing for 1-Complexes” to Software Integration • Proposed graph-theoretic model for Software Integration as a social system • Introduced software service integration cost metrics • Describe several integration algorithms • Implemented simulation in Ruby, more analysis in report • Demonstrated potential way to find integration defects more quickly • Literature review
  • 28. Future work • Remove restrictions: generalize to k-complexes • More specific graph model, interaction not generally complete graph • More data-driven -- integration defect count and probability • Core theory: practical group testing on complexes relatively unstudied • Prototyping in the wild: is group testing feasible in practice?

Notas do Editor