Context: Content Management Systems (CMS), such as WordPress, are a very popular category of software for creating web sites and blogs. These systems typically build on top of plugin architectures. Unfortunately, it is not uncommon that the combined activation of multiple plugins in a CMS web site will produce unexpected behavior. Conflict-detection techniques exist but they do not scale. Objective: This paper proposes PENA, a technique to detect conflicts in large sets of plugins as those present in plugin market places. Method: PENA takes on input a configuration, consisting of a potentially large set of plugins, and reports on output the offending plugin combinations. PENA uses an iterative divide-and-conquer search to explore the large space of plugin combinations and a staged filtering process to eliminate false alarms. Results: We evaluated PENA with plugins selected from the WordPress official repository and compared its efficiency and accuracy against the technique that checks conflicts in all pairs of plugins. Results show that PENA is 12.4x to 19.6x more efficient than the comparison baseline and can find as many conflicts as it.
- Testing and debugging