Mobile applications have become a popular software development domain in recent years due in part to a large user base, capable hardware, and accessible platforms. However, mobile developers also face unique challenges, including pressure for frequent releases to keep pace with rapid platform evolution, hardware iteration, and user feedback. Due to this rapid pace of evolution, developers need automated support for documenting the changes made to their apps in order to aid in program comprehension. One of the more challenging types of changes to document in mobile apps are those made to the graphical user interface (GUI) due to its abstract, pixel-based representation. In this paper, we present a fully automated approach, called Gcat, for detecting and summarizing GUI changes during the evolution of mobile apps. Gcat leverages computer vision techniques and natural language generation to accurately and concisely summarize changes made to the GUI of a mobile app between successive commits or releases. We evaluate the performance of our approach in terms of its precision and recall in detecting GUI changes compared to developer specified changes, and investigate the utility of the generated change reports in a controlled user study. Our results indicate that Gcat is capable of accurately detecting and classifying GUI changes – outperforming developers – while providing useful documentation.
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Detecting and Summarizing GUI Changes in Evolving Mobile Apps
1. Kevin Moran,
Cody Watson,
John Hoskins,
George Purnell, &
Denys Poshyvanyk
Detecting and Summarizing GUI
Changes in Evolving Mobile Apps
33rd International Conference
on Automated Software Engineering (ASE’18)
Thursday, September 6th, 2018
30. CURRENT LIMITATIONS
• No approach combines:
• Automated dynamic analysis
• CV-based GUI analysis
31. CURRENT LIMITATIONS
• No approach combines:
• Automated dynamic analysis
• CV-based GUI analysis
• Automated summarization
32. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY1
71Screens with
DesignViolations
1Moran, K., Li, B., Bernal-Cárdenas, C., Jelf, D., and Poshyvanyk, D., “Automated Reporting of GUI Design Violations for Mobile Apps”, (ICSE’18)
33. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY1
71Screens with
DesignViolations
Authors
1Moran, K., Li, B., Bernal-Cárdenas, C., Jelf, D., and Poshyvanyk, D., “Automated Reporting of GUI Design Violations for Mobile Apps”, (ICSE’18)
34. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY1
71Screens with
DesignViolations
Authors Open Coding
1Moran, K., Li, B., Bernal-Cárdenas, C., Jelf, D., and Poshyvanyk, D., “Automated Reporting of GUI Design Violations for Mobile Apps”, (ICSE’18)
35. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY1
71Screens with
DesignViolations
Authors Open Coding
1Moran, K., Li, B., Bernal-Cárdenas, C., Jelf, D., and Poshyvanyk, D., “Automated Reporting of GUI Design Violations for Mobile Apps”, (ICSE’18)
36. PRELIMINARY INDUSTRIAL EMPIRICAL STUDY1
71Screens with
DesignViolations
Authors Open Coding
GUI-Change
Taxonomy
25%
1Moran, K., Li, B., Bernal-Cárdenas, C., Jelf, D., and Poshyvanyk, D., “Automated Reporting of GUI Design Violations for Mobile Apps”, (ICSE’18)
37. GUI-CHANGE TAXONOMY
Change Category Specific Change
Text Changes
Text Content Change
Font Change
Font Color Change
Layout Changes
VerticalTranslation
HorizontalTranslation
Horizontal Size
Vertical Size
Resource Changes
Image Color Change
Removed Component
Added Component
Image Change
ComponentType Change
38. GUI-CHANGE TAXONOMY
Change Category Specific Change
Text Changes
Text Content Change
Font Change
Font Color Change
Layout Changes
VerticalTranslation
HorizontalTranslation
Horizontal Size
Vertical Size
Resource Changes
Image Color Change
Removed Component
Added Component
Image Change
ComponentType Change
39. GUI-CHANGE TAXONOMY
Change Category Specific Change
Text Changes
Text Content Change
Font Change
Font Color Change
Layout Changes
VerticalTranslation
HorizontalTranslation
Horizontal Size
Vertical Size
Resource Changes
Image Color Change
Removed Component
Added Component
Image Change
ComponentType Change
40. GUI-CHANGE TAXONOMY
Change Category Specific Change
Text Changes
Text Content Change
Font Change
Font Color Change
Layout Changes
VerticalTranslation
HorizontalTranslation
Horizontal Size
Vertical Size
Resource Changes
Image Color Change
Removed Component
Added Component
Image Change
ComponentType Change
41. GUI-CHANGE TAXONOMY
Change Category Specific Change
Text Changes
Text Content Change
Font Change
Font Color Change
Layout Changes
VerticalTranslation
HorizontalTranslation
Horizontal Size
Vertical Size
Resource Changes
Image Color Change
Removed Component
Added Component
Image Change
ComponentType Change
42. GUI-CHANGE TAXONOMY
Change Category Specific Change
Text Changes
Text Content Change
Font Change
Font Color Change
Layout Changes
VerticalTranslation
HorizontalTranslation
Horizontal Size
Vertical Size
Resource Changes
Image Color Change
Removed Component
Added Component
Image Change
ComponentType Change
43. GUI-CHANGE TAXONOMY
Change Category Specific Change
Text Changes
Text Content Change
Font Change
Font Color Change
Layout Changes
VerticalTranslation
HorizontalTranslation
Horizontal Size
Vertical Size
Resource Changes
Image Color Change
Removed Component
Added Component
Image Change
ComponentType Change
77. EMPIRICAL STUDY
• RQ1: Performance of Screen Matching and Filtering?
• RQ2: GCAT Detecting and Classifying GUI-Changes?
78. EMPIRICAL STUDY
• RQ1: Performance of Screen Matching and Filtering?
• RQ2: GCAT Detecting and Classifying GUI-Changes?
79. EMPIRICAL STUDY
• RQ1: Performance of Screen Matching and Filtering?
• RQ2: GCAT Detecting and Classifying GUI-Changes?
• RQ3: Developers Detecting and Classifying GUI-Changes?
80. EMPIRICAL STUDY
• RQ1: Performance of Screen Matching and Filtering?
• RQ2: GCAT Detecting and Classifying GUI-Changes?
• RQ3: Developers Detecting and Classifying GUI-Changes?
• RQ4: Developer Utility?
83. STUDY CONTEXT
FDroid
• Compilable Subsequent
Commits?
• Compiled Commits run
on target Nexus 7 device?
31 Open Source Apps (62 Apks)
Screen Collection Methodology
84. STUDY CONTEXT
FDroid
• Compilable Subsequent
Commits?
• Compiled Commits run
on target Nexus 7 device?
• GUI Changes exist on at
least 2 screens?
31 Open Source Apps (62 Apks)
Screen Collection Methodology
85. RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
31 Open Source Apps (62 Apks)
86. RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
31 Open Source Apps (62 Apks)
CrashScope
Execution
Engine
87. RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
31 Open Source Apps (62 Apks)
CrashScope
Execution
Engine
3,854
Extracted
Screens
88. RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
3,854
Extracted
Screens
93. RQ2 & RQ3: DEVELOPER PERFORMANCE & UTILITY
Layout Changes
TextChanges
Resource Changes
20 Academic and
Industrial Developers
25%
CP, DP, R
Usability and
User Preference
Questions
94. RQ2 & RQ3: EFFECTIVENESS AND PERFORMANCE
31 Open Source Apps (62 Apks)
Manual
Author
Screen
Analysis
50 Screen Paris
Split Among High,
Medium and Low
# of changes
96. RQ2 & RQ3: RESULTS
R
CP
DP
0 25 50 75 100
Detection Precision (DP)
Classification Precision (CP)
Recall (R)
Developer Performance
Easy to understand?
Reports were Useful?
Would Ike to use often?
Hard to Read?
Too Complex?
0 1.25 2.5 3.75 5
AgreeDisagree
Developer Utility
98. “The detailed changes [are best], since they show the status of the
elements before/after the changes. ”
RQ2 & RQ3: RESULTS
99. “The detailed changes [are best], since they show the status of the
elements before/after the changes. ”
“Seeing how components moved with the highlighted red
boxes [was most helpful to me].”
RQ2 & RQ3: RESULTS
100. “The detailed changes [are best], since they show the status of the
elements before/after the changes. ”
“Seeing how components moved with the highlighted red
boxes [was most helpful to me].”
“The spanning tree, I like the way it describes
changes in tree structure to make it clear and
straightforward. ”
RQ2 & RQ3: RESULTS
101. “The detailed changes [are best], since they show the status of the
elements before/after the changes. ”
“A way to group the changes or a potential importance
(e.g., a new component may be more important as
compared to a 2px change).”
“Seeing how components moved with the highlighted red
boxes [was most helpful to me].”
“The spanning tree, I like the way it describes
changes in tree structure to make it clear and
straightforward. ”
RQ2 & RQ3: RESULTS
103. • Develop Static AnalysisTechniques for integrating GUI code
information into change reports
AVENUES FOR FUTURE WORK
104. • Develop Static AnalysisTechniques for integrating GUI code
information into change reports
• Integrate GUI change information into IDEs to aid in program
comprehension
AVENUES FOR FUTURE WORK
105. • Develop Static AnalysisTechniques for integrating GUI code
information into change reports
• Integrate GUI change information into IDEs to aid in program
comprehension
• DevelopTechniques for effectively handling dynamic screen content
AVENUES FOR FUTURE WORK
106. • Develop Static AnalysisTechniques for integrating GUI code
information into change reports
• Integrate GUI change information into IDEs to aid in program
comprehension
• DevelopTechniques for effectively handling dynamic screen content
• Prioritizing the Importance of changes for more effective
summarization
AVENUES FOR FUTURE WORK
115. GUI CHANGE AMBIGUITIES
a) Previous application menu bar
b) New application menu bar
The was replaced by the , the was replaced by the
and the was added to the GUI.
The and were shifted to the left, and the was added to the GUI.