SlideShare a Scribd company logo
1 of 77
Download to read offline
X"PERT:(Accurate(Identification((
of(Cross2Browser(Issues((
in(Web(Applications(
)
Shauvik Roy Choudhary, Mukul Prasad, Alessandro Orso
Labs of America
Partially supported by
Web(Applications9
2
3
4
Mozilla(Firefox) Internet(Explorer)
5
Mozilla(Firefox) Internet(Explorer)
6
Google(Chrome)
7
Apple(Safari)
8
Apple(Safari)Mozilla(Firefox)
9
Mozilla(Firefox)
10
Mozilla(Firefox)
Internet(Explorer)
11
Mozilla(Firefox)
Internet(Explorer)
(9
Web(Developer)
(9
Web(Developer)
(9
Web(Developer)
(
Browser(versions(last(year9
9
9
Source:(StatCounter.com9
(
Browser(versions(last(year9
with(at(least(1%(market(share9
9
150mn(visits/month((StatCounter.com)9
Challenges(
9
Manual(inspection9
is(expensive9
DOM(differs(9
between(browsers9
Mimic(end(user’s9
perception(9
Produce(readable,(9
effective(&(actionable(9
reports9
Engineering9
Issues…9
Modern(apps(have9
many(dynamic(screens(9
Detection(of(
Cross2Browser(Issues((XBI)9
Web(Application9
12
My Awesome Site
Model(Generation9 Model(Comparison9
Error(Report9
Model(Definition((
and(Comparison9
WebDiff([ICSM’10])
Roy(Choudhary(and(Orso9
CrossCheck([ICST’12])
Roy(Choudhary,(Prasad(and(Orso9
CrossT([ICSE’11](
Mesbah(and(Prasad9
Screen(Transition(Graph)
Model(Definition((
and(Comparison9
WebDiff([ICSM’10])
Roy(Choudhary(and(Orso9
CrossCheck([ICST’12])
Roy(Choudhary,(Prasad(and(Orso9
CrossT([ICSE’11](
Mesbah(and(Prasad9
Screen(Model)
Screen(image(9
+(geometry9
DOM(Tree9
Model(Definition((
and(Comparison9
WebDiff([ICSM’10])
Roy(Choudhary(and(Orso9
CrossCheck([ICST’12])
Roy(Choudhary,(Prasad(and(Orso9
CrossT([ICSE’11](
Mesbah(and(Prasad9
Study(of(Real(World((
Cross2Browser(Issues((XBIs)9
•  Examined 100 websites
•  Found 23 with XBIs
•  XBI Types
o Behavioral XBIs
o Content XBIs
o Structural XBIs
((9%)
22%)
30%)
57%)
Text
Visual
Random(URL(Generator9
Limitations(of((
existing(techniques9
•  Miss Structural XBIs
•  Focus on symptoms rather than
causes
o  Duplicate reports
o  Low Precision
Example9
Example(
9
Example(
9
Example(
9
Behavior(XBI)
9%)
Example(
9
Example(
9
Content(XBI)
(Visual)(–(30%)
Example(
9
Structural(XBI)
57%)
Content(XBI)
(Visual)(–(30%)
Example(
9
Content(XBI)
(Visual)(–(30%)
Content(XBI)
(Text)(–(22%)
Structural(XBI)
57%)
Comprehensive(
XBI(Detection9
•  Behavioral XBIs
•  Content XBIs
•  Structural XBIs
Text
Visual
Comprehensive(
XBI(Detection9
•  Behavioral XBIs
•  Content XBIs
•  Structural XBIs
Text
Visual
Behavior(check(using(9
Graph(Isomorphism9
CrossCheck([ICST’12])
Roy(Choudhary,(Prasad(and(Orso9
CrossT([ICSE’11](
Mesbah(and(Prasad9
Comprehensive(
XBI(Detection9
•  Behavioral XBIs
•  Content XBIs
•  Structural XBIs
Text
Visual
Text(Content)
check(using(9
String(equality9
WebDiff([ICSM’10])
Roy(Choudhary(and(Orso9
CrossCheck([ICST’12])
Roy(Choudhary,(Prasad(and(Orso9
CrossT([ICSE’11](
Mesbah(and(Prasad9
Comprehensive(
XBI(Detection9
•  Behavioral XBIs
•  Content XBIs
•  Structural XBIs
Text
Visual
Visual(Content)
check(using(9
Image(Matching9
Computer9
Vision9
WebDiff([ICSM’10])
Roy(Choudhary(and(Orso9
CrossCheck([ICST’12])
Roy(Choudhary,(Prasad(and(Orso9
Detecting(Structural(XBIs(
9•  Intuition:
Disruption in the relative
arrangement of web page
elements leads to Structural XBIs
•  Idea:
Abstraction to represent relative
arrangement and compare it to
expose errors
Alignment(Graph((AG)(
9
•  A graph capturing structural
relationships between elements
(rectangles) on the webpage
Alignment(Graph((AG)(
9
•  A graph capturing structural
relationships between elements
(rectangles) on the webpage
•  An AG has:
o Containment relationships
o Alignment relationships
o Attributes
above9
right2align9
left2align9
Step(1:(AG(Construction(
9
Step(1:(AG(Construction(
9
Step(1:(AG(Construction(
9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
19
29
39
49
59
69
79
89
99
109
119
129
139
149
159
169
179
189
Step(1:(AG(Construction(
a.(Containment(Relationship)
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
e(contains(e’(iff9
•  ((x1(≤(x1’( y1(≤(y1’( x2(≥(x2’( y2(≥(y2’()(,(and9
•  if((same(bounds(and((XPath(e)(≤(XPath(e’)(9
e9
e’9
Step(1:(AG(Construction(
a.(Containment(Relationship)
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
b.(Alignment(Relationship)
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
b.(Alignment(Relationship)
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
b.(Alignment(Relationship)
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
c.(A[ributes)
Bugon(19 Bugon(29
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
c.(A[ributes)
Bugon(19 Bugon(29
What(alignment(a[ributes(can(we(infer?(
)
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
c.(A[ributes)
Bugon(19 Bugon(29
What(alignment(a[ributes(can(we(infer?(
)
•  Bugon(1(is(on(the(left(of(Bugon(2)
x2(<(x1’9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
c.(A[ributes)
Bugon(19 Bugon(29
What(alignment(a[ributes(can(we(infer?(
)
•  Bugon(1(is(on(the(left(of(Bugon(2)
•  Bugon(1(and(Bugon(2(have(their(tops(aligned)
)
)
y1(=(y1’9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
c.(A[ributes)
Bugon(19 Bugon(29
What(alignment(a[ributes(can(we(infer?(
)
•  Bugon(1(is(on(the(left(of(Bugon(2)
•  Bugon(1(and(Bugon(2(have(their(tops(aligned)
)
•  Bugon(1(and(Bugon(2(have(their(bo[oms(aligned)
y2(=(y2’9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
Step(1:(AG(Construction(
c.(A[ributes)
What(alignment(a[ributes(can(we(infer?(
)
•  Bugon(1(is(on(the(left(of(Bugon(2(
9
•  Bugon(1(and(Bugon(2(have(their(tops(aligned(
)
•  Bugon(1(and(Bugon(2(have(their(bo[oms(aligned)
leftOf)
top"align)
bo[om"align)
Step(2:(Matching(AGs(
9
Step(2:(Matching(AGs(
9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
leftOf
top-align
bottom-align
Step(2:(Matching(AGs(
9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
leftOf
top-align
bottom-align
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
Step(2:(Matching(AGs(
9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
leftOf
top-align
bottom-align
Step(2:(Matching(AGs(
9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
leftOf
top-align
bottom-align
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
Step(2:(Matching(AGs(
9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
leftOf
top-align
bottom-align
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
Step(2:(Matching(AGs(
9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
leftOf
top-align
bottom-align
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
Step(2:(Matching(AGs(
9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
leftOf
top-align
bottom-align
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
Comprehensive(
XBI(Detection9
•  Behavioral XBIs
•  Content XBIs
•  Structural XBIs
Text
Visual
Comprehensive(
XBI(Detection9
Text
Visual
Report9
Generation9
Model(
Generation9
...
Behavior9
Checker9
Element9
Matcher9
Structure9
Checker9
Content9
Checker9
Model(Comparison9
✔9 ✔9
✔9
Empirical(Evaluation(
9
Tool: X-PERT (Cross-Platform Error ReporTer)
Research Questions:
•  RQ1: Can X-PERT find XBIs in real web
applications?
•  RQ2: How does X-PERT compare to the
state-of-art?
Experimental(Protocol(
9
v14.0.19 v9.0.99v/s9
Ran(X2PERT(on(Subject(Applications9
Subjects9
12
My Awesome Site
12
My Awesome Site
12
My Awesome Site
+9 =(XBIs9
(Ground(Truth)9Manual(Check9
Error(Reports9 Manual(Check9
=9False(Positives(9
&(Negatives9+9
Subjects(
9
Name% Type% States% Transi/ons%
DOM%Nodes%(per%screen)%
max% min% average%
!Organizer! Produc/vity! 13! 99! 27482! 10001! 13051!!
!GrantaBooks! Publisher! 9! 8! 37800! 15625! 25852!!
!DesignTrust! Business! 10! 20! 26437! 7772! 18694!!
!DivineLife! Spiritual! 10! 9! 140611! 9082! 49886!!
!SaiBaba! Religious! 13! 20! 42606! 524! 12162!!
!Breakaway! Sport! 19! 18! 45148! 8191! 13059!!
!Conference! Informa/on! 3! 12! 878! 817! 853!!
!Fisherman! Restaurant! 15! 17! 39146! 15720! 21336!!
!Valleyforge! Lodge! 4! 12! 5416! 4733! 5046!!
!UniMelb! University! 9! 8! 15142! 12131! 13792!!
!Konqueror! SoUware! 5! 4! 17586! 15468! 16187!!
!UBC! Club! 7! 7! 20610! 7834! 12094!!
!BMVBS! Ministry! 5! 20! 19490! 12544! 15695!!
!StarWars! Movie! 10! 9! 28452! 19719! 22626!!!
800(2(140K(elements9
Prior(Art((6)9
Example(and(Survey((4)9
Random((4)9
Subjects(
9
Name% Type% States% Transi/ons%
DOM%Nodes%(per%screen)%
max% min% average%
!Organizer! Produc/vity! 13! 99! 27482! 10001! 13051!!
!GrantaBooks! Publisher! 9! 8! 37800! 15625! 25852!!
!DesignTrust! Business! 10! 20! 26437! 7772! 18694!!
!DivineLife! Spiritual! 10! 9! 140611! 9082! 49886!!
!SaiBaba! Religious! 13! 20! 42606! 524! 12162!!
!Breakaway! Sport! 19! 18! 45148! 8191! 13059!!
!Conference! Informa/on! 3! 12! 878! 817! 853!!
!Fisherman! Restaurant! 15! 17! 39146! 15720! 21336!!
!Valleyforge! Lodge! 4! 12! 5416! 4733! 5046!!
!UniMelb! University! 9! 8! 15142! 12131! 13792!!
!Konqueror! SoUware! 5! 4! 17586! 15468! 16187!!
!UBC! Club! 7! 7! 20610! 7834! 12094!!
!BMVBS! Ministry! 5! 20! 19490! 12544! 15695!!
!StarWars! Movie! 10! 9! 28452! 19719! 22626!!!
800(2(140K(elements9
Effectiveness(
9
NAME% XBI%
BEHAVIOR% STRUCTURE%
CONTENT%
TOTAL%TEXT% IMAGE%
TP% FP% TP% FP% TP% FP% TP% FP% TP% FP%
Organizer! 10! 1! 0! 9! 0! 0! 0! 0! 0! 10! 0!
GrantaBooks! 27! 16! 0! 11! 0! 0! 0! 0! 0! 27! 0!
DesignTrust! 7! 2! 0! 5! 3! 0! 0! 0! 0! 7! 3!
DivineLife! 11! 7! 0! 3! 6! 1! 0! 0! 0! 11! 6!
SaiBaba! 5! 2! 0! 2! 9! 0! 0! 0! 0! 4! 9!
Breakaway! 13! 0! 0! 10! 2! 0! 0! 0! 0! 10! 2!
Conference! 7! 2! 0! 3! 0! 1! 0! 1! 0! 7! 0!
Fisherman! 5! 1! 0! 3! 1! 0! 1! 1! 0! 5! 2!
Valleyforge! 3! 0! 0! 2! 2! 0! 0! 1! 0! 3! 2!
UniMelb! 2! 2! 0! 0! 0! 0! 0! 0! 1! 2! 1!
Konqueror! 0! 0! 0! 0! 0! 0! 0! 0! 6! 0! 6!
UBC! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0!
BMVBS! 1! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0!
StarWars! 12! 0! 0! 12! 0! 0! 0! 0! 0! 12! 0!
TOTAL% 103% 33% 0% 60% 23% 2% 1% 3% 7% 98% 31%
Effectiveness(
9
NAME% XBI%
BEHAVIOR% STRUCTURE%
CONTENT%
TOTAL%TEXT% IMAGE%
TP% FP% TP% FP% TP% FP% TP% FP% TP% FP%
Organizer! 10! 1! 0! 9! 0! 0! 0! 0! 0! 10! 0!
GrantaBooks! 27! 16! 0! 11! 0! 0! 0! 0! 0! 27! 0!
DesignTrust! 7! 2! 0! 5! 3! 0! 0! 0! 0! 7! 3!
DivineLife! 11! 7! 0! 3! 6! 1! 0! 0! 0! 11! 6!
SaiBaba! 5! 2! 0! 2! 9! 0! 0! 0! 0! 4! 9!
Breakaway! 13! 0! 0! 10! 2! 0! 0! 0! 0! 10! 2!
Conference! 7! 2! 0! 3! 0! 1! 0! 1! 0! 7! 0!
Fisherman! 5! 1! 0! 3! 1! 0! 1! 1! 0! 5! 2!
Valleyforge! 3! 0! 0! 2! 2! 0! 0! 1! 0! 3! 2!
UniMelb! 2! 2! 0! 0! 0! 0! 0! 0! 1! 2! 1!
Konqueror! 0! 0! 0! 0! 0! 0! 0! 0! 6! 0! 6!
UBC! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0!
BMVBS! 1! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0!
StarWars! 12! 0! 0! 12! 0! 0! 0! 0! 0! 12! 0!
TOTAL% 103% 33% 0% 60% 23% 2% 1% 3% 7% 98% 31%
RQ1:()
Can(X2PERT(find(XBIs(in(real(web(applications?9
9
Answer:(Yes)
Improvement(
9
NAME% XBI%
XQPERT% CROSSCHECK%
Prec% FP% Recl% Dp% Prec% FP% Recl% Dp%
Organizer! 10! 100%! 0! 100%! 0! 80%! 2! 80%! 13!
GrantaBooks! 27! 100%! 0! 100%! 0! 96%! 1! 100%! 0!
DesignTrust! 7! 70%! 3! 100%! 0! 5%! 122! 86%! 3!
DivineLife! 11! 65%! 6! 100%! 0! 29%! 24! 91%! 3!
SaiBaba! 5! 31%! 9! 80%! 0! 7%! 53! 80%! 10!
Breakaway! 13! 83%! 2! 77%! 1! 13%! 49! 54%! 12!
Conference! 7! 100%! 0! 100%! 0! 100%! 0! 100%! 0!
Fisherman! 5! 71%! 2! 100%! 0! 44%! 5! 80%! 8!
Valleyforge! 3! 60%! 2! 100%! 0! 50%! 1! 33%! 0!
UniMelb! 2! 67%! 1! 100%! 0! 7%! 27! 100%! 0!
Konqueror! 0! NA! 6! NA! 0! 0%! 11! NA! 0!
UBC! 0! NA! 0! NA! 0! 0%! 1! NA! 0!
BMVBS! 1! NA! 0! NA! 0! 0%! 2! 0%! 0!
StarWars! 12! 100%! 0! 100%! 0! 10%! 91! 83%! 3!
TOTAL% 103% 77%% 31% 95%% 1% 32%% 389% 74%% 52%
Improvement(
9
NAME% XBI%
XQPERT% CROSSCHECK%
Prec% FP% Recl% Dp% Prec% FP% Recl% Dp%
Organizer! 10! 100%! 0! 100%! 0! 80%! 2! 80%! 13!
GrantaBooks! 27! 100%! 0! 100%! 0! 96%! 1! 100%! 0!
DesignTrust! 7! 70%! 3! 100%! 0! 5%! 122! 86%! 3!
DivineLife! 11! 65%! 6! 100%! 0! 29%! 24! 91%! 3!
SaiBaba! 5! 31%! 9! 80%! 0! 7%! 53! 80%! 10!
Breakaway! 13! 83%! 2! 77%! 1! 13%! 49! 54%! 12!
Conference! 7! 100%! 0! 100%! 0! 100%! 0! 100%! 0!
Fisherman! 5! 71%! 2! 100%! 0! 44%! 5! 80%! 8!
Valleyforge! 3! 60%! 2! 100%! 0! 50%! 1! 33%! 0!
UniMelb! 2! 67%! 1! 100%! 0! 7%! 27! 100%! 0!
Konqueror! 0! NA! 6! NA! 0! 0%! 11! NA! 0!
UBC! 0! NA! 0! NA! 0! 0%! 1! NA! 0!
BMVBS! 1! NA! 0! NA! 0! 0%! 2! 0%! 0!
StarWars! 12! 100%! 0! 100%! 0! 10%! 91! 83%! 3!
TOTAL% 103% 77%% 31% 95%% 1% 32%% 389% 74%% 52%
X"PERT)
9
Precision()
((=(77%((
(((((45%!)9
9
Recall()
((=(95%(
(((((14%!)9
Improvement(
9
NAME% XBI%
XQPERT% CROSSCHECK%
Prec% FP% Recl% Dp% Prec% FP% Recl% Dp%
Organizer! 10! 100%! 0! 100%! 0! 80%! 2! 80%! 13!
GrantaBooks! 27! 100%! 0! 100%! 0! 96%! 1! 100%! 0!
DesignTrust! 7! 70%! 3! 100%! 0! 5%! 122! 86%! 3!
DivineLife! 11! 65%! 6! 100%! 0! 29%! 24! 91%! 3!
SaiBaba! 5! 31%! 9! 80%! 0! 7%! 53! 80%! 10!
Breakaway! 13! 83%! 2! 77%! 1! 13%! 49! 54%! 12!
Conference! 7! 100%! 0! 100%! 0! 100%! 0! 100%! 0!
Fisherman! 5! 71%! 2! 100%! 0! 44%! 5! 80%! 8!
Valleyforge! 3! 60%! 2! 100%! 0! 50%! 1! 33%! 0!
UniMelb! 2! 67%! 1! 100%! 0! 7%! 27! 100%! 0!
Konqueror! 0! NA! 6! NA! 0! 0%! 11! NA! 0!
UBC! 0! NA! 0! NA! 0! 0%! 1! NA! 0!
BMVBS! 1! NA! 0! NA! 0! 0%! 2! 0%! 0!
StarWars! 12! 100%! 0! 100%! 0! 10%! 91! 83%! 3!
TOTAL% 103% 77%% 31% 95%% 1% 32%% 389% 74%% 52%
X"PERT)
9
Precision()
((=(77%((
(((((45%!)9
9
Recall()
((=(95%(
(((((14%!)9
RQ2:()
How(does(X2PERT(compare(to(the(state2of2art?9
9
Answer:(X"PERT(has(be[er(precision(and(recall)
Experimental(Data(&(Tool9
•  Release
o Experiments (Crawl Data + Reports)
o Layout testing algorithm implementation
http://gatech.github.io/xpert
Related(Work9
o  Industrial tools
•  Test Suites for Web Browsers – Acid and test262
•  MS Expression Web, BrowserShots, BrowserStack
•  Browsera, MogoTest, BrowserBite
o  Research techniques
•  Eaton & Memon [IJWET’07]
•  Dallmeier, Burger, Orth & Zeller [JSTools’12]
77
Contributions(
9
Empirical(evaluation9
shows(effectiveness9
New(Structural(XBI9
Detection(Algorithm9
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
leftOf
top-align
bottom-align
Comprehensive(9
Technique(to(detect(XBIs9
Web$Application.
12
My Awesome Site
Model$Generation. Model$Comparison.
Error$Report.
Study(of(Real(World(XBIs9
XBI$Distribu,on$
Behavior$ 9%$
Content$ Text$ 22%$
Visual$ 30%$
Structure$ 57%$

More Related Content

Similar to X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications

FVCP Splunk Presentation
FVCP Splunk PresentationFVCP Splunk Presentation
FVCP Splunk PresentationStraight North
 
Humans in the loop?
Humans in the loop?Humans in the loop?
Humans in the loop?miso_uam
 
Accessible Design and Content in 20 Minutes
Accessible Design and Content in 20 MinutesAccessible Design and Content in 20 Minutes
Accessible Design and Content in 20 MinutesMarli Mesibov
 
Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5Dan Vitoriano
 
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)Holger Bartel
 
Why Innovation Itself Must Be The Next Big Thing
Why Innovation Itself Must Be The Next Big ThingWhy Innovation Itself Must Be The Next Big Thing
Why Innovation Itself Must Be The Next Big ThingAdrian Cotterill
 
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...Burr Sutter
 
Arquitetura de Informação em um E-commerce - Eduardo Shiota
Arquitetura de Informação em um E-commerce - Eduardo ShiotaArquitetura de Informação em um E-commerce - Eduardo Shiota
Arquitetura de Informação em um E-commerce - Eduardo ShiotaE-commerce Brasil
 
Baby.com.br: Analisando, adaptando e melhorando a arquitetura da informação e...
Baby.com.br: Analisando, adaptando e melhorando a arquitetura da informação e...Baby.com.br: Analisando, adaptando e melhorando a arquitetura da informação e...
Baby.com.br: Analisando, adaptando e melhorando a arquitetura da informação e...Eduardo Shiota Yasuda
 
Introduction to developing modern web apps
Introduction to developing modern web appsIntroduction to developing modern web apps
Introduction to developing modern web appsFabricio Epaminondas
 
Walmart & IBM Revisit the Linear Road Benchmark- Roger Rea, IBM
Walmart & IBM Revisit the Linear Road Benchmark- Roger Rea, IBMWalmart & IBM Revisit the Linear Road Benchmark- Roger Rea, IBM
Walmart & IBM Revisit the Linear Road Benchmark- Roger Rea, IBMRedis Labs
 
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...cresco
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Futurejexp
 
Develop & Deploy cloud-native apps as resilient Microservices Architectures
Develop & Deploy cloud-native apps as resilient Microservices ArchitecturesDevelop & Deploy cloud-native apps as resilient Microservices Architectures
Develop & Deploy cloud-native apps as resilient Microservices ArchitecturesRed Hat Developers
 
Top 10 Internet Browsers
Top 10 Internet BrowsersTop 10 Internet Browsers
Top 10 Internet BrowsersDivyansh Vaidya
 
SAP Technology Services Conference 2013: Big Data and The Cloud at Yahoo!
SAP Technology Services Conference 2013: Big Data and The Cloud at Yahoo! SAP Technology Services Conference 2013: Big Data and The Cloud at Yahoo!
SAP Technology Services Conference 2013: Big Data and The Cloud at Yahoo! Sumeet Singh
 
Web Search And Mining (Ntuim)
Web Search And Mining (Ntuim)Web Search And Mining (Ntuim)
Web Search And Mining (Ntuim)Hector Lin
 
Web Data Extraction: A Crash Course
Web Data Extraction: A Crash CourseWeb Data Extraction: A Crash Course
Web Data Extraction: A Crash CourseGiorgio Orsi
 

Similar to X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications (20)

FVCP Splunk Presentation
FVCP Splunk PresentationFVCP Splunk Presentation
FVCP Splunk Presentation
 
Humans in the loop?
Humans in the loop?Humans in the loop?
Humans in the loop?
 
Lenguajes y plataformas de desarrollo
Lenguajes y plataformas de desarrolloLenguajes y plataformas de desarrollo
Lenguajes y plataformas de desarrollo
 
PhD Dissertation Defense (April 2015)
PhD Dissertation Defense (April 2015)PhD Dissertation Defense (April 2015)
PhD Dissertation Defense (April 2015)
 
Accessible Design and Content in 20 Minutes
Accessible Design and Content in 20 MinutesAccessible Design and Content in 20 Minutes
Accessible Design and Content in 20 Minutes
 
Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5
 
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
Open Device Labs for A Better User Experience (Mobilliance, Hong Kong)
 
Why Innovation Itself Must Be The Next Big Thing
Why Innovation Itself Must Be The Next Big ThingWhy Innovation Itself Must Be The Next Big Thing
Why Innovation Itself Must Be The Next Big Thing
 
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
 
Arquitetura de Informação em um E-commerce - Eduardo Shiota
Arquitetura de Informação em um E-commerce - Eduardo ShiotaArquitetura de Informação em um E-commerce - Eduardo Shiota
Arquitetura de Informação em um E-commerce - Eduardo Shiota
 
Baby.com.br: Analisando, adaptando e melhorando a arquitetura da informação e...
Baby.com.br: Analisando, adaptando e melhorando a arquitetura da informação e...Baby.com.br: Analisando, adaptando e melhorando a arquitetura da informação e...
Baby.com.br: Analisando, adaptando e melhorando a arquitetura da informação e...
 
Introduction to developing modern web apps
Introduction to developing modern web appsIntroduction to developing modern web apps
Introduction to developing modern web apps
 
Walmart & IBM Revisit the Linear Road Benchmark- Roger Rea, IBM
Walmart & IBM Revisit the Linear Road Benchmark- Roger Rea, IBMWalmart & IBM Revisit the Linear Road Benchmark- Roger Rea, IBM
Walmart & IBM Revisit the Linear Road Benchmark- Roger Rea, IBM
 
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Future
 
Develop & Deploy cloud-native apps as resilient Microservices Architectures
Develop & Deploy cloud-native apps as resilient Microservices ArchitecturesDevelop & Deploy cloud-native apps as resilient Microservices Architectures
Develop & Deploy cloud-native apps as resilient Microservices Architectures
 
Top 10 Internet Browsers
Top 10 Internet BrowsersTop 10 Internet Browsers
Top 10 Internet Browsers
 
SAP Technology Services Conference 2013: Big Data and The Cloud at Yahoo!
SAP Technology Services Conference 2013: Big Data and The Cloud at Yahoo! SAP Technology Services Conference 2013: Big Data and The Cloud at Yahoo!
SAP Technology Services Conference 2013: Big Data and The Cloud at Yahoo!
 
Web Search And Mining (Ntuim)
Web Search And Mining (Ntuim)Web Search And Mining (Ntuim)
Web Search And Mining (Ntuim)
 
Web Data Extraction: A Crash Course
Web Data Extraction: A Crash CourseWeb Data Extraction: A Crash Course
Web Data Extraction: A Crash Course
 

Recently uploaded

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications