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

Exploring variability-aware execution for testing plugin-based web applications
复制标题

DOI:
10.1145/2568225.2568300
复制
发表时间:
2014-05
期刊:
Proceedings of the 36th International Conference on Software Engineering
影响因子:
--
通讯作者:
H. V. Nguyen;Christian Kästner;T. Nguyen
H. V. Nguyen;Christian Kästner;T. Nguyen
中科院分区:
其他
文献类型:
--
作者:
H. V. Nguyen;Christian Kästner;T. Nguyen

文献摘要

被引文献

相似文献

在基于插件的系统中,当两个或多个插件相互干扰,改变了它们的预期行为时,就会发生插件冲突。由于插件组合(即配置)呈指数爆炸式增长,因此检测插件冲突极具挑战性。在本文中,我们将解决在多种配置下执行测试用例的难题。利用测试的许多执行都是相似的这一事实,我们的可变性感知执行只运行一次普通代码。只有在遇到因特定配置而不同的值时,才会针对每个配置分割执行。为了评估可变性感知执行在大型实际环境中的可扩展性,我们构建了一个名为 Varex 的 PHP 解释器原型,并在流行的 WordPress 博客网络应用程序上运行。结果表明,虽然存在插件交互,但由于存在大量共享,可变性感知执行可在 7 分钟的运行时间内扩展到 2^50 种配置。在研究过程中,我们利用 Varex 检测到了两个插件冲突:一个是最近在 WordPress 论坛上报告的,另一个是以前没有发现的。
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.