Skip to main content
  • Log in
  • Manage Cookies
Eclipse Foundation
Download
  • Projects
  • Working Groups
  • Members
  • Community
    • Marketplace
    • Events
    • Planet Eclipse
    • Newsletter
    • Videos
    • Blogs
  • Participate
    • Report a Bug
    • Forums
    • Mailing Lists
    • Wiki
    • IRC
    • Research
  • Eclipse IDE
    • Download
    • Learn More
    • Documentation
    • Getting Started / Support
    • How to Contribute
    • IDE and Tools
    • Newcomer Forum
  • More
      • Community

      • Marketplace
      • Events
      • Planet Eclipse
      • Newsletter
      • Videos
      • Blogs
      • Participate

      • Report a Bug
      • Forums
      • Mailing Lists
      • Wiki
      • IRC
      • Research
      • Eclipse IDE

      • Download
      • Learn More
      • Documentation
      • Getting Started / Support
      • How to Contribute
      • IDE and Tools
      • Newcomer Forum
  1. Home
  2. Blogs
  3. Wayne Beaton's blog
  4. Fun with Combinatorics

Fun with Combinatorics

Monday, October 3, 2005 - 10:10 by Wayne Beaton

I attended a talk a few days ago in which the speaker was talking about some of the challenges faced by organizations building plug-ins. He stated something to the effect of “if you have six separately deployable (i.e. not interdependent) plug-ins, then there are ‘six factorial‘ (6 x 5 x 4 x 3 x 2 x 1 = 720) different ways to deploy them”. The statement bothered me, primarily because I’m a huge nerd and mathematical genius wannabe. In fact, if you have six different plug-ins that have no interdependences and so can be deployed in any combination, you really only have at most 26 – 1 = 63 different combinations. The breakdown is pretty simple: in each combination of plug-ins, you either include or do not include each plug-in. The -1 is added because you don’t care about the combination that includes none of the plug-ins. 63 seems like a big number (and it is), but it’s nowhere near as big as 720.

Why do I care? Like I said, I’m a huge nerd. That, and implication is that testing combinations of features can be really time consuming. Even if the plug-ins you’re testing have no interdependencies, they may have common dependencies that need to be tested. Two plug-ins might, for example, manipulate the same set of resources in the workspace. These two (hypothetical) plug-ins can exist without each other, but may stomp on the shared resources when deployed together. In short, they really need to be tested together. So… for these two plug-ins, there are at most three different scenarios that need to be tested: one test to ensure that the first feature works, one to ensure that the second one works, and a final test to ensure that they work together. The fourth possible combination of the plug-ins (neither of them is deployed) isn’t all that interesting (and is tested by other folks).

Of course, a combinatorial explosion occurs as you increase the number of plug-ins (every one you add doubles the number of potentially valid combinations).

So, for a collection of n separately deployable plug-ins there are at most 2n – 1 combinations to test. Pragmatically, it is likely the case that most of these combinations can be excluded from testing by doing some dependency analysis.

Tags: 
Uncategorized
Source: 
https://waynebeaton.wordpress.com/2005/10/03/fun-with-combinatorics/
  • Wayne Beaton's blog
  • Sign in to post comments.

Eclipse Foundation Blogs

  • Ian Skerrett (857 posts)
  • Wayne Beaton (796 posts)
  • Mike Milinkovich (286 posts)
  • Benjamin Cabé (131 posts)
  • Ivar Grimstad (96 posts)
  • Tanja Obradovic (37 posts)
  • Thabang Mashologu (30 posts)
  • Christopher Guindon (15 posts)
  • Roxanne Joncas (14 posts)
  • Frédéric Desbiens (11 posts)
  • Paul Buck (11 posts)
  • Jameka Woodberry (9 posts)
  • Hudson Kelly (8 posts)
  • Mikaël Barbero (8 posts)
  • Brian King (6 posts)
  • Denis Roy (5 posts)
  • Gabriela Motroc (4 posts)
  • Shabnam Mayel (3 posts)
  • Gael Blondelle (3 posts)
  • Sharon Corbett (1 posts)
  • Shanda Giacomoni (1 posts)
  • Paul White (1 posts)
  • Jacob Harris (1 posts)
  • Stephanie Swart (1 posts)

Recent blog posts

  • Eclipse Cloud DevTools Community Update - February 2021
  • Hashtag Jakarta EE #60
  • The 2021 Eclipse Community Newsletter Calendar
  • Hashtag Jakarta EE #59
  • Jakarta EE Marketing and Branding Committee Levels-Up with New Members
  • Hashtag Jakarta EE #58
  • Compatible Implementations
  • Use Your IoT and Edge Knowledge for Good!
  • Why Vendor Neutrality is important
  • Jakarta EE Community Update for January 2021
More

Eclipse Foundation

  • About Us
  • Contact Us
  • Donate
  • Members
  • Governance
  • Code of Conduct
  • Logo and Artwork
  • Board of Directors

Legal

  • Privacy Policy
  • Terms of Use
  • Copyright Agent
  • Eclipse Public License
  • Legal Resources

Useful Links

  • Report a Bug
  • Documentation
  • How to Contribute
  • Mailing Lists
  • Forums
  • Marketplace

Other

  • IDE and Tools
  • Projects
  • Working Groups
  • Research@Eclipse
  • Report a Vulnerability
  • Service Status

Copyright © Eclipse Foundation. All Rights Reserved.

Back to the top