SlideShare a Scribd company logo
1 of 122
Download to read offline
Kevin Moran,
Boyang Li,
Carlos Bernal-Cárdenas,
Dan Jelf, and
Denys Poshyvanyk
Automated Reporting of GUI
DesignViolations for Mobile Apps
40th International Conference
on Software Engineering (ICSE’18)
Wednesday, May 30th, 2018
Video Source: Google
Video Source: Google
!5
!5
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
Sketch
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
RESEARCH PROBLEM
UI/UX DesignTeam DevelopmentTeam
EXISTING WORK
• Utilizes Perceptual Image Differencing (PID) for detecting Differences
• Performs clustering of difference areas and detects potential faulty html elements
• Predicts Root Causes by Probabilistic modeling
Detecting Presentation Failures in Web Applications*
*Detection and Localization of HTML Presentation Failures Using Computer Vision-Based Techniques. Sonal Mahajan, William G. J. Halfond. In
Proceedings of the 8th IEEE International Conference on Software Testing, Verification and Validation (ICST). April 2015.

*Using Visual Symptoms for Debugging Presentation Failures in Web Applications. Sonal Mahajan, Bailan Li, Pooyan Behnamghader, William G.J.
Halfond. In Proceedings of the 9th IEEE International Conference on Software Testing, Verification, and Validation (ICST). April 2016.
EXISTING LIMITATIONS
EXISTING LIMITATIONS
• Tailored for web pages and is not directly applicable to native mobile
app GUIs
EXISTING LIMITATIONS
• Tailored for web pages and is not directly applicable to native mobile
app GUIs
• Does not generate expressive reports to facilitate communication
between teams
EXISTING LIMITATIONS
• Tailored for web pages and is not directly applicable to native mobile
app GUIs
• Does not generate expressive reports to facilitate communication
between teams
• Predictive modeling of visual symptoms may not be precise enough
OUR SOLUTION
OUR SOLUTION
GUI Design Specifications
GUI Implementation
OUR SOLUTION
OUR SOLUTION
OUR SOLUTION
PRELIMINARY INDUSTRIAL EMPIRICAL STUDY
71Screens with
DesignViolations
PRELIMINARY INDUSTRIAL EMPIRICAL STUDY
71Screens with
DesignViolations
Authors
PRELIMINARY INDUSTRIAL EMPIRICAL STUDY
71Screens with
DesignViolations
Authors
Open Coding
PRELIMINARY INDUSTRIAL EMPIRICAL STUDY
71Screens with
DesignViolations
Authors
Open Coding
PRELIMINARY INDUSTRIAL EMPIRICAL STUDY
71Screens with
DesignViolations
Authors
Open Coding
DesignViolation
Taxonomy
25%
PRELIMINARY EMPIRICAL STUDY - RESULTS
H = Horizontal
V =Vertical
Trans = Translation
GUI VERIFICATION SYSTEM (GVT)
GUI VERIFICATION SYSTEM (GVT)
1) GUI-Collection
GUI VERIFICATION SYSTEM (GVT)
1) GUI-Collection
2) GUI
Comprehension
GUI VERIFICATION SYSTEM (GVT)
1) GUI-Collection
2) GUI
Comprehension
3) DesignViolation
Detection
STAGE 1: GUI COLLECTION
STAGE 1: GUI COLLECTION
STAGE 2: GUI COMPREHENSION
Mock-Up Implementation
STAGE 2: GUI COMPREHENSION
Mock-Up ImplementationSpatial
Component
Matching
= (|xm xr| + |ym yr| + |wm wr| + |hm hr|)<latexit sha1_base64="Ht7153Xmi/4IY79Asy9xCp7Yq18=">AAACKHicdVDLSgMxFM3UV62vqks3wSIo4pCpr3YhFN24VLBaaMuQSdNOMJkZkox2aPs7bvwVNwoqbv0S03EEFb0QOI97ubnHizhTGqE3KzcxOTU9k58tzM0vLC4Vl1cuVRhLQusk5KFseFhRzgJa10xz2ogkxcLj9Mq7Phn7VzdUKhYGFzqJaFvgXsC6jGBtJLdYa/WwEBgewc1h3xVwB/ZdOYTbcJikLMnYbcpuM+anzDdsyy2WkF2uOPsHDkT2LkKHCBlQrh44lTJ0bJRWCWR15hafWp2QxIIGmnCsVNNBkW4PsNSMcDoqtGJFI0yucY82DQywoKo9SC8dwQ2jdGA3lOYFGqbq94kBFkolwjOdAmtf/fbG4l9eM9bdSnvAgijWNCCfi7oxhzqE49hgh0lKNE8MwEQy81dIfCwx0Sbcggnh61L4P6iX7aqNzvdKteMsjTxYA+tgEzjgENTAKTgDdUDAHXgAz+DFurcerVfr7bM1Z2Uzq+BHWe8fdYKjUQ==</latexit><latexit sha1_base64="Ht7153Xmi/4IY79Asy9xCp7Yq18=">AAACKHicdVDLSgMxFM3UV62vqks3wSIo4pCpr3YhFN24VLBaaMuQSdNOMJkZkox2aPs7bvwVNwoqbv0S03EEFb0QOI97ubnHizhTGqE3KzcxOTU9k58tzM0vLC4Vl1cuVRhLQusk5KFseFhRzgJa10xz2ogkxcLj9Mq7Phn7VzdUKhYGFzqJaFvgXsC6jGBtJLdYa/WwEBgewc1h3xVwB/ZdOYTbcJikLMnYbcpuM+anzDdsyy2WkF2uOPsHDkT2LkKHCBlQrh44lTJ0bJRWCWR15hafWp2QxIIGmnCsVNNBkW4PsNSMcDoqtGJFI0yucY82DQywoKo9SC8dwQ2jdGA3lOYFGqbq94kBFkolwjOdAmtf/fbG4l9eM9bdSnvAgijWNCCfi7oxhzqE49hgh0lKNE8MwEQy81dIfCwx0Sbcggnh61L4P6iX7aqNzvdKteMsjTxYA+tgEzjgENTAKTgDdUDAHXgAz+DFurcerVfr7bM1Z2Uzq+BHWe8fdYKjUQ==</latexit><latexit sha1_base64="Ht7153Xmi/4IY79Asy9xCp7Yq18=">AAACKHicdVDLSgMxFM3UV62vqks3wSIo4pCpr3YhFN24VLBaaMuQSdNOMJkZkox2aPs7bvwVNwoqbv0S03EEFb0QOI97ubnHizhTGqE3KzcxOTU9k58tzM0vLC4Vl1cuVRhLQusk5KFseFhRzgJa10xz2ogkxcLj9Mq7Phn7VzdUKhYGFzqJaFvgXsC6jGBtJLdYa/WwEBgewc1h3xVwB/ZdOYTbcJikLMnYbcpuM+anzDdsyy2WkF2uOPsHDkT2LkKHCBlQrh44lTJ0bJRWCWR15hafWp2QxIIGmnCsVNNBkW4PsNSMcDoqtGJFI0yucY82DQywoKo9SC8dwQ2jdGA3lOYFGqbq94kBFkolwjOdAmtf/fbG4l9eM9bdSnvAgijWNCCfi7oxhzqE49hgh0lKNE8MwEQy81dIfCwx0Sbcggnh61L4P6iX7aqNzvdKteMsjTxYA+tgEzjgENTAKTgDdUDAHXgAz+DFurcerVfr7bM1Z2Uzq+BHWe8fdYKjUQ==</latexit>
≊
≊
≊
≊
STAGE 2: GUI COMPREHENSION
Mock-Up ImplementationSpatial
Component
Matching
Perceptual
Image
Differencing
(PID)
STAGE 3: DESIGN VIOLATION DETECTION
Perceptual
Image
Differencing
(PID)
STAGE 3: DESIGN VIOLATION DETECTION
Perceptual
Image
Differencing
(PID)
STAGE 3: DESIGN VIOLATION DETECTION
≊
≊
≊
≊
STAGE 3: DESIGN VIOLATION DETECTION
≊
≊
≊
≊
STAGE 3: DESIGN VIOLATION DETECTION
≊
≊
≊
≊
STAGE 3: DESIGN VIOLATION DETECTION
List of Potential
DesignViolations
STAGE 3: DESIGN VIOLATION DETECTION
List of Potential
DesignViolations
STAGE 3: DESIGN VIOLATION DETECTION
List of Potential
DesignViolations
Layout DV Resolver
• <x,y>
• <height,width>
Text DV Resolver
• <image>
• <text> CHA + CQ
Resource DV Resolver
• <image>
• Missing/
Extra CHA + CQ
STAGE 3: DESIGN VIOLATION DETECTION
GVT REPORT
GVT REPORT
THE GVT INTERFACE
THE GVT INTERFACE
THE GVT INTERFACE
THE GVT INTERFACE
THE IMPROVED GVT INTERFACE
W&M Undergrads- Ashley Roten, Ivan Echevarria, Karen Coppage, Kelly Giddens,Thomas Roche
THE IMPROVED GVT INTERFACE
W&M Undergrads- Ashley Roten, Ivan Echevarria, Karen Coppage, Kelly Giddens,Thomas Roche
THE IMPROVED GVT INTERFACE
W&M Undergrads- Ashley Roten, Ivan Echevarria, Karen Coppage, Kelly Giddens,Thomas Roche
EMPIRICAL STUDY
EMPIRICAL STUDY
• RQ1: Detecting and Classifying Design Violations ?
EMPIRICAL STUDY
• RQ1: Detecting and Classifying Design Violations ?
• RQ2: Utility for Developers?
EMPIRICAL STUDY
• RQ1: Detecting and Classifying Design Violations ?
• RQ2: Utility for Developers?
• RQ3: Industrial Applicability?
STUDY 1: EFFECTIVENESS AND PERFORMANCE
Sketch
STUDY 1: EFFECTIVENESS AND PERFORMANCE
Runtime
Screenshots & XML
STUDY 1: EFFECTIVENESS AND PERFORMANCE
Synthetic DV
Injection
Runtime
Screenshots & XML
STUDY 1: EFFECTIVENESS AND PERFORMANCE
XML and
Image Manipulation
Synthetic DV
Injection
Runtime
Screenshots & XML
STUDY 1: EFFECTIVENESS AND PERFORMANCE
LayoutViolations
TextViolations
ResourceViolations
100 Screens
200 DVs
XML and
Image Manipulation
Synthetic DV
Injection
Runtime
Screenshots & XML
STUDY 1: RESULTS
80
85
90
95
100
FontColor(18)
FontStyle
(18)
Im
age
Color(22)
Im
age
(16)
M
issingG
C
(26)
Size
(18)
TextContent(14)
Translation
(68)
CP = Classification Precision DP = Detection Precision R = Recall
STUDY 2: GVT UTILITY
LayoutViolations
TextViolations
ResourceViolations
45 Screens
40 DesignViolations
10 Academic and
Industrial Android Developers
25%
CP, DP, R
Usability and
User Preference
Questions
STUDY 2: RESULTS
Easy to understand?
Reports were Useful?
Would Ike to use often?
Hard to Read?
Too Complex?
0 1.25 2.5 3.75 5
Developer UX/UP
Responses
Developer CP, DP and R
AgreeDisagree
STUDY 3: INDUSTRIAL APPLICABILITY
20 Industrial Android
Developers & Designers
Usability and
User Preference
Questions
GVTTool
Semi-Structured
Interviews with
Managers
STUDY 3: RESULTS
0 1 2 3 4 5
Industrial Developer/Designer Responses
AgreeDisagree
Using GVT tool helped to improve the quality of
mobile applications produced by Huawei
The GVT tool helped my team communicate with
other teams regarding GUI design violations
The GVT tool is able to accurately report existing
design violations in production applications
The GVT has helped you to reduce the time 

required for verifying design violations
The GVT tool allowed for better transfer of
the design to the implementation of the app
STUDY 3: RESULTS
STUDY 3: RESULTS
“When the page is more complicated, the tool is more helpful.”
STUDY 3: RESULTS
“When the page is more complicated, the tool is more helpful.”
“[DVs] can be detected pretty well... [but the tool is] not very
flexible. For example, a switch component in the design is
open, but the switch is closed in the implementation"
STUDY 3: RESULTS
“When the page is more complicated, the tool is more helpful.”
“[DVs] can be detected pretty well... [but the tool is] not very
flexible. For example, a switch component in the design is
open, but the switch is closed in the implementation"
“Currently, most errors are layout errors, so [the] tool is
accurate. Static components are basically detected, [but]
maybe the next extension should focus on dynamic
components.”
STUDY 3: RESULTS
“When the page is more complicated, the tool is more helpful.”
“[DVs] can be detected pretty well... [but the tool is] not very
flexible. For example, a switch component in the design is
open, but the switch is closed in the implementation"
“Currently, most errors are layout errors, so [the] tool is
accurate. Static components are basically detected, [but]
maybe the next extension should focus on dynamic
components.”
“If you consider the time savings on
discussion and arguments between the two
teams, this tool saves us a lot of time”
GVT: COLLABORATION OUTCOME
GVT: COLLABORATION OUTCOME
GVT has impacted over 1,000 developers and designers!
FUTURE WORK
• Add support for detecting design violations for dynamic content
FUTURE WORK
• Add support for detecting design violations for dynamic content
• Improve the user interface and usability of the tool
FUTURE WORK
• Add support for detecting design violations for dynamic content
• Improve the user interface and usability of the tool
• Gather further feedback from developers and designers
FUTURE WORK
https://www.android-dev-tools.com/gvt/
Any Questions?
Thank you!
Kevin Moran
College of William & Mary
@kevpmo
kpmoran@cs.wm.edu
https://www.kpmoran.com
ADDITIONAL SLIDES
EXISTING WORK
Commercial Solutions
LIMITATIONS
LIMITATIONS
• Impose restrictions on the app design process
LIMITATIONS
• Impose restrictions on the app design process
• Cannot enforce the implementation of design specifications
LIMITATIONS
• Impose restrictions on the app design process
• Cannot enforce the implementation of design specifications
• Can be expensive or prohibitive to operate
PROBLEM FORMALIZATION
Screens and GUI-Components
DesignViolations
S = {GC1{GC2{GCi}, GC3}}<latexit sha1_base64="fUnIc/N9nW4lcCs00VSw9yHs4w0=">AAACCnicdVDLSgMxFM3UV62vqks3oUVwIUNmqn0shGIXuqxotdApJZOmbWjmQZIRyjB7N/6KGxcqbv0Cd/6N6bSCih7IzeGce0nucUPOpELow8gsLC4tr2RXc2vrG5tb+e2daxlEgtAWCXgg2i6WlDOfthRTnLZDQbHncnrjjhtT/+aWCskC/0pNQtr18NBnA0aw0lIvX7iEJ9CJzxo9K612WpmTHEJ9l5zESXr5IjLtqnVctiAySwhVENLErpWtqg0tE6Uogjmavfy70w9I5FFfEY6l7FgoVN0YC8UIp0nOiSQNMRnjIe1o6mOPym6c7pLAfa304SAQ+vgKpur3iRh7Uk48V3d6WI3kb28q/uV1IjWodmPmh5GiPpk9NIg4VAGcBgP7TFCi+EQTTATTf4VkhAUmSseX0yF8bQr/Jy3brJno4qhYP52nkQV7oAAOgAUqoA7OQRO0AAF34AE8gWfj3ng0XozXWWvGmM/sgh8w3j4BN/aY3g==</latexit><latexit sha1_base64="fUnIc/N9nW4lcCs00VSw9yHs4w0=">AAACCnicdVDLSgMxFM3UV62vqks3oUVwIUNmqn0shGIXuqxotdApJZOmbWjmQZIRyjB7N/6KGxcqbv0Cd/6N6bSCih7IzeGce0nucUPOpELow8gsLC4tr2RXc2vrG5tb+e2daxlEgtAWCXgg2i6WlDOfthRTnLZDQbHncnrjjhtT/+aWCskC/0pNQtr18NBnA0aw0lIvX7iEJ9CJzxo9K612WpmTHEJ9l5zESXr5IjLtqnVctiAySwhVENLErpWtqg0tE6Uogjmavfy70w9I5FFfEY6l7FgoVN0YC8UIp0nOiSQNMRnjIe1o6mOPym6c7pLAfa304SAQ+vgKpur3iRh7Uk48V3d6WI3kb28q/uV1IjWodmPmh5GiPpk9NIg4VAGcBgP7TFCi+EQTTATTf4VkhAUmSseX0yF8bQr/Jy3brJno4qhYP52nkQV7oAAOgAUqoA7OQRO0AAF34AE8gWfj3ng0XozXWWvGmM/sgh8w3j4BN/aY3g==</latexit><latexit sha1_base64="fUnIc/N9nW4lcCs00VSw9yHs4w0=">AAACCnicdVDLSgMxFM3UV62vqks3oUVwIUNmqn0shGIXuqxotdApJZOmbWjmQZIRyjB7N/6KGxcqbv0Cd/6N6bSCih7IzeGce0nucUPOpELow8gsLC4tr2RXc2vrG5tb+e2daxlEgtAWCXgg2i6WlDOfthRTnLZDQbHncnrjjhtT/+aWCskC/0pNQtr18NBnA0aw0lIvX7iEJ9CJzxo9K612WpmTHEJ9l5zESXr5IjLtqnVctiAySwhVENLErpWtqg0tE6Uogjmavfy70w9I5FFfEY6l7FgoVN0YC8UIp0nOiSQNMRnjIe1o6mOPym6c7pLAfa304SAQ+vgKpur3iRh7Uk48V3d6WI3kb28q/uV1IjWodmPmh5GiPpk9NIg4VAGcBgP7TFCi+EQTTATTf4VkhAUmSseX0yF8bQr/Jy3brJno4qhYP52nkQV7oAAOgAUqoA7OQRO0AAF34AE8gWfj3ng0XozXWWvGmM/sgh8w3j4BN/aY3g==</latexit>
(GCm
i ⇡ GCr
j ) ^ (GCm
i 6= GCr
j )
=) DV 2 {GCm
i , GCr
j }<latexit sha1_base64="xgaNEjkEl6iZoQFEvQTxuPwBpk4=">AAACTHicdVFNbxMxFPQGaEv4aKBHLk9ESEVCK2/oR3qrWiR6LBJpK8Vp5PW+pKa2d7G90Gi1f7AXJG78Cy4cKELCSRNREIxkaTQzT34ep4WSzlP6JWrcun1naXnlbvPe/QcPV1uPHh+5vLQCeyJXuT1JuUMlDfa89ApPCotcpwqP0/P9qX/8Aa2TuXnrJwUONB8bOZKC+yANWxmsv94fVrI+1cB4Udj8AqbCu/rUPgf2EbMx3owYfP/bZwyY1GFNdPDqKHADrFpkXyxirB622jTudJPNrQRo/JLSbUoD6exsJd0OJDGdoU3mOBy2PrMsF6VG44XizvUTWvhBxa2XQmHdZKXDgotzPsZ+oIZrdINq1kYNz4KSwSi34RgPM/XmRMW1cxOdhqTm/sz97U3Ff3n90o+6g0qaovRoxPVFo1KBz2FaLWTSovBqEggXVoZdQZxxy4UPH9AMJSxeCv8nvU68E9M3G+3dvXkbK+QJeUrWSUK2yS45IIekRwS5JF/Jd3IVfYq+RT+in9fRRjSfWSN/oLH0C+ISsuQ=</latexit><latexit sha1_base64="xgaNEjkEl6iZoQFEvQTxuPwBpk4=">AAACTHicdVFNbxMxFPQGaEv4aKBHLk9ESEVCK2/oR3qrWiR6LBJpK8Vp5PW+pKa2d7G90Gi1f7AXJG78Cy4cKELCSRNREIxkaTQzT34ep4WSzlP6JWrcun1naXnlbvPe/QcPV1uPHh+5vLQCeyJXuT1JuUMlDfa89ApPCotcpwqP0/P9qX/8Aa2TuXnrJwUONB8bOZKC+yANWxmsv94fVrI+1cB4Udj8AqbCu/rUPgf2EbMx3owYfP/bZwyY1GFNdPDqKHADrFpkXyxirB622jTudJPNrQRo/JLSbUoD6exsJd0OJDGdoU3mOBy2PrMsF6VG44XizvUTWvhBxa2XQmHdZKXDgotzPsZ+oIZrdINq1kYNz4KSwSi34RgPM/XmRMW1cxOdhqTm/sz97U3Ff3n90o+6g0qaovRoxPVFo1KBz2FaLWTSovBqEggXVoZdQZxxy4UPH9AMJSxeCv8nvU68E9M3G+3dvXkbK+QJeUrWSUK2yS45IIekRwS5JF/Jd3IVfYq+RT+in9fRRjSfWSN/oLH0C+ISsuQ=</latexit><latexit sha1_base64="xgaNEjkEl6iZoQFEvQTxuPwBpk4=">AAACTHicdVFNbxMxFPQGaEv4aKBHLk9ESEVCK2/oR3qrWiR6LBJpK8Vp5PW+pKa2d7G90Gi1f7AXJG78Cy4cKELCSRNREIxkaTQzT34ep4WSzlP6JWrcun1naXnlbvPe/QcPV1uPHh+5vLQCeyJXuT1JuUMlDfa89ApPCotcpwqP0/P9qX/8Aa2TuXnrJwUONB8bOZKC+yANWxmsv94fVrI+1cB4Udj8AqbCu/rUPgf2EbMx3owYfP/bZwyY1GFNdPDqKHADrFpkXyxirB622jTudJPNrQRo/JLSbUoD6exsJd0OJDGdoU3mOBy2PrMsF6VG44XizvUTWvhBxa2XQmHdZKXDgotzPsZ+oIZrdINq1kYNz4KSwSi34RgPM/XmRMW1cxOdhqTm/sz97U3Ff3n90o+6g0qaovRoxPVFo1KBz2FaLWTSovBqEggXVoZdQZxxy4UPH9AMJSxeCv8nvU68E9M3G+3dvXkbK+QJeUrWSUK2yS45IIekRwS5JF/Jd3IVfYq+RT+in9fRRjSfWSN/oLH0C+ISsuQ=</latexit>
(<x,y><height,width><text><image>)
Presentation Failures
{DV1, DV2, ...DVi} 2 {GCm
i , GCr
j }
PF 2 {Sm
, Sr
}<latexit sha1_base64="yXwZIsk0lnWWH3xnETRAGLTCsiI=">AAACVXicdVFdb9MwFHWyMUb5WIHHvVirkHioIifA1r1NDI09dhrdJtVd5LjOamY7wb5BVFH+JLzAT+FlmtO10kBwJVtH55x7bR9npZIOCPkVhGvrDzYebj7qPH7y9NlW9/mLM1dUlosRL1RhLzLmhJJGjECCEhelFUxnSpxn14etfv5VWCcL8wnmpZhodmVkLjkDT6VdTUF8A6trmTeYfqnYFNP6w1ka97Hfk34URS2Q1KvSeO3jYVrL5lL3W/C5ubS0obSzmgIzYVZzhkfLllPvxqetM+32SJQM4ne7MSbRG0L2CPEg2d+NBwmOI7KoHlrWMO1+p9OCV1oY4Io5N45JCZOaWZBciaZDKydKxq/ZlRh7aJgWblIvYmnwK89McV5YvwzgBXu/o2baubnOvFMzmLm/tZb8lzauIB9MamnKCoThdwfllcJQ4DZjPJVWcFBzDxi30t8V8xmzjIP/iY4PYfVS/H8wSqL9iJy87R28X6axibbRDnqNYrSHDtAxGqIR4ugH+h2EwVrwM7gJ18ONO2sYLHteoj8q3LoFJMWyDg==</latexit><latexit sha1_base64="yXwZIsk0lnWWH3xnETRAGLTCsiI=">AAACVXicdVFdb9MwFHWyMUb5WIHHvVirkHioIifA1r1NDI09dhrdJtVd5LjOamY7wb5BVFH+JLzAT+FlmtO10kBwJVtH55x7bR9npZIOCPkVhGvrDzYebj7qPH7y9NlW9/mLM1dUlosRL1RhLzLmhJJGjECCEhelFUxnSpxn14etfv5VWCcL8wnmpZhodmVkLjkDT6VdTUF8A6trmTeYfqnYFNP6w1ka97Hfk34URS2Q1KvSeO3jYVrL5lL3W/C5ubS0obSzmgIzYVZzhkfLllPvxqetM+32SJQM4ne7MSbRG0L2CPEg2d+NBwmOI7KoHlrWMO1+p9OCV1oY4Io5N45JCZOaWZBciaZDKydKxq/ZlRh7aJgWblIvYmnwK89McV5YvwzgBXu/o2baubnOvFMzmLm/tZb8lzauIB9MamnKCoThdwfllcJQ4DZjPJVWcFBzDxi30t8V8xmzjIP/iY4PYfVS/H8wSqL9iJy87R28X6axibbRDnqNYrSHDtAxGqIR4ugH+h2EwVrwM7gJ18ONO2sYLHteoj8q3LoFJMWyDg==</latexit><latexit sha1_base64="yXwZIsk0lnWWH3xnETRAGLTCsiI=">AAACVXicdVFdb9MwFHWyMUb5WIHHvVirkHioIifA1r1NDI09dhrdJtVd5LjOamY7wb5BVFH+JLzAT+FlmtO10kBwJVtH55x7bR9npZIOCPkVhGvrDzYebj7qPH7y9NlW9/mLM1dUlosRL1RhLzLmhJJGjECCEhelFUxnSpxn14etfv5VWCcL8wnmpZhodmVkLjkDT6VdTUF8A6trmTeYfqnYFNP6w1ka97Hfk34URS2Q1KvSeO3jYVrL5lL3W/C5ubS0obSzmgIzYVZzhkfLllPvxqetM+32SJQM4ne7MSbRG0L2CPEg2d+NBwmOI7KoHlrWMO1+p9OCV1oY4Io5N45JCZOaWZBciaZDKydKxq/ZlRh7aJgWblIvYmnwK89McV5YvwzgBXu/o2baubnOvFMzmLm/tZb8lzauIB9MamnKCoThdwfllcJQ4DZjPJVWcFBzDxi30t8V8xmzjIP/iY4PYfVS/H8wSqL9iJy87R28X6axibbRDnqNYrSHDtAxGqIR4ugH+h2EwVrwM7gJ18ONO2sYLHteoj8q3LoFJMWyDg==</latexit>
STAGE 2: GUI COMPREHENSION
STAGE 3: DESIGN VIOLATION DETECTION
GVT REPORT
GVT REPORT
HUAWEI COLLABORATION METHODOLOGY
HUAWEI COLLABORATION METHODOLOGY
• Bi-weekly meetings with designers and developers
HUAWEI COLLABORATION METHODOLOGY
• Bi-weekly meetings with designers and developers
• More than 12 releases of the tool, starting with a CLI
HUAWEI COLLABORATION METHODOLOGY
• Bi-weekly meetings with designers and developers
• More than 12 releases of the tool, starting with a CLI
• Acceptance tests designed by UI/UX experts
HUAWEI COLLABORATION METHODOLOGY
• Bi-weekly meetings with designers and developers
• More than 12 releases of the tool, starting with a CLI
• Acceptance tests designed by UI/UX experts
• Deployed to a controlled user base for feedback
THE GVT INTERFACE
THE GVT INTERFACE

More Related Content

What's hot

How to Learn The History of Software Testing
How to Learn The History of Software Testing How to Learn The History of Software Testing
How to Learn The History of Software Testing
Keizo Tatsumi
 

What's hot (20)

Automatically Discovering, Reporting and Reproducing Android Application Crashes
Automatically Discovering, Reporting and Reproducing Android Application CrashesAutomatically Discovering, Reporting and Reproducing Android Application Crashes
Automatically Discovering, Reporting and Reproducing Android Application Crashes
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010
 
Professional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsProfessional Software Development, Practices and Ethics
Professional Software Development, Practices and Ethics
 
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
 
Rise of the Machines: Can Artificial Intelligence Terminate Manual Testing?
Rise of the Machines: Can Artificial Intelligence Terminate Manual Testing?Rise of the Machines: Can Artificial Intelligence Terminate Manual Testing?
Rise of the Machines: Can Artificial Intelligence Terminate Manual Testing?
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
 
TMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael PalotasTMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael Palotas
 
Agile Infra @AgileRoots 2009
Agile Infra @AgileRoots 2009Agile Infra @AgileRoots 2009
Agile Infra @AgileRoots 2009
 
Analyzing the Eclipse API Usage: Putting the Developer in the Loop
Analyzing the Eclipse API Usage: Putting the Developer in the LoopAnalyzing the Eclipse API Usage: Putting the Developer in the Loop
Analyzing the Eclipse API Usage: Putting the Developer in the Loop
 
TEA Presentation V 0.3
TEA Presentation V 0.3TEA Presentation V 0.3
TEA Presentation V 0.3
 
Dw testing
Dw testingDw testing
Dw testing
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
 
Using Robots for App Testing
Using Robots for App Testing Using Robots for App Testing
Using Robots for App Testing
 
Test and docs: Hand in hand
Test and docs: Hand in handTest and docs: Hand in hand
Test and docs: Hand in hand
 
Role of tester in gaming
Role of tester in gamingRole of tester in gaming
Role of tester in gaming
 
PNSQC 2021 January 28 Culture Jam
PNSQC 2021 January 28 Culture JamPNSQC 2021 January 28 Culture Jam
PNSQC 2021 January 28 Culture Jam
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 
Lean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building ExperiencesLean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building Experiences
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
How to Learn The History of Software Testing
How to Learn The History of Software Testing How to Learn The History of Software Testing
How to Learn The History of Software Testing
 

Similar to Automated Reporting of GUI Design Violations for Mobile Apps

SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA
 
Software requirements engineering
Software requirements engineeringSoftware requirements engineering
Software requirements engineering
Abdul Basit
 
Top Three Modern Product Trends
Top Three Modern Product TrendsTop Three Modern Product Trends
Top Three Modern Product Trends
Jeremy Johnson
 

Similar to Automated Reporting of GUI Design Violations for Mobile Apps (20)

Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 
Monktoberfest Fast Delivery
Monktoberfest Fast DeliveryMonktoberfest Fast Delivery
Monktoberfest Fast Delivery
 
Making Agile Work for Design
Making Agile Work for DesignMaking Agile Work for Design
Making Agile Work for Design
 
Redesign design V2.0
Redesign design V2.0Redesign design V2.0
Redesign design V2.0
 
Forget about Agile
Forget about AgileForget about Agile
Forget about Agile
 
Visualization for Software Analytics
Visualization for Software AnalyticsVisualization for Software Analytics
Visualization for Software Analytics
 
Sum of the Parts Speaker Series - Experience Engineering and UX
Sum of the Parts Speaker Series - Experience Engineering and UXSum of the Parts Speaker Series - Experience Engineering and UX
Sum of the Parts Speaker Series - Experience Engineering and UX
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...
 
Zeroturnaround developer-productivity-report-20121
Zeroturnaround developer-productivity-report-20121Zeroturnaround developer-productivity-report-20121
Zeroturnaround developer-productivity-report-20121
 
Good-to-Great with AQUENT presentation - Koen van Niekerk
Good-to-Great with AQUENT presentation - Koen van NiekerkGood-to-Great with AQUENT presentation - Koen van Niekerk
Good-to-Great with AQUENT presentation - Koen van Niekerk
 
Paulius Papreckis - Mobile UX: Unified vs Native
Paulius Papreckis - Mobile UX: Unified vs NativePaulius Papreckis - Mobile UX: Unified vs Native
Paulius Papreckis - Mobile UX: Unified vs Native
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612
 
I'll gladly pay you Tuesday for a hamburger today: Managing UX Debt
I'll gladly pay you Tuesday for a hamburger today: Managing UX DebtI'll gladly pay you Tuesday for a hamburger today: Managing UX Debt
I'll gladly pay you Tuesday for a hamburger today: Managing UX Debt
 
Eliminating UX Debt in the Enterprise
Eliminating UX Debt in the EnterpriseEliminating UX Debt in the Enterprise
Eliminating UX Debt in the Enterprise
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering
 
Software requirements engineering
Software requirements engineeringSoftware requirements engineering
Software requirements engineering
 
UX, Agile and product management
UX, Agile and product managementUX, Agile and product management
UX, Agile and product management
 
No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software Engineering
 
Top Three Modern Product Trends
Top Three Modern Product TrendsTop Three Modern Product Trends
Top Three Modern Product Trends
 
Filip Healy (Threesixty Reality): Making Immersive Tech More Usable
Filip Healy (Threesixty Reality): Making Immersive Tech More UsableFilip Healy (Threesixty Reality): Making Immersive Tech More Usable
Filip Healy (Threesixty Reality): Making Immersive Tech More Usable
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Automated Reporting of GUI Design Violations for Mobile Apps

  • 1. Kevin Moran, Boyang Li, Carlos Bernal-Cárdenas, Dan Jelf, and Denys Poshyvanyk Automated Reporting of GUI DesignViolations for Mobile Apps 40th International Conference on Software Engineering (ICSE’18) Wednesday, May 30th, 2018
  • 2.
  • 3.
  • 6. !5
  • 7. !5
  • 10. RESEARCH PROBLEM UI/UX DesignTeam DevelopmentTeam Sketch
  • 29. EXISTING WORK • Utilizes Perceptual Image Differencing (PID) for detecting Differences • Performs clustering of difference areas and detects potential faulty html elements • Predicts Root Causes by Probabilistic modeling Detecting Presentation Failures in Web Applications* *Detection and Localization of HTML Presentation Failures Using Computer Vision-Based Techniques. Sonal Mahajan, William G. J. Halfond. In Proceedings of the 8th IEEE International Conference on Software Testing, Verification and Validation (ICST). April 2015. *Using Visual Symptoms for Debugging Presentation Failures in Web Applications. Sonal Mahajan, Bailan Li, Pooyan Behnamghader, William G.J. Halfond. In Proceedings of the 9th IEEE International Conference on Software Testing, Verification, and Validation (ICST). April 2016.
  • 31. EXISTING LIMITATIONS • Tailored for web pages and is not directly applicable to native mobile app GUIs
  • 32. EXISTING LIMITATIONS • Tailored for web pages and is not directly applicable to native mobile app GUIs • Does not generate expressive reports to facilitate communication between teams
  • 33. EXISTING LIMITATIONS • Tailored for web pages and is not directly applicable to native mobile app GUIs • Does not generate expressive reports to facilitate communication between teams • Predictive modeling of visual symptoms may not be precise enough
  • 35. OUR SOLUTION GUI Design Specifications GUI Implementation
  • 39. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY 71Screens with DesignViolations
  • 40. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY 71Screens with DesignViolations Authors
  • 41. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY 71Screens with DesignViolations Authors Open Coding
  • 42. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY 71Screens with DesignViolations Authors Open Coding
  • 43. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY 71Screens with DesignViolations Authors Open Coding DesignViolation Taxonomy 25%
  • 44. PRELIMINARY EMPIRICAL STUDY - RESULTS H = Horizontal V =Vertical Trans = Translation
  • 46. GUI VERIFICATION SYSTEM (GVT) 1) GUI-Collection
  • 47. GUI VERIFICATION SYSTEM (GVT) 1) GUI-Collection 2) GUI Comprehension
  • 48. GUI VERIFICATION SYSTEM (GVT) 1) GUI-Collection 2) GUI Comprehension 3) DesignViolation Detection
  • 49. STAGE 1: GUI COLLECTION
  • 50. STAGE 1: GUI COLLECTION
  • 51. STAGE 2: GUI COMPREHENSION Mock-Up Implementation
  • 52. STAGE 2: GUI COMPREHENSION Mock-Up ImplementationSpatial Component Matching
  • 53. = (|xm xr| + |ym yr| + |wm wr| + |hm hr|)<latexit sha1_base64="Ht7153Xmi/4IY79Asy9xCp7Yq18=">AAACKHicdVDLSgMxFM3UV62vqks3wSIo4pCpr3YhFN24VLBaaMuQSdNOMJkZkox2aPs7bvwVNwoqbv0S03EEFb0QOI97ubnHizhTGqE3KzcxOTU9k58tzM0vLC4Vl1cuVRhLQusk5KFseFhRzgJa10xz2ogkxcLj9Mq7Phn7VzdUKhYGFzqJaFvgXsC6jGBtJLdYa/WwEBgewc1h3xVwB/ZdOYTbcJikLMnYbcpuM+anzDdsyy2WkF2uOPsHDkT2LkKHCBlQrh44lTJ0bJRWCWR15hafWp2QxIIGmnCsVNNBkW4PsNSMcDoqtGJFI0yucY82DQywoKo9SC8dwQ2jdGA3lOYFGqbq94kBFkolwjOdAmtf/fbG4l9eM9bdSnvAgijWNCCfi7oxhzqE49hgh0lKNE8MwEQy81dIfCwx0Sbcggnh61L4P6iX7aqNzvdKteMsjTxYA+tgEzjgENTAKTgDdUDAHXgAz+DFurcerVfr7bM1Z2Uzq+BHWe8fdYKjUQ==</latexit><latexit sha1_base64="Ht7153Xmi/4IY79Asy9xCp7Yq18=">AAACKHicdVDLSgMxFM3UV62vqks3wSIo4pCpr3YhFN24VLBaaMuQSdNOMJkZkox2aPs7bvwVNwoqbv0S03EEFb0QOI97ubnHizhTGqE3KzcxOTU9k58tzM0vLC4Vl1cuVRhLQusk5KFseFhRzgJa10xz2ogkxcLj9Mq7Phn7VzdUKhYGFzqJaFvgXsC6jGBtJLdYa/WwEBgewc1h3xVwB/ZdOYTbcJikLMnYbcpuM+anzDdsyy2WkF2uOPsHDkT2LkKHCBlQrh44lTJ0bJRWCWR15hafWp2QxIIGmnCsVNNBkW4PsNSMcDoqtGJFI0yucY82DQywoKo9SC8dwQ2jdGA3lOYFGqbq94kBFkolwjOdAmtf/fbG4l9eM9bdSnvAgijWNCCfi7oxhzqE49hgh0lKNE8MwEQy81dIfCwx0Sbcggnh61L4P6iX7aqNzvdKteMsjTxYA+tgEzjgENTAKTgDdUDAHXgAz+DFurcerVfr7bM1Z2Uzq+BHWe8fdYKjUQ==</latexit><latexit sha1_base64="Ht7153Xmi/4IY79Asy9xCp7Yq18=">AAACKHicdVDLSgMxFM3UV62vqks3wSIo4pCpr3YhFN24VLBaaMuQSdNOMJkZkox2aPs7bvwVNwoqbv0S03EEFb0QOI97ubnHizhTGqE3KzcxOTU9k58tzM0vLC4Vl1cuVRhLQusk5KFseFhRzgJa10xz2ogkxcLj9Mq7Phn7VzdUKhYGFzqJaFvgXsC6jGBtJLdYa/WwEBgewc1h3xVwB/ZdOYTbcJikLMnYbcpuM+anzDdsyy2WkF2uOPsHDkT2LkKHCBlQrh44lTJ0bJRWCWR15hafWp2QxIIGmnCsVNNBkW4PsNSMcDoqtGJFI0yucY82DQywoKo9SC8dwQ2jdGA3lOYFGqbq94kBFkolwjOdAmtf/fbG4l9eM9bdSnvAgijWNCCfi7oxhzqE49hgh0lKNE8MwEQy81dIfCwx0Sbcggnh61L4P6iX7aqNzvdKteMsjTxYA+tgEzjgENTAKTgDdUDAHXgAz+DFurcerVfr7bM1Z2Uzq+BHWe8fdYKjUQ==</latexit> ≊ ≊ ≊ ≊ STAGE 2: GUI COMPREHENSION Mock-Up ImplementationSpatial Component Matching
  • 57. ≊ ≊ ≊ ≊ STAGE 3: DESIGN VIOLATION DETECTION
  • 58. ≊ ≊ ≊ ≊ STAGE 3: DESIGN VIOLATION DETECTION
  • 59. ≊ ≊ ≊ ≊ STAGE 3: DESIGN VIOLATION DETECTION
  • 60. List of Potential DesignViolations STAGE 3: DESIGN VIOLATION DETECTION
  • 61. List of Potential DesignViolations STAGE 3: DESIGN VIOLATION DETECTION
  • 62. List of Potential DesignViolations Layout DV Resolver • <x,y> • <height,width> Text DV Resolver • <image> • <text> CHA + CQ Resource DV Resolver • <image> • Missing/ Extra CHA + CQ STAGE 3: DESIGN VIOLATION DETECTION
  • 69. THE IMPROVED GVT INTERFACE W&M Undergrads- Ashley Roten, Ivan Echevarria, Karen Coppage, Kelly Giddens,Thomas Roche
  • 70. THE IMPROVED GVT INTERFACE W&M Undergrads- Ashley Roten, Ivan Echevarria, Karen Coppage, Kelly Giddens,Thomas Roche
  • 71. THE IMPROVED GVT INTERFACE W&M Undergrads- Ashley Roten, Ivan Echevarria, Karen Coppage, Kelly Giddens,Thomas Roche
  • 73. EMPIRICAL STUDY • RQ1: Detecting and Classifying Design Violations ?
  • 74. EMPIRICAL STUDY • RQ1: Detecting and Classifying Design Violations ? • RQ2: Utility for Developers?
  • 75. EMPIRICAL STUDY • RQ1: Detecting and Classifying Design Violations ? • RQ2: Utility for Developers? • RQ3: Industrial Applicability?
  • 76. STUDY 1: EFFECTIVENESS AND PERFORMANCE Sketch
  • 77. STUDY 1: EFFECTIVENESS AND PERFORMANCE Runtime Screenshots & XML
  • 78. STUDY 1: EFFECTIVENESS AND PERFORMANCE Synthetic DV Injection Runtime Screenshots & XML
  • 79. STUDY 1: EFFECTIVENESS AND PERFORMANCE XML and Image Manipulation Synthetic DV Injection Runtime Screenshots & XML
  • 80. STUDY 1: EFFECTIVENESS AND PERFORMANCE LayoutViolations TextViolations ResourceViolations 100 Screens 200 DVs XML and Image Manipulation Synthetic DV Injection Runtime Screenshots & XML
  • 82. STUDY 2: GVT UTILITY LayoutViolations TextViolations ResourceViolations 45 Screens 40 DesignViolations 10 Academic and Industrial Android Developers 25% CP, DP, R Usability and User Preference Questions
  • 83. STUDY 2: RESULTS Easy to understand? Reports were Useful? Would Ike to use often? Hard to Read? Too Complex? 0 1.25 2.5 3.75 5 Developer UX/UP Responses Developer CP, DP and R AgreeDisagree
  • 84. STUDY 3: INDUSTRIAL APPLICABILITY 20 Industrial Android Developers & Designers Usability and User Preference Questions GVTTool Semi-Structured Interviews with Managers
  • 85. STUDY 3: RESULTS 0 1 2 3 4 5 Industrial Developer/Designer Responses AgreeDisagree Using GVT tool helped to improve the quality of mobile applications produced by Huawei The GVT tool helped my team communicate with other teams regarding GUI design violations The GVT tool is able to accurately report existing design violations in production applications The GVT has helped you to reduce the time 
 required for verifying design violations The GVT tool allowed for better transfer of the design to the implementation of the app
  • 87. STUDY 3: RESULTS “When the page is more complicated, the tool is more helpful.”
  • 88. STUDY 3: RESULTS “When the page is more complicated, the tool is more helpful.” “[DVs] can be detected pretty well... [but the tool is] not very flexible. For example, a switch component in the design is open, but the switch is closed in the implementation"
  • 89. STUDY 3: RESULTS “When the page is more complicated, the tool is more helpful.” “[DVs] can be detected pretty well... [but the tool is] not very flexible. For example, a switch component in the design is open, but the switch is closed in the implementation" “Currently, most errors are layout errors, so [the] tool is accurate. Static components are basically detected, [but] maybe the next extension should focus on dynamic components.”
  • 90. STUDY 3: RESULTS “When the page is more complicated, the tool is more helpful.” “[DVs] can be detected pretty well... [but the tool is] not very flexible. For example, a switch component in the design is open, but the switch is closed in the implementation" “Currently, most errors are layout errors, so [the] tool is accurate. Static components are basically detected, [but] maybe the next extension should focus on dynamic components.” “If you consider the time savings on discussion and arguments between the two teams, this tool saves us a lot of time”
  • 92. GVT: COLLABORATION OUTCOME GVT has impacted over 1,000 developers and designers!
  • 94. • Add support for detecting design violations for dynamic content FUTURE WORK
  • 95. • Add support for detecting design violations for dynamic content • Improve the user interface and usability of the tool FUTURE WORK
  • 96. • Add support for detecting design violations for dynamic content • Improve the user interface and usability of the tool • Gather further feedback from developers and designers FUTURE WORK
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103. Any Questions? Thank you! Kevin Moran College of William & Mary @kevpmo kpmoran@cs.wm.edu https://www.kpmoran.com
  • 104.
  • 108. LIMITATIONS • Impose restrictions on the app design process
  • 109. LIMITATIONS • Impose restrictions on the app design process • Cannot enforce the implementation of design specifications
  • 110. LIMITATIONS • Impose restrictions on the app design process • Cannot enforce the implementation of design specifications • Can be expensive or prohibitive to operate
  • 111. PROBLEM FORMALIZATION Screens and GUI-Components DesignViolations S = {GC1{GC2{GCi}, GC3}}<latexit sha1_base64="fUnIc/N9nW4lcCs00VSw9yHs4w0=">AAACCnicdVDLSgMxFM3UV62vqks3oUVwIUNmqn0shGIXuqxotdApJZOmbWjmQZIRyjB7N/6KGxcqbv0Cd/6N6bSCih7IzeGce0nucUPOpELow8gsLC4tr2RXc2vrG5tb+e2daxlEgtAWCXgg2i6WlDOfthRTnLZDQbHncnrjjhtT/+aWCskC/0pNQtr18NBnA0aw0lIvX7iEJ9CJzxo9K612WpmTHEJ9l5zESXr5IjLtqnVctiAySwhVENLErpWtqg0tE6Uogjmavfy70w9I5FFfEY6l7FgoVN0YC8UIp0nOiSQNMRnjIe1o6mOPym6c7pLAfa304SAQ+vgKpur3iRh7Uk48V3d6WI3kb28q/uV1IjWodmPmh5GiPpk9NIg4VAGcBgP7TFCi+EQTTATTf4VkhAUmSseX0yF8bQr/Jy3brJno4qhYP52nkQV7oAAOgAUqoA7OQRO0AAF34AE8gWfj3ng0XozXWWvGmM/sgh8w3j4BN/aY3g==</latexit><latexit sha1_base64="fUnIc/N9nW4lcCs00VSw9yHs4w0=">AAACCnicdVDLSgMxFM3UV62vqks3oUVwIUNmqn0shGIXuqxotdApJZOmbWjmQZIRyjB7N/6KGxcqbv0Cd/6N6bSCih7IzeGce0nucUPOpELow8gsLC4tr2RXc2vrG5tb+e2daxlEgtAWCXgg2i6WlDOfthRTnLZDQbHncnrjjhtT/+aWCskC/0pNQtr18NBnA0aw0lIvX7iEJ9CJzxo9K612WpmTHEJ9l5zESXr5IjLtqnVctiAySwhVENLErpWtqg0tE6Uogjmavfy70w9I5FFfEY6l7FgoVN0YC8UIp0nOiSQNMRnjIe1o6mOPym6c7pLAfa304SAQ+vgKpur3iRh7Uk48V3d6WI3kb28q/uV1IjWodmPmh5GiPpk9NIg4VAGcBgP7TFCi+EQTTATTf4VkhAUmSseX0yF8bQr/Jy3brJno4qhYP52nkQV7oAAOgAUqoA7OQRO0AAF34AE8gWfj3ng0XozXWWvGmM/sgh8w3j4BN/aY3g==</latexit><latexit sha1_base64="fUnIc/N9nW4lcCs00VSw9yHs4w0=">AAACCnicdVDLSgMxFM3UV62vqks3oUVwIUNmqn0shGIXuqxotdApJZOmbWjmQZIRyjB7N/6KGxcqbv0Cd/6N6bSCih7IzeGce0nucUPOpELow8gsLC4tr2RXc2vrG5tb+e2daxlEgtAWCXgg2i6WlDOfthRTnLZDQbHncnrjjhtT/+aWCskC/0pNQtr18NBnA0aw0lIvX7iEJ9CJzxo9K612WpmTHEJ9l5zESXr5IjLtqnVctiAySwhVENLErpWtqg0tE6Uogjmavfy70w9I5FFfEY6l7FgoVN0YC8UIp0nOiSQNMRnjIe1o6mOPym6c7pLAfa304SAQ+vgKpur3iRh7Uk48V3d6WI3kb28q/uV1IjWodmPmh5GiPpk9NIg4VAGcBgP7TFCi+EQTTATTf4VkhAUmSseX0yF8bQr/Jy3brJno4qhYP52nkQV7oAAOgAUqoA7OQRO0AAF34AE8gWfj3ng0XozXWWvGmM/sgh8w3j4BN/aY3g==</latexit> (GCm i ⇡ GCr j ) ^ (GCm i 6= GCr j ) =) DV 2 {GCm i , GCr j }<latexit sha1_base64="xgaNEjkEl6iZoQFEvQTxuPwBpk4=">AAACTHicdVFNbxMxFPQGaEv4aKBHLk9ESEVCK2/oR3qrWiR6LBJpK8Vp5PW+pKa2d7G90Gi1f7AXJG78Cy4cKELCSRNREIxkaTQzT34ep4WSzlP6JWrcun1naXnlbvPe/QcPV1uPHh+5vLQCeyJXuT1JuUMlDfa89ApPCotcpwqP0/P9qX/8Aa2TuXnrJwUONB8bOZKC+yANWxmsv94fVrI+1cB4Udj8AqbCu/rUPgf2EbMx3owYfP/bZwyY1GFNdPDqKHADrFpkXyxirB622jTudJPNrQRo/JLSbUoD6exsJd0OJDGdoU3mOBy2PrMsF6VG44XizvUTWvhBxa2XQmHdZKXDgotzPsZ+oIZrdINq1kYNz4KSwSi34RgPM/XmRMW1cxOdhqTm/sz97U3Ff3n90o+6g0qaovRoxPVFo1KBz2FaLWTSovBqEggXVoZdQZxxy4UPH9AMJSxeCv8nvU68E9M3G+3dvXkbK+QJeUrWSUK2yS45IIekRwS5JF/Jd3IVfYq+RT+in9fRRjSfWSN/oLH0C+ISsuQ=</latexit><latexit sha1_base64="xgaNEjkEl6iZoQFEvQTxuPwBpk4=">AAACTHicdVFNbxMxFPQGaEv4aKBHLk9ESEVCK2/oR3qrWiR6LBJpK8Vp5PW+pKa2d7G90Gi1f7AXJG78Cy4cKELCSRNREIxkaTQzT34ep4WSzlP6JWrcun1naXnlbvPe/QcPV1uPHh+5vLQCeyJXuT1JuUMlDfa89ApPCotcpwqP0/P9qX/8Aa2TuXnrJwUONB8bOZKC+yANWxmsv94fVrI+1cB4Udj8AqbCu/rUPgf2EbMx3owYfP/bZwyY1GFNdPDqKHADrFpkXyxirB622jTudJPNrQRo/JLSbUoD6exsJd0OJDGdoU3mOBy2PrMsF6VG44XizvUTWvhBxa2XQmHdZKXDgotzPsZ+oIZrdINq1kYNz4KSwSi34RgPM/XmRMW1cxOdhqTm/sz97U3Ff3n90o+6g0qaovRoxPVFo1KBz2FaLWTSovBqEggXVoZdQZxxy4UPH9AMJSxeCv8nvU68E9M3G+3dvXkbK+QJeUrWSUK2yS45IIekRwS5JF/Jd3IVfYq+RT+in9fRRjSfWSN/oLH0C+ISsuQ=</latexit><latexit sha1_base64="xgaNEjkEl6iZoQFEvQTxuPwBpk4=">AAACTHicdVFNbxMxFPQGaEv4aKBHLk9ESEVCK2/oR3qrWiR6LBJpK8Vp5PW+pKa2d7G90Gi1f7AXJG78Cy4cKELCSRNREIxkaTQzT34ep4WSzlP6JWrcun1naXnlbvPe/QcPV1uPHh+5vLQCeyJXuT1JuUMlDfa89ApPCotcpwqP0/P9qX/8Aa2TuXnrJwUONB8bOZKC+yANWxmsv94fVrI+1cB4Udj8AqbCu/rUPgf2EbMx3owYfP/bZwyY1GFNdPDqKHADrFpkXyxirB622jTudJPNrQRo/JLSbUoD6exsJd0OJDGdoU3mOBy2PrMsF6VG44XizvUTWvhBxa2XQmHdZKXDgotzPsZ+oIZrdINq1kYNz4KSwSi34RgPM/XmRMW1cxOdhqTm/sz97U3Ff3n90o+6g0qaovRoxPVFo1KBz2FaLWTSovBqEggXVoZdQZxxy4UPH9AMJSxeCv8nvU68E9M3G+3dvXkbK+QJeUrWSUK2yS45IIekRwS5JF/Jd3IVfYq+RT+in9fRRjSfWSN/oLH0C+ISsuQ=</latexit> (<x,y><height,width><text><image>) Presentation Failures {DV1, DV2, ...DVi} 2 {GCm i , GCr j } PF 2 {Sm , Sr }<latexit sha1_base64="yXwZIsk0lnWWH3xnETRAGLTCsiI=">AAACVXicdVFdb9MwFHWyMUb5WIHHvVirkHioIifA1r1NDI09dhrdJtVd5LjOamY7wb5BVFH+JLzAT+FlmtO10kBwJVtH55x7bR9npZIOCPkVhGvrDzYebj7qPH7y9NlW9/mLM1dUlosRL1RhLzLmhJJGjECCEhelFUxnSpxn14etfv5VWCcL8wnmpZhodmVkLjkDT6VdTUF8A6trmTeYfqnYFNP6w1ka97Hfk34URS2Q1KvSeO3jYVrL5lL3W/C5ubS0obSzmgIzYVZzhkfLllPvxqetM+32SJQM4ne7MSbRG0L2CPEg2d+NBwmOI7KoHlrWMO1+p9OCV1oY4Io5N45JCZOaWZBciaZDKydKxq/ZlRh7aJgWblIvYmnwK89McV5YvwzgBXu/o2baubnOvFMzmLm/tZb8lzauIB9MamnKCoThdwfllcJQ4DZjPJVWcFBzDxi30t8V8xmzjIP/iY4PYfVS/H8wSqL9iJy87R28X6axibbRDnqNYrSHDtAxGqIR4ugH+h2EwVrwM7gJ18ONO2sYLHteoj8q3LoFJMWyDg==</latexit><latexit sha1_base64="yXwZIsk0lnWWH3xnETRAGLTCsiI=">AAACVXicdVFdb9MwFHWyMUb5WIHHvVirkHioIifA1r1NDI09dhrdJtVd5LjOamY7wb5BVFH+JLzAT+FlmtO10kBwJVtH55x7bR9npZIOCPkVhGvrDzYebj7qPH7y9NlW9/mLM1dUlosRL1RhLzLmhJJGjECCEhelFUxnSpxn14etfv5VWCcL8wnmpZhodmVkLjkDT6VdTUF8A6trmTeYfqnYFNP6w1ka97Hfk34URS2Q1KvSeO3jYVrL5lL3W/C5ubS0obSzmgIzYVZzhkfLllPvxqetM+32SJQM4ne7MSbRG0L2CPEg2d+NBwmOI7KoHlrWMO1+p9OCV1oY4Io5N45JCZOaWZBciaZDKydKxq/ZlRh7aJgWblIvYmnwK89McV5YvwzgBXu/o2baubnOvFMzmLm/tZb8lzauIB9MamnKCoThdwfllcJQ4DZjPJVWcFBzDxi30t8V8xmzjIP/iY4PYfVS/H8wSqL9iJy87R28X6axibbRDnqNYrSHDtAxGqIR4ugH+h2EwVrwM7gJ18ONO2sYLHteoj8q3LoFJMWyDg==</latexit><latexit sha1_base64="yXwZIsk0lnWWH3xnETRAGLTCsiI=">AAACVXicdVFdb9MwFHWyMUb5WIHHvVirkHioIifA1r1NDI09dhrdJtVd5LjOamY7wb5BVFH+JLzAT+FlmtO10kBwJVtH55x7bR9npZIOCPkVhGvrDzYebj7qPH7y9NlW9/mLM1dUlosRL1RhLzLmhJJGjECCEhelFUxnSpxn14etfv5VWCcL8wnmpZhodmVkLjkDT6VdTUF8A6trmTeYfqnYFNP6w1ka97Hfk34URS2Q1KvSeO3jYVrL5lL3W/C5ubS0obSzmgIzYVZzhkfLllPvxqetM+32SJQM4ne7MSbRG0L2CPEg2d+NBwmOI7KoHlrWMO1+p9OCV1oY4Io5N45JCZOaWZBciaZDKydKxq/ZlRh7aJgWblIvYmnwK89McV5YvwzgBXu/o2baubnOvFMzmLm/tZb8lzauIB9MamnKCoThdwfllcJQ4DZjPJVWcFBzDxi30t8V8xmzjIP/iY4PYfVS/H8wSqL9iJy87R28X6axibbRDnqNYrSHDtAxGqIR4ugH+h2EwVrwM7gJ18ONO2sYLHteoj8q3LoFJMWyDg==</latexit>
  • 112. STAGE 2: GUI COMPREHENSION
  • 113. STAGE 3: DESIGN VIOLATION DETECTION
  • 117. HUAWEI COLLABORATION METHODOLOGY • Bi-weekly meetings with designers and developers
  • 118. HUAWEI COLLABORATION METHODOLOGY • Bi-weekly meetings with designers and developers • More than 12 releases of the tool, starting with a CLI
  • 119. HUAWEI COLLABORATION METHODOLOGY • Bi-weekly meetings with designers and developers • More than 12 releases of the tool, starting with a CLI • Acceptance tests designed by UI/UX experts
  • 120. HUAWEI COLLABORATION METHODOLOGY • Bi-weekly meetings with designers and developers • More than 12 releases of the tool, starting with a CLI • Acceptance tests designed by UI/UX experts • Deployed to a controlled user base for feedback