SlideShare ist ein Scribd-Unternehmen logo
1 von 115
Downloaden Sie, um offline zu lesen
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
!3
!3
COMPREHENDING MOBILE GUIS
COMPREHENDING MOBILE GUIS
COMPREHENDING MOBILE GUIS
<PreferenceScreen	
				xmlns:android="http://schemas.android.com/apk/res/android"	
				xmlns:app="http://schemas.android.com/apk/res-auto"	
				android:key="main"	
				android:title="@string/account_settings_title_fmt">	
				<PreferenceScreen	
								android:key="account_settings"	
								android:title="@string/account_settings_general_title">	
								<com.takisoft.fix.support.v7.preference.AutoSummaryEditTextPreference	
												android:dialogTitle="@string/account_settings_description_label"	
												android:key="account_description"	
												android:title="@string/account_settings_description_label"	/>	
								<CheckBoxPreference	
												android:key="account_default"	
												android:summary="@string/account_settings_default_summary"	
												android:title="@string/account_settings_default_label"	/>	
								<com.fsck.k9.ui.settings.account.HoloColorPickerPreference	
												android:key="chip_color"	
												android:summary="@string/account_settings_color_summary"	
												android:title="@string/account_settings_color_label"	/>	
				</PreferenceScreen>
COMPREHENDING MOBILE GUIS
<PreferenceScreen	
				xmlns:android="http://schemas.android.com/apk/res/android"	
				xmlns:app="http://schemas.android.com/apk/res-auto"	
				android:key="main"	
				android:title="@string/account_settings_title_fmt">	
				<PreferenceScreen	
								android:key="account_settings"	
								android:title="@string/account_settings_general_title">	
								<com.takisoft.fix.support.v7.preference.AutoSummaryEditTextPreference	
												android:dialogTitle="@string/account_settings_description_label"	
												android:key="account_description"	
												android:title="@string/account_settings_description_label"	/>	
								<CheckBoxPreference	
												android:key="account_default"	
												android:summary="@string/account_settings_default_summary"	
												android:title="@string/account_settings_default_label"	/>	
								<com.fsck.k9.ui.settings.account.HoloColorPickerPreference	
												android:key="chip_color"	
												android:summary="@string/account_settings_color_summary"	
												android:title="@string/account_settings_color_label"	/>	
				</PreferenceScreen>
COMPREHENDING MOBILE GUIS
COMPREHENDING MOBILE GUIS
class	GeneralSettingsActivity	:	K9Activity(),	OnPreferenceStartScreenCallback	{	
				override	fun	onCreate(savedInstanceState:	Bundle?)	{	
								super.onCreate(savedInstanceState)	
								setContentView(R.layout.general_settings)	
								initializeActionBar()	
								if	(savedInstanceState	==	null)	{	
												fragmentTransaction	{	
																add(R.id.generalSettingsContainer,	GeneralSettingsFragment.create())	
												}	
								}	
			}	
				private	fun	initializeActionBar()	{	
								val	actionBar	=	supportActionBar	?:	throw		
RuntimeException("getSupportActionBar()	==	null”)	
								actionBar.setDisplayHomeAsUpEnabled(true)	
				}	
COMPREHENDING MOBILE GUIS
COMPREHENDING MOBILE GUIS
COMPREHENDING MOBILE GUIS
Video Source: Google
Video Source: Google
COMPLICATIONS OF FRAGMENTATION
https://opensignal.com/reports/2015/08/android-fragmentation/
Developers need support in
identifying and reasoning about GUI
related changes in mobile apps
EXISTING WORK
EXISTING WORK
Detecting
Presentation
Failures in
Web Apps
EXISTING WORK
Detecting
Presentation
Failures in
Web Apps
Automated
Source Code
Summarization
EXISTING WORK
Detecting
Presentation
Failures in
Web Apps
GUI
Differencing
Automated
Source Code
Summarization
EXISTING WORK
Detecting
Presentation
Failures in
Web Apps
GUI
Differencing
Automated
Source Code
Summarization
Cross
Browser
Testing
EXISTING WORK
Detecting
Presentation
Failures in
Web Apps
Detecting Design
Violations in
Mobile Apps
GUI
Differencing
Automated
Source Code
Summarization
Cross
Browser
Testing
CURRENT LIMITATIONS
CURRENT LIMITATIONS
• No approach combines:
CURRENT LIMITATIONS
• No approach combines:
• Automated dynamic analysis
CURRENT LIMITATIONS
• No approach combines:
• Automated dynamic analysis
• CV-based GUI analysis
CURRENT LIMITATIONS
• No approach combines:
• Automated dynamic analysis
• CV-based GUI analysis
• Automated summarization
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)
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)
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)
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)
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)
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
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
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
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
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
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
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
GUI CHANGE ANALYSIS TOOL (GCAT)
Git/CI
Integration
Project History
Virtual or Physical Device Pool
N1
N2
N3
N4
N5T7
T3
T17
T35
T12
T25
T42
T59
T29
T21
N6
CrashScope
Automated
Execution
Engine
Screenshot & Metadata
Pairs - Commit i
Screenshot & Metadata
Pairs - Commit i+n
Screen Matching
& Filtering
Activity/
Window
Comparator
Bipartite
Image
Comparison
GUI-Hierarchy for
Commit i
GUI-Hierarchy for
Commit i+n
Leaf Node Component
Detection and Matching
GUI Change Resolution
Perceptual Image
Differencing (PID)
GUI-Change Report
Layout Change
Detection
Text Change
Detection
Resource Change
Detection
NL Summary Generator
Checks:
<x>,<y>
Checks:
<width>,<height>
Normalized
String
Comparison
Image
Comparison
Analysis
Commit i
Commit i+1
Commit i+2
Commit i+n
GUI CHANGE ANALYSIS TOOL (GCAT)
1) CI/CD Integration
Git/CI
Integration
Project History
Virtual or Physical Device Pool
N1
N2
N3
N4
N5T7
T3
T17
T35
T12
T25
T42
T59
T29
T21
N6
CrashScope
Automated
Execution
Engine
Screenshot & Metadata
Pairs - Commit i
Screenshot & Metadata
Pairs - Commit i+n
Screen Matching
& Filtering
Activity/
Window
Comparator
Bipartite
Image
Comparison
GUI-Hierarchy for
Commit i
GUI-Hierarchy for
Commit i+n
Leaf Node Component
Detection and Matching
GUI Change Resolution
Perceptual Image
Differencing (PID)
GUI-Change Report
Layout Change
Detection
Text Change
Detection
Resource Change
Detection
NL Summary Generator
Checks:
<x>,<y>
Checks:
<width>,<height>
Normalized
String
Comparison
Image
Comparison
Analysis
Commit i
Commit i+1
Commit i+2
Commit i+n
GUI CHANGE ANALYSIS TOOL (GCAT)
1) CI/CD Integration
2) Automated GUI-based
Exploration
Git/CI
Integration
Project History
Virtual or Physical Device Pool
N1
N2
N3
N4
N5T7
T3
T17
T35
T12
T25
T42
T59
T29
T21
N6
CrashScope
Automated
Execution
Engine
Screenshot & Metadata
Pairs - Commit i
Screenshot & Metadata
Pairs - Commit i+n
Screen Matching
& Filtering
Activity/
Window
Comparator
Bipartite
Image
Comparison
GUI-Hierarchy for
Commit i
GUI-Hierarchy for
Commit i+n
Leaf Node Component
Detection and Matching
GUI Change Resolution
Perceptual Image
Differencing (PID)
GUI-Change Report
Layout Change
Detection
Text Change
Detection
Resource Change
Detection
NL Summary Generator
Checks:
<x>,<y>
Checks:
<width>,<height>
Normalized
String
Comparison
Image
Comparison
Analysis
Commit i
Commit i+1
Commit i+2
Commit i+n
GUI CHANGE ANALYSIS TOOL (GCAT)
1) CI/CD Integration
2) Automated GUI-based
Exploration
3) GUI Interpretation &
Change Detection
Git/CI
Integration
Project History
Virtual or Physical Device Pool
N1
N2
N3
N4
N5T7
T3
T17
T35
T12
T25
T42
T59
T29
T21
N6
CrashScope
Automated
Execution
Engine
Screenshot & Metadata
Pairs - Commit i
Screenshot & Metadata
Pairs - Commit i+n
Screen Matching
& Filtering
Activity/
Window
Comparator
Bipartite
Image
Comparison
GUI-Hierarchy for
Commit i
GUI-Hierarchy for
Commit i+n
Leaf Node Component
Detection and Matching
GUI Change Resolution
Perceptual Image
Differencing (PID)
GUI-Change Report
Layout Change
Detection
Text Change
Detection
Resource Change
Detection
NL Summary Generator
Checks:
<x>,<y>
Checks:
<width>,<height>
Normalized
String
Comparison
Image
Comparison
Analysis
Commit i
Commit i+1
Commit i+2
Commit i+n
STAGE 1: CI/CD INTEGRATION
Git/CI
Integration
Project History
Virtual or Physical Device Po
N1
N2
N3
N4
T7
T3
T17
T35
T12
T25
T42
T
T29
T21
N6
CrashScope
Automated
Execution
Engine
Commit i
Commit i+1
Commit i+2
Commit i+n
STAGE 1: CI/CD INTEGRATION
Git/CI
Integration
Project History
Virtual or Physical Device Po
N1
N2
N3
N4
T7
T3
T17
T35
T12
T25
T42
T
T29
T21
N6
CrashScope
Automated
Execution
Engine
Commit i
Commit i+1
Commit i+2
Commit i+n
STAGE 1: CI/CD INTEGRATION
Git/CI
Integration
Project History
Virtual or Physical Device Po
N1
N2
N3
N4
T7
T3
T17
T35
T12
T25
T42
T
T29
T21
N6
CrashScope
Automated
Execution
Engine
Commit i
Commit i+1
Commit i+2
Commit i+n
STAGE 2:AUTOMATED DYNAMIC ANALYSIS
STAGE 2:AUTOMATED DYNAMIC ANALYSIS
CrashScope1
Execution
Engine
1Moran, K., Linares-Vásquez, M., Bernal-Cárdenas, C., Vendome, C., and
Poshyvanyk, D., “Automatically Discovering, Reporting and Reproducing
Android Application Crashes”, ICST’16
STAGE 2:AUTOMATED DYNAMIC ANALYSIS
CrashScope1
Execution
Engine
Execution Engine
1Moran, K., Linares-Vásquez, M., Bernal-Cárdenas, C., Vendome, C., and
Poshyvanyk, D., “Automatically Discovering, Reporting and Reproducing
Android Application Crashes”, ICST’16
STAGE 2:AUTOMATED DYNAMIC ANALYSIS
CrashScope1
Execution
Engine
Execution Engine
1Moran, K., Linares-Vásquez, M., Bernal-Cárdenas, C., Vendome, C., and
Poshyvanyk, D., “Automatically Discovering, Reporting and Reproducing
Android Application Crashes”, ICST’16
STAGE 2:AUTOMATED DYNAMIC ANALYSIS
CrashScope1
Execution
Engine
Execution Engine
1Moran, K., Linares-Vásquez, M., Bernal-Cárdenas, C., Vendome, C., and
Poshyvanyk, D., “Automatically Discovering, Reporting and Reproducing
Android Application Crashes”, ICST’16
STAGE 2: SCREEN MATCHING AND FILTERING
Older Commit Newer Commit
STAGE 2: SCREEN MATCHING AND FILTERING
GUI Color
Histogram Analysis
Spatial GUI
Component
Analysis
Older Commit Newer Commit
Discard Non-Unique
Activity-Window Pairs
STAGE 2: SCREEN MATCHING AND FILTERING
GUI Color
Histogram Analysis
Spatial GUI
Component
Analysis
Older Commit Newer Commit
Discard Non-Unique
Activity-Window Pairs
STAGE 2: SCREEN MATCHING AND FILTERING
GUI Color
Histogram Analysis
Spatial GUI
Component
Analysis
Older Commit Newer Commit Matched Screen Pairs
≈
≈
≈
Discard Non-Unique
Activity-Window Pairs
STAGE3: GUI COMPREHENSION
Old Commit New Commit
STAGE3: GUI COMPREHENSION
Old Commit New CommitSpatial
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>
≊
≊
≊
≊
STAGE3: GUI COMPREHENSION
Old Commit New CommitSpatial
Component
Matching
Perceptual
Image
Differencing
(PID)
STAGE 3: GUI-CHANGE DETECTION
Perceptual
Image
Differencing
(PID)
STAGE 3: GUI-CHANGE DETECTION
Perceptual
Image
Differencing
(PID)
STAGE 3: GUI-CHANGE DETECTION
≊
≊
≊
≊
≊
STAGE 3: GUI-CHANGE DETECTION
≊
≊
≊
≊
≊
STAGE 3: GUI-CHANGE DETECTION
≊
≊
≊
≊
≊
STAGE 3: GUI-CHANGE DETECTION
List of Potential
GUI Changes
STAGE 3: GUI CHANGE RESOLUTION
List of Potential
GUI Changes
STAGE 3: GUI CHANGE RESOLUTION
List of Potential
GUI Changes
Layout Change Resolver
• <x,y>
• <height,width>
Text Change Resolver
• <image>
• <text> CHA + CQ
Resource Change Resolver
• <image>
• Missing/
Extra CHA + CQ
STAGE 3: GUI CHANGE RESOLUTION
GCAT REPORT
GVT REPORT
GVT REPORT
EMPIRICAL STUDY
EMPIRICAL STUDY
• RQ1: Performance of Screen Matching and Filtering?
EMPIRICAL STUDY
• RQ1: Performance of Screen Matching and Filtering?
• RQ2: GCAT Detecting and Classifying GUI-Changes?
EMPIRICAL STUDY
• RQ1: Performance of Screen Matching and Filtering?
• RQ2: GCAT Detecting and Classifying GUI-Changes?
EMPIRICAL STUDY
• RQ1: Performance of Screen Matching and Filtering?
• RQ2: GCAT Detecting and Classifying GUI-Changes?
• RQ3: Developers Detecting and Classifying GUI-Changes?
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?
STUDY CONTEXT
FDroid
31 Open Source Apps (62 Apks)
Screen Collection Methodology
STUDY CONTEXT
FDroid
• Compilable Subsequent
Commits?
31 Open Source Apps (62 Apks)
Screen Collection Methodology
STUDY CONTEXT
FDroid
• Compilable Subsequent
Commits?
• Compiled Commits run
on target Nexus 7 device?
31 Open Source Apps (62 Apks)
Screen Collection Methodology
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
RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
31 Open Source Apps (62 Apks)
RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
31 Open Source Apps (62 Apks)
CrashScope
Execution
Engine
RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
31 Open Source Apps (62 Apks)
CrashScope
Execution
Engine
3,854
Extracted
Screens
RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
3,854
Extracted
Screens
RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
3,854
Extracted
Screens
GUI Color
Histogram Analysis
Spatial Analysis
Screen Matching & Filtering
Discard Non-Unique
Activity-Window Pairs
RQ1 & RQ2: EFFECTIVENESS AND PERFORMANCE
3,854
Extracted
Screens
Matched Screens
• High # of Changes
• Medium # of Changes
• Low # of Changes
GUI Color
Histogram Analysis
Spatial Analysis
Screen Matching & Filtering
Discard Non-Unique
Activity-Window Pairs
RQ1 & RQ2: RESULTS
% Filtered Screens Matching Precision
(3,538 screens)
91.8%
(134/151 pairs)
84.4%
Screen Filtering & Matching
RQ1 & RQ2: RESULTS
% Filtered Screens Matching Precision
(3,538 screens)
91.8%
(134/151 pairs)
84.4%
Screen Filtering & Matching
R
CP
DP
0 25 50 75 100
GUI Change Detection and Classification
Detection Precision (DP)
Classification Precision (CP)
Recall (R)
*Random
Sample
of 18
Screen Pairs
RQ2 & RQ3: DEVELOPER PERFORMANCE & UTILITY
Layout Changes
TextChanges
Resource Changes
20 Academic and
Industrial Developers
25%
CP, DP, R
Usability and
User Preference
Questions
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
RQ2 & RQ3: RESULTS
R
CP
DP
0 25 50 75 100
Detection Precision (DP)
Classification Precision (CP)
Recall (R)
Developer Performance
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
RQ2 & RQ3: RESULTS
“The detailed changes [are best], since they show the status of the
elements before/after the changes. ”
RQ2 & RQ3: RESULTS
“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
“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
“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
AVENUES FOR FUTURE WORK
• Develop Static AnalysisTechniques for integrating GUI code
information into change reports
AVENUES FOR FUTURE WORK
• 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
• 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
• 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
https://www.android-dev-tools.com/gcat/
Any Questions?
Thank you!
Kevin Moran
Post-Doctoral Fellow
College of William & Mary
@kevpmo
kpmoran@cs.wm.edu
https://www.kpmoran.com
ADDITIONAL SLIDES
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.

Weitere ähnliche Inhalte

Ähnlich wie Detecting and Summarizing GUI Changes in Evolving Mobile Apps

Trimantra - Project Portfolio_NET
Trimantra - Project Portfolio_NETTrimantra - Project Portfolio_NET
Trimantra - Project Portfolio_NET
Mihir G.
 
Android App Development 03 : Widget &amp; UI
Android App Development 03 : Widget &amp; UIAndroid App Development 03 : Widget &amp; UI
Android App Development 03 : Widget &amp; UI
Anuchit Chalothorn
 
Web Trends Standard Reports (print screen)
Web Trends Standard Reports (print screen)Web Trends Standard Reports (print screen)
Web Trends Standard Reports (print screen)
Min Guo
 

Ähnlich wie Detecting and Summarizing GUI Changes in Evolving Mobile Apps (20)

jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
Android ui with xml
Android ui with xmlAndroid ui with xml
Android ui with xml
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android Apps
 
MAD LAB MANUAL.pdf
MAD LAB MANUAL.pdfMAD LAB MANUAL.pdf
MAD LAB MANUAL.pdf
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
Trimantra - Project Portfolio_NET
Trimantra - Project Portfolio_NETTrimantra - Project Portfolio_NET
Trimantra - Project Portfolio_NET
 
Android App Development 03 : Widget &amp; UI
Android App Development 03 : Widget &amp; UIAndroid App Development 03 : Widget &amp; UI
Android App Development 03 : Widget &amp; UI
 
WebClient Customization.pdf
WebClient Customization.pdfWebClient Customization.pdf
WebClient Customization.pdf
 
ASP.NET ONLINE TRAINING
ASP.NET ONLINE TRAININGASP.NET ONLINE TRAINING
ASP.NET ONLINE TRAINING
 
Building a simple user interface lesson2
Building a simple user interface lesson2Building a simple user interface lesson2
Building a simple user interface lesson2
 
AndroidLab_IT.pptx
AndroidLab_IT.pptxAndroidLab_IT.pptx
AndroidLab_IT.pptx
 
Midlogic technical presentation 2005
Midlogic technical presentation 2005Midlogic technical presentation 2005
Midlogic technical presentation 2005
 
Top Tips for Getting the Best from SuccessFactors Q3 2016 Release Universal U...
Top Tips for Getting the Best from SuccessFactors Q3 2016 Release Universal U...Top Tips for Getting the Best from SuccessFactors Q3 2016 Release Universal U...
Top Tips for Getting the Best from SuccessFactors Q3 2016 Release Universal U...
 
Web Trends Standard Reports (print screen)
Web Trends Standard Reports (print screen)Web Trends Standard Reports (print screen)
Web Trends Standard Reports (print screen)
 
Create New Android Layout
Create New Android LayoutCreate New Android Layout
Create New Android Layout
 
How to use data binding in android
How to use data binding in androidHow to use data binding in android
How to use data binding in android
 
Android App Development 20150611
Android App Development 20150611Android App Development 20150611
Android App Development 20150611
 
Recommended material components : Android Bangkok 2019
Recommended material components : Android Bangkok 2019Recommended material components : Android Bangkok 2019
Recommended material components : Android Bangkok 2019
 
Going mobile with Kentico CMS
Going mobile with Kentico CMSGoing mobile with Kentico CMS
Going mobile with Kentico CMS
 
01 09 - graphical user interface - basic widgets
01  09 - graphical user interface - basic widgets01  09 - graphical user interface - basic widgets
01 09 - graphical user interface - basic widgets
 

Mehr von Kevin Moran

Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile AppsMachine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Kevin Moran
 
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Kevin Moran
 
Assessing Test Case Prioritization on Real Faults and Mutants
Assessing Test Case Prioritization on Real Faults and MutantsAssessing Test Case Prioritization on Real Faults and Mutants
Assessing Test Case Prioritization on Real Faults and Mutants
Kevin Moran
 
Auto-completing Bug Reports for Android Applications
Auto-completing Bug Reports for Android ApplicationsAuto-completing Bug Reports for Android Applications
Auto-completing Bug Reports for Android Applications
Kevin Moran
 
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
Kevin Moran
 
Automated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to PracticeAutomated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to Practice
Kevin Moran
 
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Kevin Moran
 

Mehr von Kevin Moran (14)

Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile AppsMachine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
 
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
 
Assessing Test Case Prioritization on Real Faults and Mutants
Assessing Test Case Prioritization on Real Faults and MutantsAssessing Test Case Prioritization on Real Faults and Mutants
Assessing Test Case Prioritization on Real Faults and Mutants
 
MDroid+: A Mutation Testing Framework for Android
MDroid+: A Mutation Testing Framework for AndroidMDroid+: A Mutation Testing Framework for Android
MDroid+: A Mutation Testing Framework for Android
 
Automated Reporting of GUI Design Violations for Mobile Apps
Automated Reporting of GUI Design Violations for Mobile AppsAutomated Reporting of GUI Design Violations for Mobile Apps
Automated Reporting of GUI Design Violations for Mobile Apps
 
On-Device Bug Reporting for Android Applications
On-Device Bug Reporting for Android ApplicationsOn-Device Bug Reporting for Android Applications
On-Device Bug Reporting for Android Applications
 
Auto-completing Bug Reports for Android Applications
Auto-completing Bug Reports for Android ApplicationsAuto-completing Bug Reports for Android Applications
Auto-completing Bug Reports for Android Applications
 
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
 
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
 
Automated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to PracticeAutomated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to Practice
 
How do Developers Test Android Applications?
How do Developers Test Android Applications?How do Developers Test Android Applications?
How do Developers Test Android Applications?
 
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
 
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
 
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...
 

Kürzlich hochgeladen

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Kürzlich hochgeladen (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Detecting and Summarizing GUI Changes in Evolving Mobile Apps