scieee Science in your language
[en] (orig)

The Drupal Framework: a Case Study to Evaluate Variability Testing Techniques

Abstract

Variability testing techniques search for effective but manageable test suites that lead to the rapid detection of faults in systems with high variability. Evaluating the effectiveness of these techniques in real settings is a must but challenging due to the lack of variability-intensive systems with available code, automated tests and fault reports. in this paper, we propose using the Drupal framework as a case study to evaluate variability testing techniques. First, we represent the framework variability as a feature model. Then, we report on extensive data extracted from the Drupal git repository and the Drupal issue tracking system. Among other results, we identified 378 faults in single features and 11 faults triggered by the interaction between two of the features of Drupal v7.23, reported during a one-year period. These data may give a new insight into the distribution of faults in variability-intensive systems and the fault propensity of features. To show the feasibility of our work, we used the case study to evaluate the effectiveness of a historybased test case prioritization criterion. Results suggest that this technique could contribute to accelerate the detection of faults of test suites based on combinatorial testing.

Read accessible full text

The Drupal Framework: a Case Study to Evaluate Variability Testing Techniques

Author: Sánchez Jerez, Ana Belén; Segura Rueda, Sergio; Ruiz Cortés, Antonio
Year: 2014
Source: https://idus.us.es/bitstreams/30246059-2e60-4661-8d4a-0c9e4866f652/download
The D upal F amewo k:
A Case S udy o E alua e Va iabili y Tes ing Techniques
Ana B. Sánchez, Se gio Segu a, and An onio Ruiz-Co és
Depa men o Compu e Languages and Sys ems
Uni e si y o Se ille, Spain
{anabsanchez,se giosegu a,a uiz}@us.es
ABSTRACT
Va iabili y es ing echniques sea ch o e ec i e bu man-
ageable es sui es ha lead o he apid de ec ion o aul s
in sys ems wi h high a iabili y. E alua ing he e ec i eness
o hese echniques in eal se ings is a mus bu challenging
due o he lack o a iabili y-in ensi e sys ems wi h a ail-
able code, au oma ed es s and aul epo s. In his pa-
pe , we p opose using he D upal amewo k as a case s udy
o e alua e a iabili y es ing echniques. Fi s , we ep e-
sen he amewo k a iabili y as a ea u e model. Then,
we epo on ex ensi e da a ex ac ed om he D upal gi
eposi o y and he D upal issue acking sys em. Among
o he esul s, we iden i ied 378 aul s in single ea u es and
11 aul s igge ed by he in e ac ion be ween wo o he
ea u es o D upal 7.23, epo ed du ing a one-yea pe iod.
These da a may gi e a new insigh in o he dis ibu ion o
aul s in a iabili y-in ensi e sys ems and he aul p open-
si y o ea u es. To show he easibili y o ou wo k, we
used he case s udy o e alua e he e ec i eness o a his o y-
based es case p io i iza ion c i e ion. Resul s sugges ha
his echnique could con ibu e o accele a e he de ec ion
o aul s o es sui es based on combina o ial es ing.
Keywo ds
Va iabili y, es ing, ea u e model, au oma ed es ing, es
case selec ion, es case p io i iza ion.
1. INTRODUCTION
Va iabili y de e mines he abili y o so wa e applica ions
o be con igu ed and cus omized. One o he mos p ominen
examples o a iabili y-in ensi e sys ems a e So wa e P od-
uc Lines (SPLs). An SPL is a amily o ela ed so wa e
p oduc s. Each p oduc ep esen s a speci ic combina ion
o ea u es o he SPL. Ins i u ions such as Gene al Mo o s,
NASA and Boeing a e using SPL echnology o dec ease
ime o ma ke and imp o e so wa e quali y [1]. Typically,
SPLs a e modelled by using a iabili y models such as ea-
u e models [3]. A ea u e model ep esen s he se o p od-
Pe mission o make digi al o ha d copies o all o pa o his wo k o
pe sonal o class oom use is g an ed wi hou ee p o ided ha copies a e no
made o dis ibu ed o p o i o comme cial ad an age and ha copies bea
his no ice and he ull ci a ion on he i s page. Copy igh s o componen s
o his wo k owned by o he s han ACM mus be hono ed. Abs ac ing wi h
c edi is pe mi ed. To copy o he wise, o epublish, o pos on se e s o o
edis ibu e o lis s, equi es p io speci ic pe mission and/o a ee.
VaMoS ’14 Nice, F ance.
Copy igh 2014 ACM 978-1-4503-2556-1/14/01 ...$15.00.
h p://dx.doi.o g/10.1145/2556624.2556638.
uc s o an SPL in e ms o ea u es and ela ionships among
hem (see Fig. 3).
The numbe o con igu a ions and dependencies in a i-
abili y models is po en ially huge. Fo ins ance, he Billing
ea u e model a ailable in he SPLOT eposi o y has 88 ea-
u es and 66% o hem a e connec ed by cons ain s, ep e-
sen ing mo e han 1 billion o po en ial p oduc s [15]. This
explosion o combina ions makes es ing a iabili y-in ensi e
sys ems a majo challenge. To add ess his p oblem, e-
sea che s ha e p oposed a ious echniques o educe he
cos o es ing in he p esence o a iabili y, including es
case selec ion and es case p io i iza ion echniques. Tes
case selec ion app oaches [8, 17, 24] selec an app op ia e
subse o he exis ing es sui e acco ding o some co e age
c i e ia. Tes case p io i iza ion app oaches [9, 19, 22, 24]
schedule es cases o execu ion in an o de ha a emp s
o inc ease hei e ec i eness a mee ing some pe o mance
goal, e.g. accele a e he de ec ion o aul s [19].
The numbe o wo ks on a iabili y es ing is g owing
apidly and hus he numbe o expe imen al e alua ions [6,
9, 16]. Howe e , i is ha d o ind eal a iabili y-in ensi e
sys ems wi h a ailable code, es cases, de ailed aul e-
po s and good documen a ion ha enable ep oducible ex-
pe imen s [20, 21]. As a esul , au ho s o en e alua e hei
es ing app oaches using a i icial a iabili y models [8, 9]
and simula ed aul s [6] which in oduce h ea s o alidi y
and weaken hei conclusions. A ela ed p oblem is he lack
o in o ma ion abou he dis ibu ion o aul s in a iabili y-
in ensi e sys ems, e.g. numbe and ypes o aul s, aul
se e i y, e c. This may be an obs acle o he design o new
es ing echniques since esea che s a e no ully awa e o
he ype o aul s hey a e looking o .
In he sea ch o eal a iabili y sys ems some au ho s
ha e explo ed he domain o open sou ce ope a ing sys ems
[7, 13, 21]. Howe e , hese wo ks mainly ocus on he a i-
abili y modelling pe spec i e and hus igno e ele an da a
o es e s such as he numbe o es cases o he dis ibu-
ion o aul s, i.e. how aul s a e dis ibu ed o e he di e -
en ea u es. Also, SPL2GO1is a ca alog o SPLs o which
sou ce code and a iabili y model (e.g. ea u e model) a e
publicly a ailable. Howe e , hese also lack o de ail da a
abou he aul s ound in he p og ams and i is up o he
use o inspec he code sea ching o es cases.
In o de o look o a eal a iabili y-in ensi e sys em wi h
a ailable code, we ollowed he s eps o p e ious au ho s
and looked in o he open sou ce communi y. In pa icu-
la , we ound he open sou ce D upal amewo k [4] o be a
1h p://spl2go.cs.o gu.de/
mo i a ing a iabili y-in ensi e sys em. D upal is a modu-
la web con en managemen amewo k w i en in PHP [4,
23]. D upal p o ides de ailed aul epo s including aul
desc ip ion, aul se e i y, ype, s a us and so on. Also,
mos o he modules o he amewo k include a numbe o
au oma ed es cases. The high numbe o he D upal com-
muni y membe s oge he wi h i s ex ensi e documen a ion
ha e also been s eng hs o choose his amewo k. D upal
is main ained and de eloped by a communi y o mo e han
630,000 use s and de elope s.
In his pape , we p opose using he D upal amewo k as
a mo i a ing case s udy o e alua e a iabili y es ing ech-
niques. We p opose mapping some o he main D upal mod-
ules o ea u es and ep esen he amewo k a iabili y us-
ing a ea u e model. The esul ing model has 28 ea u es, 27
c oss- ee cons ain s and ep esen s 96,768 di e en D upal
con igu a ions. Also, we epo on ex ensi e da a ex ac ed
om he D upal gi eposi o y and he D upal issue ack-
ing sys em e e ed o a pe iod o one yea . Fo each ea u e
unde s udy, we epo i s size, numbe o changes, numbe
o es cases and a ull aul epo . Faul s a e classi ied
acco ding o hei se e i y and he ea u e(s) ha igge
i . The s udy o aul s was eplica ed in wo consecu i e
D upal e sions, 7.22 and 7.23, o s udy he e olu ion in
he dis ibu ion o aul s. Among o he esul s, we iden i-
ied 390 aul s in o al, 11 aul s igge ed by he in e ac ion
be ween wo ea u es and a single aul caused by he in e -
ac ion among h ee ea u es in D upal 7.23. Fo he e al-
ua ion o ou wo k, we used he case s udy o e alua e he
e ec i eness o es case p io i iza ion based on his o ical o
aul s. Mo e speci ically, we used he in o ma ion abou he
aul s collec ed in D upal 7.22 o e ec i ely accele a e he
de ec ion o aul s o a pai wise sui e in D upal 7.23. In
summa y, his wo k con ibu es o gi e a new insigh in o
he dis ibu ion o aul s in a eal a iabili y-in ensi e sys-
em and he aul p opensi y o i s ea u es. Also, his may
be a aluable inpu o d i e he design and e alua ion o
a iabili y es ing app oaches.
The es o he pape is s uc u ed as ollows: Sec ion 2
in oduces he D upal amewo k. Sec ion 3 p esen s he
D upal ea u e model. The in o ma ion abou D upal ea-
u es (size, changes and es s) is p esen ed in Sec ion 4. The
desc ip ion abou aul s de ec ed in D upal 7.22 and 7.23
is p esen ed in Sec ion 5. Sec ion 6 summa izes he main
conclusions o ou s udy. Sec ion 7 shows a p elimina y
e alua ion o ou case s udy. Finally, we summa ize ou
conclusions in Sec ion 8.
2. THE DRUPAL FRAMEWORK
D upal is a highly modula open sou ce web con en man-
agemen amewo k implemen ed in PHP [4, 23]. This ool
can be used o build a a ie y o web si es including in e -
ne po als, e-comme ce applica ions and online newspape s
[23]. D upal is composed o a se o modules. A module is
a collec ion o unc ions ha p o ide ce ain unc ionali y
o he sys em. Ins alled modules in D upal can be enabled
o disabled. An enabled module is ac i a ed o be used by
he D upal sys em. A disabled module is deac i a ed and
adds no unc ionali y o he amewo k. The modules can be
classi ied in o co e modules and addi ional modules [4, 23].
The co e modules a e app o ed by he co e de elope s o he
D upal communi y and hey a e included by de aul in he
basic ins alla ion o D upal amewo k. Howe e , some o
Loca%za%on(Templa%ng(Syndica%on( Logging(
Basic(Con en (
Managemen (
Use (
Managemen (
Session(
Managemen ( URL(Aliasing(
Fo ums( WYSIWYG( E en (
Calenda s( Wo kg oups(
Image(
Galle ies( EEcomme ce( AdSense( Cus om(
Module(
Lib a y(o (Common(Func%ons(
Co e% Addi)onal%
Figu e 1: D upal co e and addi ional modules
hem can be enabled o disabled, while o he s mus always
be enabled. The co e modules a e esponsible o p o iding
he basic unc ionali y ha is used o suppo o he pa s o
he sys em. The D upal co e includes code ha allows he
sys em o boo s ap when i ecei es a eques , a lib a y o
common unc ions equen ly used wi h D upal, and mod-
ules ha p o ide basic unc ionali y like use managemen
and empla ing. Addi ional modules can be di ided in o con-
ibu ed modules and cus om modules. Con ibu ed modules
a e w i en by he D upal communi y and sha ed unde he
same GNU Public License (GPL) as D upal. Cus om mod-
ules a e hose c ea ed by he de elope o websi es ( hi d
pa ies). Fig. 1 depic s some popula co e and addi ional
D upal modules.
2.1 Module s uc u e
A he code le el, e e y D upal module is mapped o a di-
ec o y including he sou ce iles o he module. These iles
may include PHP iles, CSS s yleshee s, Ja aSc ip code,
es cases and help documen s. Also, e e y D upal mod-
ule mus include a .module ile and a .in o ile wi h me a
in o ma ion abou he module. Besides his, a module can
op ionally include he di ec o ies and iles o o he modules,
i.e. submodules. A submodule inc eases he unc ionali y o
he module con aining i .
A D upal .in o ile is a plain ex ile ha desc ibes he
basic in o ma ion equi ed o D upal o ecognize he mod-
ule. The name o his ile mus ma ch he name o he
module. This ile con ains a se o so-called di ec i es. A di-
ec i e is a p ope y name = alue. Some di ec i es can use
an a ay-like syn ax o decla e mul iple alues p ope ies,
name[] = alue. Any line ha begins wi h a semicolon (“;”)
is ea ed as a commen . Fo ins ance, Lis ing 1 desc ibes a
agmen o he iews.in o ile included in he Views module
o D upal 7.23:
Lis ing 1: F agmen o he ile iews.in o
name = Views
desc ip ion = C ea e cus omized lis s and que ies om you db.
package = Views
co e = 7.x
php = 5.2
s yleshee s[all][] = css/ iews.css
dependencies[] = c ools
; Handle s
iles[] = handle s/ iews_handle _a ea.inc
iles[] = handle s/ iews_handle _a ea_ esul .inc
iles[] = handle s/ iews_handle _a ea_ ex .inc
... mo e
; In o ma ion added by d upal.o g on 2013-04-09
e sion = "7.x-3.7"
co e = "7.x"
p ojec = " iews"
The s uc u e o .in o iles is s anda d ac oss all D upal 7
modules. The name and desc ip ion di ec i es speci y he
name and desc ip ion o he module ha will be displayed
in he D upal con igu a ion page. The package di ec i e
de ines which package o g oup o packages he module is
associa ed wi h. On he modules con igu a ion page, mod-
ules a e g ouped and displayed by package. The co e di-
ec i e de ines he e sion o D upal o which he module
was w i en. The php p ope y de ines he e sion o PHP
equi ed by he module. The iles di ec i e is an a ay wi h
he names o he iles o be loaded by D upal. Fu he mo e,
he .in o ile can op ionally include he dependencies ha
he module has wi h o he modules, i.e. modules ha mus
be ins alled and enabled o his module o wo k p ope ly.
In he example, he module Views depends on he module
C ools. The e exis some co e modules ha always ha e o
be ins alled and enabled, i.e. hose including he di ec i e
equi ed =TRUE.
2.2 Module es s
D upal modules can op ionally include a es di ec o y
wi h he es cases associa ed o he module. D upal de-
ines a es case as a class composed o unc ions (i.e. es s).
These es s a e pe o med h ough asse ions, a g oup o
me hods ha check o a condi ion and e u n a Boolean. I
i is TRUE, he es passes, i FALSE, he es ails. The e
exis h ee ypes o es s in D upal, uni , in eg a ion and
upg ade es cases. Uni es s a e me hods ha es an iso-
la ed piece o unc ionali y o a module, such as unc ions
o me hods. In eg a ion es s es how di e en componen s
(i.e. unc ionali y) wo k oge he . These es s may in ol e
any module o he D upal amewo k. In eg a ion es s usu-
ally simula e use in e ac ions wi h he g aphical use in-
e ace h ough HTTP messages. Acco ding o he D upal
documen a ion2, hese es s a e he mos common es s in
D upal. Upg ade es s a e used o de ec aul s caused by
he upg ade o a newe e sion o he amewo k, e.g. om
D upal 6.1 o 7.1. In o de o wo k wi h es s in D upal i
is necessa y o enable he SimpleTes module. This module
is a es ing amewo k mo ed in o co e in D upal 7. Sim-
pleTes au oma ically uns he es cases o all he ins alled
modules. Fig. 2 shows a snapsho o SimpleTes while un-
ning he es s (i.e. 328 es cases and 20,230 asse ions) o
D upal modules.
3. THE DRUPAL FEATURE MODEL
In his sec ion, we desc ibe he p ocess ollowed o model
D upal a iabili y using a ea u e model, depic ed in Fig. 3.
3.1 Fea u e ee
Acco ding o he D upal documen a ion, each module ha
is ins alled and enabled adds a new ea u e o he amewo k
[23]. Thus, we p opose modelling D upal modules as ea-
u es o he ea u e model. Also, when a module is ins alled,
new sub ea u es can be enabled adding ex a unc ionali y
o he module. These ea u es a e conside ed as child en
2h ps://d upal.o g/simple es
Figu e 2: Running D upal es s
ea u es o he module ha con ains hem. Fig. 3 shows he
D upal ea u es ha we e conside ed in ou s udy, 28 in o-
al including he ea u e oo . In pa icula , we i s selec ed
hose D upal co e modules ha mus be always enabled, 7
in o al, e.g. Node. In Fig. 3, hese ea u es appea wi h a
manda o y ela ion wi h he ea u es oo and Field. These
ea u es a e included in all D upal con igu a ions. A D upal
con igu a ion is a alid combina ion o ea u es ins alled and
enabled. Then, we andomly selec ed 20 modules wi hin he
es o he D upal co e modules (e.g. Image) and addi ional
modules (e.g. Views). All hese modules can be op ionally
ins alled and enabled and hus we e modelled as op ional
ea u es in he ea u e model.
Sub ea u es we e modelled conside ing as child en o o he
module hose submodules ha appea inside o i s module
di ec o y. These submodules p o ide ex a unc ionali y o
i s pa en module and hey ha e no meaning wi hou i .
As an example, he ea u e C ools p esen s se e al sub ea-
u es such as C ools access ulese ,C ools cus om con en
and Views con en . Excep ionally, he submodules o Node,
Blog,Book and Fo um, appea in sepa a e module olde s,
howe e , he desc ip ion o he modules in he D upal doc-
umen a ion indica es ha hese modules a e specializa ion-
s/ ypes o Node. Wi h espec o he ela ionships o and
al e na i e none o hem we e iden i ied among he ea u es
conside ed in Fig. 3.
3.2 C oss- ee cons ain s
We de ine he dependencies among modules as c oss- ee
cons ain s in he ea u e model. Cons ain s in ea u e
models a e ypically o he o m equi es o excludes. I
a ea u e A equi es a ea u e B, he inclusion o A in a con-
igu a ion implies he inclusion o B in such con igu a ion.
On he o he hand, i a ea u e A excludes a ea u e B, bo h
ea u es canno be pa o he same con igu a ion.
C oss- ee cons ain s we e iden i ied by manually inspec -
ing he dependencies di ec i e in he .in o ile o each mod-
ule. Fo each dependency, we c ea ed a equi es cons ain
in he ea u e model, 27 in o al. Fo ins ance, conside
he iews.in o ile depic ed in Lis ing 1. The ile indica es
ha Views depends on he C ools module, i.e. dependen-
cies[]=c ools. Thus, we es ablished a equi es cons ain be-
ween modules Views and C ools. No exclude cons ain s
we e iden i ied among he modules. In e es ingly, we ound
D upal 7.23
Node Fil e C ools
File
Op ions
Agg ega o
BookBlog
Fo um
C ools access
ulese
C ools cus om
con en
Views
con en
Field Field UI
Field SQL
s o age
Image
Lis
Numbe
Sys em Use Views
Views UI
Taxonomy Commen
Tex
Block
Tes ing
Fo um Requi es Taxonomy Op ions Requi es Field SQL s o age Views UI Requi es C ools
Fo um Requi es Op ions Field UI Requi es Field Taxonomy Requi es Op ions
Fo um Requi es Field Field UI Requi es Field SQL s o age Taxonomy Requi es Field
Fo um Requi es Field SQL s o age Image Requi es File Taxonomy Requi es Field SQL s o age
Fo um Requi es Commen Image Requi es Field Commen Requi es Tex
Fo um Requi es Tex Image Requi es Field SQL s o age Commen Requi es Field
Tex Requi es Field SQL s o age File Requi es Field Commen Requi es Field SQL s o age
Lis Requi es Field SQL s o age File Requi es Field SQL s o age
Lis Requi es Op ions Views con en Requi es Views
Numbe Requi es Field SQL s o age Views Requi es C ools
Figu e 3: D upal ea u e model
ha all modules in he same e sion o D upal a e expec ed
o wo k ine oge he . I a D upal module p esen s incom-
pa ibili ies wi h o he s, his is epo ed as a bug ha mus
be ixed. As a sani y check, we con i med he cons ain s
iden i ied using he JIT D upal module (Ja asc ip In oVis
Toolki ) which shows a g aphical ep esen a ion o he mod-
ules and hei ela ionships.
The a io o ea u es in ol ed in c oss- ee cons ain s o
he o al numbe o ea u es (CTCR) is 57.1%. The model
ep esen s 96,768 alid D upal con igu a ions.
4. DRUPAL FEATURES DATA
In his sec ion, we epo on he size, ecen changes and
es cases o he D upal ea u es shown in Fig. 3. These da a
a e o en used as good indica o s o he e o -p oneness o
a so wa e applica ion. Addi ionally, his may p o ide e-
sea che s and p ac i ione s wi h help ul in o ma ion abou
he cha ac e is ics o ea u es in a eal a iabili y-in ensi e
applica ion. In pa icula , o each D upal ea u e, we col-
lec ed he ollowing da a:
Fea u e size. This p o ides a ough idea o he complex-
i y o each ea u e and i s e o p oneness. The size o a
ea u e was calcula ed in e ms o i s numbe o Lines o
Code (LoC). LoC we e coun ed using he wc Linux com-
mand on each one o he sou ce iles included in he module
di ec o y associa ed o each ea u e. The command used is
shown below. Blank lines and commen s we e included in
he coun ing o simplici y. Tes iles we e excluded om
he coun ing. Table 1 depic s he numbe o LoC o each
ea u e. The sizes anged be ween 326 LoC ( ea u e C ools
cus om con en ) and 70,372 LoC ( ea u e Views). I is no e-
wo hy ha sub ea u es a e signi ican ly smalle han hei
espec i e pa en ea u es.
wc -l ‘ ind . -iname "module*" -o -iname "o he ile*"‘
Numbe o changes. Changes in he code a e likely o
in oduce aul s [24]. Thus, he numbe o changes in a
ea u e may be a good indica o o i s e o p oneness and
could help us o p edic aul s in he u u e. To ob ain he
numbe o changes made in each ea u e, we collec ed he
commi s om he gi eposi o y o D upal3. The sea ch was
na owed by ocusing on he changes pe o med du ing a
pe iod o one yea , om Sep embe 30 h 2012 o Sep embe
29 h 2013. Fi s , we cloned he en i e D upal 7.x eposi o y.
Then, we applied he console command showed below o ge
he numbe o commi s by module, e sion and da e. As
illus a ed in Table 1, he numbe o changes anged be ween
0 ( ea u e Blog) and 43 ( ea u e Views). The modules wi h
he highes numbe o commi s a e Views (43) and C ools
(24). I is no ewo hy ha hese a e he only addi ional
modules conside ed in Fig. 3, i.e. no included in D upal
co e.
gi log --p e y=oneline --a e ={2012-09-30}
--be o e={2013-09-29} 7.22..7.23 name_module | wc -l
Numbe o es s. Table 1 shows he o al numbe o es
cases and asse ions o each ea u e, ob ained om he ou -
pu o he SimpleTes module. In o al, D upal ea u es
include 328 es cases and 20,230 asse ions. In some cases
3h p://d upalcode.o g/p ojec /d upal.gi
such as C ools, he numbe o es s (7 es cases and 121 as-
se ions) seems low conside ing ha he size o he ea u e
is o e 9,000 LoC. I is also no ewo hy ha some o he
sub ea u es include no es cases.
Fea u e LoC Changes Tes s
TCs Asse s.
Agg ega o 4,384 1 12 985
Block 3,806 3 9 675
Blog 647 - 1 244
Book 2,734 1 1 531
Commen 6,547 1 14 3,287
C ools 9,267 24 7 121
C ools access ulese 385 1 - -
C ools cus om con en 326 - - -
Field 9,561 9 9 870
Field SQL s o age 1,428 2 1 94
Field UI 3,895 3 3 287
File 2,428 1 39 2,293
Fil e 5,206 3 9 958
Fo um 3,262 2 2 677
Image 6,570 3 13 811
Lis 638 1 3 232
Node 11,397 4 32 1,391
Numbe 632 1 1 87
Op ions 1,057 1 2 227
Sys em 23,478 16 58 2,138
Taxonomy 6,625 4 14 677
Tes ing 3,002 - 12 219
Tex 1,286 1 3 444
Use 10,117 12 23 1,355
Views 70,372 43 51 1,089
Views con en 3,468 1 - -
Views UI 2,462 2 9 538
To al 194,980 140 328 20,230
Table 1: Fea u e da a
5. FAULTS IN DRUPAL
In his sec ion, we epo he aul s de ec ed in he D u-
pal modules shown in Fig. 3. The collec ion o aul s was
ca ied ou on he D upal issue acking sys em4. To ge he
in o ma ion abou aul s, D upal o e s a web-based sea ch
ool o il e he aul s by se e i y, s a us, module and D u-
pal e sion. The sea ches on D upal issue acking we e
pe o med in he da e ange om Sep embe 30 h 2012 o
Sep embe 29 h 2013. We collec ed he aul s o wo consec-
u i e D upal e sions, 7.22 and 7.23. We conside ed bo h
e sions o achie e a be e unde s anding o he e olu ion
o a eal sys em and due o he exis ing in e es in ob aining
his o ical o aul s o es ing [5, 10].
The p ocess o collec ing aul s was manual. Fi s , we il-
e ed he aul s by he name o he module (i.e. label
name module.module in he issue acking sys em). Second,
we e ined he sea ch by he D upal e sions 7.23 and 7.22
and he da es p e iously men ioned. A o al o 453 aul s
ma ched he ini ial sea ch o D upal 7.23 and a o al o
481 aul s o D upal 7.22. In o de o iden i y he aul s
4h ps://d upal.o g/p ojec /issues

Module
D upal 7.22 D upal 7.23
Se e i y To al Se e i y To al
Mino No mal Majo C i ical Mino No mal Majo C i ical
Agg ega o - 6 1 - 7 - 7 - - 7
Block 2 12 2 1 17 2 9 2 1 14
Blog - 2 1 - 3 - 1 1 - 2
Book 1 5 - - 6 1 4 - - 5
Commen 2 16 2 1 21 2 13 2 2 19
C ools 7 130 20 8 165 7 130 20 8 165
Field UI 3 7 - - 10 3 4 - - 7
File 1 14 3 - 18 1 15 3 - 19
Fil e - 10 1 - 11 - 9 1 - 10
Fo um - 3 1 - 4 - 3 - - 3
Image - 9 1 1 11 - 9 1 1 11
Node 2 17 - 2 21 2 16 - 2 20
Numbe - 1 - - 1 - - - - -
Sys em 4 23 4 2 33 4 20 4 2 30
Taxonomy - 20 4 1 25 - 23 4 1 28
Tes ing - 4 2 1 7 - 4 2 1 7
Tex - 5 - - 5 - 4 - - 4
Use 4 15 - - 19 4 13 - - 17
Views - 2 - - 2 - 1 - - 1
Views Con en 1 18 2 - 21 1 18 2 - 21
To al 27 319 44 17 407 27 303 42 18 390
Table 2: Faul s in D upal 7.22 and 7.23
caused by he in e ac ion o se e al modules among all he
aul s ound, we i s ied a simila app oach o he one
p esen ed by A ho e al. [2] in he con ex o ope a ing
sys ems. This is, o each module, we sea ched o aul s
desc ip ions con aining he keywo ds “b eak”, “con lic ” o
“o e w i e”. Howe e , he sea ch did no e u n any esul
ela ed wi h in e ac ion among modules. Thus, we decided
o ollow a di e en app oach. Fo each module, we sea ched
o aul s desc ip ions and ags including he name (wi hou
dis inguishing be ween lowe and uppe case) o any o he
o he modules in Fig. 3. Fo ins ance, i a epo ed aul
in he module C ools included he name o he module Tax-
onomy in i s desc ip ion o ags, we selec ed he aul as a
candida e in eg a ion aul be ween C ools and Taxonomy.
Then, we manually checked which o he aul s ound we e
ac ually in eg a ion aul s. Se e al o he candida e in eg a-
ion aul s we e disca ded a e checking hem. A o al o
18 aul s ma ched in he sea ch o bo h e sions: 17 ou o
18 we e caused by he in e ac ion o wo modules and one o
hem by he in e ac ion o h ee modules. I is possible ha
some epo e s could ha e no included he in ol ed module
names in some in e ac ion aul s. As a esul , some o hese
aul s could ha e no been iden i ied.
Then, he sea ch was e ined o elimina e hose aul s ha
we e no accep ed by he D upal communi y, namely: du-
plica ed bugs,non ep oducible bugs and bugs wo king as
designed. The la e a e issues ha ha e been conside ed
no o be a bug because he epo ed beha iou was ei he
an in en ional pa o he p ojec , o he issue was caused
by cus omiza ions manually applied by he use . This le
390 alid aul s in D upal 7.23 and 407 in D upal 7.22.
Table 2 summa izes he aul s ound in bo h e sion o
D upal modules. Fo each module, he o al numbe o
aul s (single and in e ac ion aul s) is p esen ed classi y-
ing hem acco ding o hei se e i y le el. In e ac ion aul s
a e coun ed in he modules in which hey we e de ec ed.
Only he modules in which we ound aul s a e shown. We
may ema k ha he e exis modules such as C ools ha do
no disc imina e among e sions o D upal 7, i.e. hey only
speci y 7.x. This explains he same numbe and se e i y
o aul s ha appea in Table 2 o C ools. On he o he
hand, he e exis some aul s ha appea in D upal 7.22
and con inue in 7.23. Fo example, he same mino aul o
he module Book appea s in bo h e sions. This is no he
case o he module Agg ega o ha p esen s he same num-
be o aul s in 7.23 and 7.22 bu he aul s a e di e en .
Among he alid aul s ound, we iden i ied 12 in eg a ion
aul s. The ype o in e ac ion and he name o he mod-
ules causing he aul a e p esen ed in Table 3. Among he
in eg a ion aul s de ec ed, 11 we e caused by he in e ac-
ion be ween wo modules and jus one was caused by he
in e ac ion among h ee modules. All o hese aul s we e
iden i ied in bo h D upal e sions. I is no ewo hy ha 8
ou o 12 aul s we e caused by he in e ac ion o C ools wi h
o he module. C ools p o ides a se o APIs and ools o
modules o imp o e he de elope expe ience. Also, 6 ou
o 12 aul s we e igge ed by he in e ac ion o he module
Use wi h o he module. The module Use allows use s o
egis e , log in, and log ou and suppo s use oles and pe -
missions. Finally, since he p ocess o aul collec ion was
manual, he e exis s he possibili y ha some aul s could
ha e no been co ec ly iden i ied.
6. DISCUSSION
Nex , we p esen some o he conclusions o ou s udy:
Rela ion be ween aul s and ea u e size. We ound
ha 7 ou o he 10 la ges ea u es we e also among he
10 ea u es wi h a highe numbe o aul s. Simila ly, 8
ou o 10 smalles ea u es we e among he 10 ea u es wi h
less aul s. This sugges s ha he e exis s a ce ain co e-
la ion be ween he size o a ea u e and he p obabili y o
aul s on i . Howe e , we ound some excep ions. Fo in-
s ance, he la ges ea u e in D upal, Views, has a single
epo ed aul . Con e sely, he ea u e wi h a highes num-
be o aul s, C ools, is he six h la ges ea u e in D upal.
Thus, we conclude ha he size o a ea u e could be in e -
p e ed as a ough es ima ion o i s e o -p oneness.
Rela ion be ween aul s and changes. We ound ha 6
ou o he 10 ea u es wi h a highe numbe o changes we e
also among he 10 ea u es wi h a highe numbe o aul s.
In ac , he wo ea u es wi h he highes numbe o aul s,
C ools and Sys em, we e he second and hi d ea u es wi h
mo e changes du ing he las 12 mon hs espec i ely. We
also obse ed ha he ea u es wi h ew o no changes a all
we e among hose wi h a lowe numbe o aul s. This also
sugges s a co ela ion be ween he numbe o changes in a
ea u e and he p obabili y o aul s on i .
Rela ion be ween aul s and ype o ea u es. We
iden i ied 81 aul s in he co e ea u es o he D upal ea u e
model (81/7 = 11.5 aul s pe ea u e) and 309 aul s in he
op ional ea u es (309/20 = 15.4 aul s pe ea u e). Co e
ea u es ha e a lowe a io o aul s pe ea u e. We p esume
ha his is due o he ac ha co e ea u es a e included
in all D upal con igu a ions and hus hey a e be e sup-
po ed and mo e s able. Rega ding aul se e i y, a ound
78% o he aul s we e classi ied as no mal, 11% as majo ,
7% as mino and 4% as c i ical. We ound no co ela ion
be ween aul se e i y and he ypes o ea u es.
Rela ion be ween aul s and CTC (C oss-T ee Con-
s ain s). In [6], Baghe i e al. s udied se e al ea u e
model me ics and sugges ed ha hose ea u es in ol ed in
a highe numbe o CTCs a e mo e e o -p one. To explo e
his ac , we analyzed he ea u es in ol ed in cons ain s
in o de o s udy he ela ion be ween hem and hei aul
p opensi y. In pa icula , we ound ha only 4 ou o he 10
ea u es in ol ed in a highe numbe o CTCs we e among
he 10 ea u es wi h a highe numbe o aul s. In ac , he
h ee ea u es in ol ed in a highe numbe o cons ain s in
D upal, Field SQL s o age (10), Field (6) and Fo um (6)
had jus h ee aul s in o al. The e o e, we conclude ha
he co ela ion be ween ea u e in ol emen in CTCs and
aul p opensi y is no con i med in ou s udy.
Tes cases. We ound a clea ela ion be ween he size o
he ea u es and he numbe o es cases and asse ions in-
cluded as a pa o hei sou ce code. Hence, o ins ance,
he wo la ges D upal ea u es, Sys ems and View, we e
hose including a la ge numbe o es cases, 58 and 51
espec i ely. This seems easonable since la ge p og am e-
qui e a highe numbe o es s. Rega ding he dis ibu ion o
asse ions in he es cases esul s we e dispa a e. As an ex-
ample, ea u e Sys em includes 2,138 asse ions dis ibu ed
along 58 es cases while ea u e Commen includes 3,287
asse ions dis ibu ed along 14 es cases. We p esume his
is simply due o di e en de elope ’s p ac ices.
n-wise Modules in ol ed
2 Blog + Use
2 Commen + Use
2 C ools + Use
2 C ools + Tex
2 C ools + Use
3 C ools + Views con en + Fil e
2 C ools + Tex
2 C ools + Views
2 C ools + Taxonomy
2 C ools + Taxonomy
2 Sys em + Use
2 Use + Image
Table 3: In e a ion aul s in D upal
7. EVALUATION
P e ious s udies show ha he de ec ion o aul s in an
applica ion can be accele a ed by es ing i s hose compo-
nen s ha showed o be mo e e o -p one in p e ious e -
sions o he so wa e. This is e e ed o as his o y-based es
case p io i iza ion [5, 10]. In his sec ion, we use he D upal
case s udy o e alua e whe he his p io i iza ion echnique
could con ibu e o accele a e he de ec ion o aul s o a
pai wise es sui e. Pai wise is a well-known es case se-
lec ion app oach ha gene a es all possible combina ions o
pai s o ea u es based on he obse a ion ha mos aul s
o igina e om a single ea u e o by he in e ac ion o wo
ea u es [16]. In his scena io, we de ine a es case as a
con igu a ion o he D upal amewo k o be es ed, i.e. a
se o ea u es.
The e alua ion was pe o med in se e al s eps. Fi s ,
we ansla ed he D upal ea u e model o SPLX o ma
o make i machine-p ocessable [14]. Then, we seeded he
model wi h he aul s de ec ed in D upal 7.23, 390 in o al.
To his pu pose, we c ea ed a lis o aul y ea u e se s. Each
se simula ed aul s igge ed by n ea u es (n∈[1,3]). Fo
ins ance, he lis {{Node}{C ools,Use }} simula es a aul
in he ea u e Node and ano he aul caused by he in e -
ac ion be ween he C ools and Use ea u es. Second, we
used he SPLCAT ool [11] o gene a e a pai wise sui e o
he D upal ea u e model. As a esul , we ob ained a se
o 10 es cases (ou o 96,768) ha co e ed all he possible
pai s o ea u e combina ions. Then, we checked whe he
he pai wise sui e de ec ed he seeded aul s. We consid-
e ed ha a es case de ec s a aul i he es case includes
he ea u e(s) ha igge he aul . The pai wise es sui e
de ec ed all he seeded aul s.
Nex , we measu ed how as he aul s we e de ec ed by
he pai wise sui e calcula ing he APFD (A e age Pe cen -
age o Faul s De ec ed) me ic [18]. The APFD me ic mea-
su es he weigh ed a e age o he pe cen age o aul s de-
ec ed du ing he execu ion o he es sui e [18]. To o mally
illus a e APFD, le Tbe a es sui e which con ains n es
cases, and le Fbe a se o m aul s e ealed by T. Le TFi
be he posi ion o he i s es case in o de ing T’ o Twhich
e eals he aul i. The APFD me ic o he es sui e T’ is
gi en by he equa ion: APFD = 1−T F1+T F2+...+T Fn
n×m+1
2n.
APFD alue anges om 0 o 1.
The esul ing APFD alue o he pai wise sui e was 86.2%.
Then, we p io i ized he es sui e placing i s hose es
cases ha included he ea u es wi h mo e aul s in he p e-
ious e sion o D upal. Mo e speci ically, each es case
was gi en a p io i y alue equal o he sum o he aul s
de ec ed in i s ea u es in D upal 7.22. Then, he lis was
o de ed scheduling i s o es ing hose es cases wi h a
highe p io i y alue. The APFD me ic o he p io i ized
sui e was 94.2%, imp o ing up o 8 poin s he APFD o he
pai wise sui e (86.2%). This sugges s ha using aul his-
o y in o ma ion con ibu es o accele a e he de ec ion o
aul s o es sui es based on combina o ial es ing.
8. CONCLUSIONS
In his pape , we p esen ed he D upal amewo k as a
mo i a ing eal a iabili y-in ensi e sys em. In con as o
he ela ed wo k on a iabili y modelling in open-sou ce sys-
ems, we ocused on he es ing pe spec i e p o iding de-
ailed da a abou he aul dis ibu ion and aul s p open-
si y o i s ea u es. Also, we epo ed on how es cases a e
dis ibu ed and a anged in he amewo k p o iding help-
ul eedback o esea che s and p ac i ione s in he ield o
a iabili y. All hese da a may be a aluable asse o e alu-
a e a iabili y es ing echniques in a eal se up a he han
using andom a iabili y models and simula ed aul s. To
show he easibili y o ou wo k, we used he case s udy o
e alua e he e ec i eness o a his o y-based es case p i-
o i iza ion c i e ion. Resul s sugges ha his app oach in
combina ion wi h pai wise could con ibu e o accele a e he
de ec ion o aul s in a iabili y-in ensi e sys ems.
9. ACKNOWLEDGMENTS
This wo k was pa ially suppo ed by he Eu opean Com-
mission (FEDER), he Spanish and he Andalusian R&D&I
p og ammes (g an s TIN2009-07366 (SETI), TIN2012-32273
(TAPAS), TIC-5906 (THEOS), TIC-1867 (COPAS)).
10. REFERENCES
[1] S. Apel, A. on Rhein, P. Wendle , A. G ¨
oBlinge ,
and D. Beye . S a egies o p oduc -line e i ica ion:
case s udies and expe imen s. In In e na ional
Con e ence on So wa e Enginee ing, 2013.
[2] C. A ho, K. Suzaki, R. Di Cosmo, R. T einen, and
S. Zacchi oli. Why do so wa e packages con lic ? In
Con e ence on Mining So wa e Reposi o ies, 2012.
[3] D. Bena ides, S. Segu a, and A. Ruiz-Co ´es.
Au oma ed analyses o ea u e models 20 yea s la e :
A li e a u e e iew. In o ma ion Sys ems, 2010.
[4] D. Buy ae . D upal F amewo k.
h p://www.d upal.o g, accessed in Oc obe 2013.
[5] E. C. P. C is ian Simons. Reg ession es cases
p io i iza ion using ailu e pu sui sampling. In ISDA,
2010.
[6] F. Ensan, E. Baghe i, and D. Gase ic. E olu iona y
sea ch-based es gene a ion o so wa e p oduc line
ea u e models. In Con e ence on Ad anced
In o ma ion Sys ems Enginee ing (CAiSE’12), 2012.
[7] J. A. Galindo, D. Bena ides, and S. Segu a. Debian
packages eposi o ies as so wa e p oduc line models.
owa ds au oma ed analysis. In ACOTA, 2010.
[8] J. Guo, J. Whi e, G. Wang, J. Li, and Y. Wang. A
gene ic algo i hm o op imized ea u e selec ion wi h
esou ce cons ain s in so wa e p oduc lines. Jou nal
o Sys ems and So wa e, 2011.
[9] C. Hena d, M. Papadakis, G. Pe ouin, J. Klein,
P. Heymans, and Y. L. T aon. Bypassing he
combina o ial explosion: Using simila i y o gene a e
and p io i ize -wise es sui es o la ge so wa e
p oduc lines. Technical epo , 2012.
[10] Y.-C. Huang, C.-Y. Huang, J.-R. Chang, and T.-Y.
Chen. Design and analysis o cos -cognizan es case
p io i iza ion using gene ic algo i hm wi h es
his o y. In Compu e So wa e and Applica ions
Con e ence, 2010.
[11] M. F. Johansen, O. Haugen, and F. Fleu ey.
P ope ies o ealis ic ea u e models make
combina o ial es ing o p oduc lines easible. In
MODELS, 2011.
[12] M. F. Johansen, O. Haugen, F. Fleu ey, A. G.
Eldega d, and T. Sy e sen. Gene a ing be e pa ial
co e ing a ays by modeling weigh s on sub-p oduc
lines. In In e na ional Con e ence MODELS, 2012.
[13] R. Lo u o, S. She, T. Be ge , K. Cza necki, and
A. Wasowski. E olu ion o he linux ke nel a iabili y
model. In SPLC, 2010.
[14] M. Mendonca. E icien Reasoning Techniques o
La ge Scale Fea u e Models. PhD hesis, Uni e si y o
Wa e loo, 2009.
[15] M. Mendonca, M. B anco, and D. Cowan. S.p.l.o. . -
so wa e p oduc lines online ools. In OOPSLA, 2009.
[16] G. Pe ouin, S. Os e , S. Sen, J. Klein, B. Bud y, and
Y. le T aon. Pai wise es ing o so wa e p oduc
lines: compa ison o wo app oaches. So wa e Quali y
Jou nal, 2011.
[17] G. Pe ouin, S. Sen, J. Klein, B. Baud y, and
Y. le T aon. Au oma ed and scalable -wise es case
gene a ion s a egies o so wa e p oduc lines. In
Con e ence So wa e Tes ing, Ve i ica ion and
Valida ion, 2010.
[18] G. Ro he mel, R. Un ch, C. Chu, and M. Ha old.
P io i izing es cases o eg ession es ing. IEEE
T ans. So wa e Eng, 27:929–948, 2001.
[19] A. B. S´anchez, S. Segu a, and A. Ruiz-Co ´es. A
compa ison o es case p io i iza ion c i e ia o
so wa e p oduc lines. Technical epo , Uni e si y o
Se ille, Spain., 2013.
[20] S. Segu a and A. Ruiz-Co ´es. Benchma king on he
au oma ed analyses o ea u e models: A p elimina y
oadmap. In VaMoS, 2009.
[21] S. She, R. Lo u o, T. Be ge , A. Wasowski, and
k zysz o Cza necki. The a iabili y model o he linux
ke nel. In In e na ional Wo kshop on Va iabili y
Modelling o So wa e-in ensi e Sys ems, 2010.
[22] H. S ikan h, M. B. Cohen, and X. Qu. Reducing ield
ailu es in sys em con igu able so wa e: Cos -based
p io i iza ion. 2009.
[23] T. Tomlinson and J. K. VanDyk. P o D upal 7
de elopmen : hi d edi ion. 2010.
[24] S. Yoo and M. Ha man. Reg ession es ing
minimisa ion, selec ion and p io i isa ion: A su ey. In
So wa e Tes ing, Ve i ica ion and Reliabili y, 2012.