kirancodes.me
To Proof Maintenance & Beyond!

Exploring variability-aware execution for testing plugin-based web applications

Hung Viet Nguyen, Christian Kästner, Tien N. Nguyen

Abstract

In plugin-based systems, plugin conflicts may occur when two or more plugins interfere with one another, changing their expected behaviors. It is highly challenging to detect plugin conflicts due to the exponential explosion of the combinations of plugins (i.e., configurations). In this paper, we address the challenge of executing a test case over many configurations. Leveraging the fact that many executions of a test are similar, our variability-aware execution runs common code once. Only when encountering values that are different depending on specific configurations will the execution split to run for each of them. To evaluate the scalability of variability-aware execution on a large real-world setting, we built a prototype PHP interpreter called Varex and ran it on the popular WordPress blogging Web application. The results show that while plugin interactions exist, there is a significant amount of sharing that allows variability-aware execution to scale to 2^50 configurations within seven minutes of running time. During our study, with Varex, we were able to detect two plugin conflicts: one was recently reported on WordPress forum and another one was not previously discovered.

BibTeX
@inproceedings{Nguyen-al:ICSE14,
  author    = {Hung Viet Nguyen and
               Christian K{\"{a}}stner and
               Tien N. Nguyen},
  title     = {Exploring variability-aware execution for testing plugin-based web applications},
  booktitle = {ICSE},
  pages     = {907--918},
  publisher = {{ACM}},
  year      = {2014},
}

Related papers