Your SlideShare is downloading. ×
0
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
X-­PERT: Accurate Identification of Cross-Browser Issues in Web Applications
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

693

Published on

Due to the increasing popularity of web applications, and the number of browsers and platforms on which such applications can be executed, cross-browser incompatibilities (XBIs) are becoming a serious …

Due to the increasing popularity of web applications, and the number of browsers and platforms on which such applications can be executed, cross-browser incompatibilities (XBIs) are becoming a serious concern for organizations that develop web-based software. Most of the techniques for XBI detection developed to date are either manual, and thus costly and error-prone, or partial and imprecise, and thus prone to generating both false positives and false negatives. To address these limitations of existing techniques, we developed X-PERT, a new automated, precise, and comprehensive approach for XBI detection. X-PERT combines several new and existing differencing techniques and is based on our findings from an extensive study of XBIs in real-world web applications. The key strength of our approach is that it handles each aspects of a web application using the differencing technique that is best suited to accurately detect XBIs related to that aspect. Our empirical evaluation shows that X-PERT is effective in detecting real-world XBIs, improves on the state of the art, and can provide useful support to developers for the diagnosis and (eventually) elimination of XBIs.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
693
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. X"PERT:(Accurate(Identification((of(Cross2Browser(Issues((in(Web(Applications()Shauvik Roy Choudhary, Mukul Prasad, Alessandro OrsoLabs of AmericaPartially supported by
  • 2. Web(Applications92
  • 3. 3
  • 4. 4Mozilla(Firefox) Internet(Explorer)
  • 5. 5Mozilla(Firefox) Internet(Explorer)
  • 6. 6Google(Chrome)
  • 7. 7Apple(Safari)
  • 8. 8Apple(Safari)Mozilla(Firefox)
  • 9. 9Mozilla(Firefox)
  • 10. 10Mozilla(Firefox)Internet(Explorer)
  • 11. 11Mozilla(Firefox)Internet(Explorer)
  • 12. (9Web(Developer)
  • 13. (9Web(Developer)
  • 14. (9Web(Developer)
  • 15. (Browser(versions(last(year999Source:(StatCounter.com9
  • 16. (Browser(versions(last(year9with(at(least(1%(market(share99150mn(visits/month((StatCounter.com)9
  • 17. Challenges(9Manual(inspection9is(expensive9DOM(differs(9between(browsers9Mimic(end(user’s9perception(9Produce(readable,(9effective(&(actionable(9reports9Engineering9Issues…9Modern(apps(have9many(dynamic(screens(9
  • 18. Detection(of(Cross2Browser(Issues((XBI)9Web(Application912My Awesome SiteModel(Generation9 Model(Comparison9Error(Report9
  • 19. Model(Definition((and(Comparison9WebDiff([ICSM’10])Roy(Choudhary(and(Orso9CrossCheck([ICST’12])Roy(Choudhary,(Prasad(and(Orso9CrossT([ICSE’11](Mesbah(and(Prasad9Screen(Transition(Graph)
  • 20. Model(Definition((and(Comparison9WebDiff([ICSM’10])Roy(Choudhary(and(Orso9CrossCheck([ICST’12])Roy(Choudhary,(Prasad(and(Orso9CrossT([ICSE’11](Mesbah(and(Prasad9Screen(Model)Screen(image(9+(geometry9DOM(Tree9
  • 21. Model(Definition((and(Comparison9WebDiff([ICSM’10])Roy(Choudhary(and(Orso9CrossCheck([ICST’12])Roy(Choudhary,(Prasad(and(Orso9CrossT([ICSE’11](Mesbah(and(Prasad9
  • 22. Study(of(Real(World((Cross2Browser(Issues((XBIs)9•  Examined 100 websites•  Found 23 with XBIs•  XBI Typeso Behavioral XBIso Content XBIso Structural XBIs((9%)22%)30%)57%)TextVisualRandom(URL(Generator9
  • 23. Limitations(of((existing(techniques9•  Miss Structural XBIs•  Focus on symptoms rather thancauseso  Duplicate reportso  Low Precision
  • 24. Example9
  • 25. Example(9
  • 26. Example(9
  • 27. Example(9Behavior(XBI)9%)
  • 28. Example(9
  • 29. Example(9Content(XBI)(Visual)(–(30%)
  • 30. Example(9Structural(XBI)57%)Content(XBI)(Visual)(–(30%)
  • 31. Example(9Content(XBI)(Visual)(–(30%)Content(XBI)(Text)(–(22%)Structural(XBI)57%)
  • 32. Comprehensive(XBI(Detection9•  Behavioral XBIs•  Content XBIs•  Structural XBIsTextVisual
  • 33. Comprehensive(XBI(Detection9•  Behavioral XBIs•  Content XBIs•  Structural XBIsTextVisualBehavior(check(using(9Graph(Isomorphism9CrossCheck([ICST’12])Roy(Choudhary,(Prasad(and(Orso9CrossT([ICSE’11](Mesbah(and(Prasad9
  • 34. Comprehensive(XBI(Detection9•  Behavioral XBIs•  Content XBIs•  Structural XBIsTextVisualText(Content)check(using(9String(equality9WebDiff([ICSM’10])Roy(Choudhary(and(Orso9CrossCheck([ICST’12])Roy(Choudhary,(Prasad(and(Orso9CrossT([ICSE’11](Mesbah(and(Prasad9
  • 35. Comprehensive(XBI(Detection9•  Behavioral XBIs•  Content XBIs•  Structural XBIsTextVisualVisual(Content)check(using(9Image(Matching9Computer9Vision9WebDiff([ICSM’10])Roy(Choudhary(and(Orso9CrossCheck([ICST’12])Roy(Choudhary,(Prasad(and(Orso9
  • 36. Detecting(Structural(XBIs(9•  Intuition:Disruption in the relativearrangement of web pageelements leads to Structural XBIs•  Idea:Abstraction to represent relativearrangement and compare it toexpose errors
  • 37. Alignment(Graph((AG)(9•  A graph capturing structuralrelationships between elements(rectangles) on the webpage
  • 38. Alignment(Graph((AG)(9•  A graph capturing structuralrelationships between elements(rectangles) on the webpage•  An AG has:o Containment relationshipso Alignment relationshipso Attributesabove9right2align9left2align9
  • 39. Step(1:(AG(Construction(9
  • 40. Step(1:(AG(Construction(9
  • 41. Step(1:(AG(Construction(9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2192939495969798999109119129139149159169179189
  • 42. Step(1:(AG(Construction(a.(Containment(Relationship)bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2e(contains(e’(iff9•  ((x1(≤(x1’( y1(≤(y1’( x2(≥(x2’( y2(≥(y2’()(,(and9•  if((same(bounds(and((XPath(e)(≤(XPath(e’)(9e9e’9
  • 43. Step(1:(AG(Construction(a.(Containment(Relationship)bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2
  • 44. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(1:(AG(Construction(b.(Alignment(Relationship)
  • 45. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(1:(AG(Construction(b.(Alignment(Relationship)
  • 46. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(1:(AG(Construction(b.(Alignment(Relationship)
  • 47. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(1:(AG(Construction(c.(A[ributes)Bugon(19 Bugon(29
  • 48. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(1:(AG(Construction(c.(A[ributes)Bugon(19 Bugon(29What(alignment(a[ributes(can(we(infer?()
  • 49. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(1:(AG(Construction(c.(A[ributes)Bugon(19 Bugon(29What(alignment(a[ributes(can(we(infer?()•  Bugon(1(is(on(the(left(of(Bugon(2)x2(<(x1’9
  • 50. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(1:(AG(Construction(c.(A[ributes)Bugon(19 Bugon(29What(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
  • 51. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(1:(AG(Construction(c.(A[ributes)Bugon(19 Bugon(29What(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
  • 52. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2Step(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)
  • 53. Step(2:(Matching(AGs(9
  • 54. Step(2:(Matching(AGs(9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignleftOftop-alignbottom-align
  • 55. Step(2:(Matching(AGs(9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignleftOftop-alignbottom-alignbodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-align
  • 56. bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignStep(2:(Matching(AGs(9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignleftOftop-alignbottom-align
  • 57. Step(2:(Matching(AGs(9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignleftOftop-alignbottom-alignbodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-align
  • 58. Step(2:(Matching(AGs(9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignleftOftop-alignbottom-alignbodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-align
  • 59. Step(2:(Matching(AGs(9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignleftOftop-alignbottom-alignbodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-align
  • 60. Step(2:(Matching(AGs(9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignleftOftop-alignbottom-alignbodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-align
  • 61. Comprehensive(XBI(Detection9•  Behavioral XBIs•  Content XBIs•  Structural XBIs
  • 62. TextVisualComprehensive(XBI(Detection9TextVisualReport9Generation9Model(Generation9...Behavior9Checker9Element9Matcher9Structure9Checker9Content9Checker9Model(Comparison9✔9 ✔9✔9
  • 63. Empirical(Evaluation(9Tool: X-PERT (Cross-Platform Error ReporTer)Research Questions:•  RQ1: Can X-PERT find XBIs in real webapplications?•  RQ2: How does X-PERT compare to thestate-of-art?
  • 64. Experimental(Protocol(9v14.0.19 v9.0.99v/s9Ran(X2PERT(on(Subject(Applications9Subjects912My Awesome Site12My Awesome Site12My Awesome Site+9 =(XBIs9(Ground(Truth)9Manual(Check9Error(Reports9 Manual(Check9=9False(Positives(9&(Negatives9+9
  • 65. Subjects(9Name% 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(elements9Prior(Art((6)9Example(and(Survey((4)9Random((4)9
  • 66. Subjects(9Name% 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
  • 67. Effectiveness(9NAME% 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%
  • 68. Effectiveness(9NAME% 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?99Answer:(Yes)
  • 69. Improvement(9NAME% 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%
  • 70. Improvement(9NAME% 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)9Precision()((=(77%(((((((45%!)99Recall()((=(95%((((((14%!)9
  • 71. Improvement(9NAME% 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)9Precision()((=(77%(((((((45%!)99Recall()((=(95%((((((14%!)9RQ2:()How(does(X2PERT(compare(to(the(state2of2art?99Answer:(X"PERT(has(be[er(precision(and(recall)
  • 72. Experimental(Data(&(Tool9•  Releaseo Experiments (Crawl Data + Reports)o Layout testing algorithm implementationhttp://gatech.github.io/xpert
  • 73. Related(Work9o  Industrial tools•  Test Suites for Web Browsers – Acid and test262•  MS Expression Web, BrowserShots, BrowserStack•  Browsera, MogoTest, BrowserBiteo  Research techniques•  Eaton & Memon [IJWET’07]•  Dallmeier, Burger, Orth & Zeller [JSTools’12]77
  • 74. Contributions(9Empirical(evaluation9shows(effectiveness9New(Structural(XBI9Detection(Algorithm9bodyheadermenuhr1mainhr2footerlink1link2subHeadingcountTextpaperListpaper1paper2paper3paper4button1button2aboveaboveaboveaboveaboveleftOfaboveaboveaboveleft-alignright-alignaboveleft-alignright-alignaboveleft-alignright-alignleftOftop-alignbottom-alignComprehensive(9Technique(to(detect(XBIs9Web$Application.12My Awesome SiteModel$Generation. Model$Comparison.Error$Report.Study(of(Real(World(XBIs9XBI$Distribu,on$Behavior$ 9%$Content$ Text$ 22%$Visual$ 30%$Structure$ 57%$

×