Test case prioritization techniques aim to identify the optimal ordering of tests to accelerate the detection of faults. The importance of these techniques has been recognized in the context of Software Product Lines (SPLs), where the potentially huge number of products makes testing extremely challenging. We found that the open source Drupal framework shares most of the principles and challenges of SPL development and it can be considered a real-world example of family of products. In a previous work, we represented the Drupal configuration space as a feature model and we collected extra functional information about its features from open repositories. Part of this data proved to be a good indicator of faults propensity in Drupal features. Thus, they become valuable assets to prioritize tests in individual Drupal products. In this paper, we present SmarTest, a test prioritization tool for accelerating the detection of faults in Drupal. SmarTest has been developed as an extension of the Drupal core testing system. SmarTest supports the prioritization of tests providing faster feedback and letting testers begin correcting critical faults earlier. Different test prioritization criteria can be selected in SmarTest, such as prioritization based on the number of commits made in the code, or based on the tests that failed in last executions. A customizable dashboard with significant system information to guide the testing is also provided by SmarTest at run-time. This work represents an interesting application of SPL-inspired testing techniques to real-world software systems, which could be applicable to other open-source SPLs.
[1]
Klaus Pohl,et al.
Software product line engineering and variability management: achievements and challenges
,
2014,
FOSE.
[2]
John D. McGregor,et al.
On strategies for testing software product lines: A systematic literature review
,
2014,
Inf. Softw. Technol..
[3]
Gunter Saake,et al.
Similarity-based prioritization in software product-line testing
,
2014,
SPLC.
[4]
Jacques Klein,et al.
Multi-objective test generation for software product lines
,
2013,
SPLC '13.
[5]
Arnaud Gotlieb,et al.
Practical pairwise testing for software product lines
,
2013,
SPLC '13.
[6]
Antonio Ruiz Cortés,et al.
Multi-objective test case prioritization in highly configurable systems: A case study
,
2016,
J. Syst. Softw..
[7]
Sergio Segura,et al.
The Drupal framework: a case study to evaluate variability testing techniques
,
2014,
VaMoS '14.
[8]
Sergio Segura,et al.
Variability testing in the wild: the Drupal case study
,
2017,
Software & Systems Modeling.
[9]
Enrique Alba,et al.
A parallel evolutionary algorithm for prioritized pairwise testing of software product lines
,
2014,
GECCO.
[10]
Pierre-Yves Schobbens,et al.
Abstract test case generation for behavioural testing of software product lines
,
2014,
SPLC '14.