explaining visual changes in web interfaces brian burg
play

Explaining Visual Changes in Web Interfaces Brian Burg , Andrew J - PowerPoint PPT Presentation

Explaining Visual Changes in Web Interfaces Brian Burg , Andrew J Ko, Michael Ernst University of Washington 1 2 Feature Location Feature location is the activity of identifying an initial location in the source code that


  1. 
 Explaining Visual Changes in Web Interfaces 
 Brian Burg , Andrew J Ko, Michael Ernst 
 
 University of Washington 1

  2. 2

  3. Feature Location Feature location is the activity of identifying an initial location in the source code that implements functionality in a software system. Dit, B., Revelle, M., Gethers, M., and Poshyvanyk, D., "Feature Location in Source Code: A Taxonomy and Survey", Journal of Software: Evolution and Process (JSEP), vol. 25, no. 1, January 2013, pp. 53–95 3

  4. Feature Location for Interactive Web Content 4

  5. How can I interact with it? Visual Output 😅 5

  6. How is the visual effect achieved? DOM & CSS Visual Output 🤕 😅 6

  7. What code is ultimately responsible? JavaScript DOM & CSS Visual Output 😨 🤕 😅 7

  8. JavaScript DOM & CSS Visual Output No Links Between Scattered State No Output History Source and State 8

  9. Scry Staged, Interactive Feature Location 9

  10. Staged, Interactive Feature Location Output Examples 10

  11. Staged, Interactive Feature Location Δ ( pre, post ) Output Examples State Differences 11

  12. Staged, Interactive Feature Location Δ ( pre, post ) Output Examples State Differences JavaScript Mutations 12

  13. Δ ( pre, post ) Output Examples State Differences JavaScript Mutations 15

  14. What determines visual appearance? DOM Tree Structure Rendering 
 Engine Visual State CSS Style Properties 
 Color, layout mode, visual styling, 
 text rendering, handling of children 16

  15. Target Element Snapshots DOM Subtree Element Screenshots Computed Styles & Mutation Operations Related Rules 17

  16. Why does visual appearance change? DOM Tree Mutations Style Property Changes Rule Changes Inline Styles Animations Insertion Deletion class=“active” textContent = … :hover, :focus Ordinal Change Attributes & States 18

  17. Detecting changes in appearance Painted Rects YES YES Do they Visual Diff Commit New intersect? >1%? Snapshot NO NO Snapshot of 
 Target Element 19

  18. Comparing Δ ( pre, post ) State Snapshots Per-element change summaries 
 Structure: Insertion, Deletion, Attributes, … 
 Styles: Added, Removed, Value Change 
 Relies on stable DOM element identity 
 Doesn’t work well when view state is split from DOM 20

  19. Change-Relevant Operation Slicing 1. Instrument and record mutation operations. 2. Build a dependency graph for operations between the pre-state and post-state. 3. Based on change summary, find an equivalent mutation operation to explain the change. 4. Return equivalent operation + dependencies

  20. Technical Challenges Visual containment, stacking Software vs hardware rendering Unstable DOM element identities Megamorphic call sites in library code Pruning ine ff ective styles and attributes 22

  21. Summary Feature Location via Visual States 
 States can be automatically captured when drawing. Juxtapose Captured Inputs and Outputs 
 State and output snapshots help explain each other. Diff Markers Filter Relevant Operations 
 Slicing algorithms can show responsible operations. 
 23

  22. 
 Explaining Visual Changes in Web Interfaces 
 Brian Burg , Andrew J Ko, Michael Ernst 
 
 University of Washington 24

Recommend


More recommend