SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
ICSE’17
Buenos Aires,Argentina
Wednesday, May 24th, 2017
Kevin Moran,
Mario Linares-Vásquez,
Carlos Bernal-Cárdenas,
ChristopherVendome,
& Denys Poshyvanyk
CrashScope:A PracticalTool for
AutomatedTesting of Android
Applications
3
3
MANUALTESTING
MANUALTESTING
AUTOMATEDTESTING
AUTOMATEDTESTING
AUTOMATEDTESTING
CATEGORIES OF AUTOMATEDTESTING
APPROACHES FOR MOBILE APPS
• Random-based
• Systematic-based
• Model-based
• Record and replay
• Others (ManualTesting Frameworks)
THE CURRENT STATE OF AUTOMATED
MOBILE APPLICATIONTESTING
Tool Name Instr.
GUI
Exploration
Types of
Events
Crash
Resilient
Replayable Test
Cases
NL Crash
Reports
Emulators,
Devices
Dynodroid Yes Guided/Random System, GUI, Text Yes No No No
EvoDroid No System/Evo GUI No No No N/A
AndroidRipper Yes Systematic GUI, Text No No No N/A
MobiGUItar Yes Model-Based GUI, Text No Yes No N/A
A3E DFS Yes Systematic GUI No No No Yes
A3E Targeted
[20]
Yes Model-Based GUI No No No Yes
Swifthand Yes Model-Based GUI, Text N/A No No Yes
PUMA Yes Programmable System, GUI, Text N/A No No Yes
ACTEve Yes Systematic GUI N/A No No Yes
VANARSena Yes Random System, GUI, Text Yes Yes No N/A
Thor Yes Test Cases Test Case Events N/A N/A No No
QUANTUM Yes Model-Based System, GUI N/A Yes No N/A
AppDoctor Yes Multiple System, GUI, Text Yes Yes No N/A
ORBIT No Model-Based GUI N/A No No N/A
SPAG-C No Record/Replay GUI N/A N/A No No
JPF-Android No Scripting GUI N/A Yes No N/A
MonkeyLab No Model-based GUI, Text No Yes No Yes
CrashDroid No Manual Rec/Replay GUI, Text Manual Yes Yes Yes
SIG-Droid No Symbolic GUI, Text N/A Yes No N/A
Sapienz No Search-Based GUI, Text N/A Yes No Yes
CrashScope No Systematic GUI, Text, System Yes Yes Yes Yes
THE CURRENT STATE OF AUTOMATED
MOBILE APPLICATIONTESTING
Tool Name Instr.
GUI
Exploration
Types of
Events
Crash
Resilient
Replayable Test
Cases
NL Crash
Reports
Emulators,
Devices
Dynodroid Yes Guided/Random System, GUI, Text Yes No No No
EvoDroid No System/Evo GUI No No No N/A
AndroidRipper Yes Systematic GUI, Text No No No N/A
MobiGUItar Yes Model-Based GUI, Text No Yes No N/A
A3E DFS Yes Systematic GUI No No No Yes
A3E Targeted
[20]
Yes Model-Based GUI No No No Yes
Swifthand Yes Model-Based GUI, Text N/A No No Yes
PUMA Yes Programmable System, GUI, Text N/A No No Yes
ACTEve Yes Systematic GUI N/A No No Yes
VANARSena Yes Random System, GUI, Text Yes Yes No N/A
Thor Yes Test Cases Test Case Events N/A N/A No No
QUANTUM Yes Model-Based System, GUI N/A Yes No N/A
AppDoctor Yes Multiple System, GUI, Text Yes Yes No N/A
ORBIT No Model-Based GUI N/A No No N/A
SPAG-C No Record/Replay GUI N/A N/A No No
JPF-Android No Scripting GUI N/A Yes No N/A
MonkeyLab No Model-based GUI, Text No Yes No Yes
CrashDroid No Manual Rec/Replay GUI, Text Manual Yes Yes Yes
SIG-Droid No Symbolic GUI, Text N/A Yes No N/A
Sapienz No Search-Based GUI, Text N/A Yes No Yes
CrashScope No Systematic GUI, Text, System Yes Yes Yes Yes
What are the limitations of current
automated approaches?
LIMITATIONS OF AUTOMATED MOBILE
TESTING AND DEBUGGING
1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there
yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
LIMITATIONS OF AUTOMATED MOBILE
TESTING AND DEBUGGING
• Lack of detailed, easy to understand testing results for faults/
crashes1
1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there
yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
LIMITATIONS OF AUTOMATED MOBILE
TESTING AND DEBUGGING
• Lack of detailed, easy to understand testing results for faults/
crashes1
• No easy way to reproduce test scenarios1
1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there
yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
LIMITATIONS OF AUTOMATED MOBILE
TESTING AND DEBUGGING
• Lack of detailed, easy to understand testing results for faults/
crashes1
• No easy way to reproduce test scenarios1
• Not practical from a developers viewpoint
1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there
yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
LIMITATIONS OF AUTOMATED MOBILE
TESTING AND DEBUGGING
• Lack of detailed, easy to understand testing results for faults/
crashes1
• No easy way to reproduce test scenarios1
• Not practical from a developers viewpoint
• Few approaches enable different strategies capable of
generating text and testing contextual features
1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there
yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
PAST STUDIES OF MOBILE
CRASHES AND BUGS
• Many crashes can be mapped to well-defined, externally
inducible faults1
• Contextual features, such as network connectivity and screen
rotation, account for many of these externally inducible faults12
• These dominant root causes can affect many different user
execution paths1
1L. Ravindranath, S. Nath, J. Padhye, and H. Balakrishnan.Automatic and scalable fault detection for mobile applications. MobiSys ’14
2R. N. Zaeem, M. R. Prasad, and S. Khurshid.Automated generation of oracles for testing user-interaction features of mobile apps, ICST ’14
OUR SOLUTION: CRASHSCOPE
OUR SOLUTION: CRASHSCOPE
• Completely automated approach
OUR SOLUTION: CRASHSCOPE
• Completely automated approach
• Generates detailed, expressive bug reports and repayable scripts
OUR SOLUTION: CRASHSCOPE
• Completely automated approach
• Generates detailed, expressive bug reports and repayable scripts
• A practical tool, requiring no instrumentation framework, or
modification to the OS or applications
OUR SOLUTION: CRASHSCOPE
• Completely automated approach
• Generates detailed, expressive bug reports and repayable scripts
• A practical tool, requiring no instrumentation framework, or
modification to the OS or applications
• Capable of running on both physical devices and emulators
OUR SOLUTION: CRASHSCOPE
• Completely automated approach
• Generates detailed, expressive bug reports and repayable scripts
• A practical tool, requiring no instrumentation framework, or
modification to the OS or applications
• Capable of running on both physical devices and emulators
• Differing execution strategies able to test contextual features
CRASHSCOPE DESIGN
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
Physical Device or Emulator
.apk
app
src
or
Android
Application
Report Generation
Crash-Execution
Script Generator
Crash-Execution
Script Replayer
1
2
3
4 5
CRASHSCOPE DESIGN
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
Physical Device or Emulator
.apk
app
src
or
Android
Application
Report Generation
Crash-Execution
Script Generator
Crash-Execution
Script Replayer
1
2
3
4 5
1
CRASHSCOPE DESIGN
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
Physical Device or Emulator
.apk
app
src
or
Android
Application
Report Generation
Crash-Execution
Script Generator
Crash-Execution
Script Replayer
1
2
3
4 5
1
II
CRASHSCOPE:ANALYSIS
GUI Ripping Engine
.apk
or
app
src
Physical Device or Emulator
Android
UIAutomator
Event Execution
Engine
(adb input &
telnet)
—Touch Event
—GUI Component
Information
—Screenshots
Crash after
last step?
YesNo
Execution
Finished?
No Yes
Decision Engine
Determine next
<Action, GUI>
Event to Execute
Enable/Disable
Activity/App
Features
Save
Execution
Information
2
Continue
Execution
CrashScope
Database
3
D
Contextual Feature Extractor1
.apk
decompiler
(if necessary)
Android
Application
Manifest File
Parser API Extractor
Rotatable
Activities
App and
Activity Level
Contextual
Features
App and
Activity Level
Contextual
Features
CRASHSCOPE: EXPLORATION
CRASHSCOPE: EXPLORATION
CRASHSCOPE: EXPLORATION
CRASHSCOPE: EXPLORATION
uiautomator
CRASHSCOPE: EXPLORATION
uiautomator
CRASHSCOPE: EXPLORATION
CRASHSCOPE: EXPLORATION
• Activity
• Checkable, Checked, Clickable, Long Clickable?
• Component Index
• Current Window
• Enabled?
• XML_ID
• ComponentType
• Position (Absolute and Relative)
• Text
• Screenshot →
CRASHSCOPE: EXPLORATION
CRASHSCOPE: EXPLORATION
CRASHSCOPE: EXPLORATION
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
.apk
app
src
or
Android
Application
1
2
3
4
CRASHSCOPE STRATEGIES
• GUI-Traversal:Top-Down & Bottom Up (DFS)
• Text Entry: Expected, Unexpected, NoText
• Contextual Features: Enabled or Disabled
CRASHSCOPE DEMO
CRASHSCOPE DEMO
CRASHSCOPE: REPORT AND SCRIPT
GENERATION
Augmented Natural Language Report Generator
Crash Execution Script Generator
Web Based
Application Bug Report
(JSP, MySQL, and
Bootstrap)
Crash Execution Script Replayer
Googlehttp://cs.wm.edu/semeru
CrashScope Report
Database
Parser
CrashScope
Script
Generator
Replay
Script
Parser
Contextual
Event
Interperter /
adb
Replayer
Physical Device
or Emulator
Contextual
Event Execution
(telnet
commands)
Event Execution
Engine
(adb sendevent &
adb input)
4
5
6 7
CrashScope
Database
3
Step
Processor
Database
Parser
App
Executions
Containing
Crashes
Replay Script Tuples
<adb shell input tap 780 1126>
<adb shell input text ‘abc!@#’>
<Disable_Network>
<Disable_GPS>
App
Executions
Containing
Crashes
CRASHSCOPE: REPORTS
CRASHSCOPE: REPORTS
CRASHSCOPE: REPORTS
WEB-APP ARCHITECTURE
CrashScope
Database
Static Analysis
(Contextual
Feature
Extraction)
GUI-Ripping
Engine
Pool of Physical Devices or Virtual Android Devices
.apk
app
srcor
Upload
Android App
& Specify Strategies
Report
Generation
Crash Execution
Script Generator
Crash-Execution
Script Replayer
1
Web Application Back-End (Execution Engine)
Detailed Crash
Report
2
4
5
3
6
7
Java Web App Java Web App
CouchDB
(Message Bus)
PollingforTasks
Json
ExecutionResults
Json
Json
Json
adb
script
WEB-APP ARCHITECTURE
CrashScope
Database
Static Analysis
(Contextual
Feature
Extraction)
GUI-Ripping
Engine
Pool of Physical Devices or Virtual Android Devices
.apk
app
srcor
Upload
Android App
& Specify Strategies
Report
Generation
Crash Execution
Script Generator
Crash-Execution
Script Replayer
1
Web Application Back-End (Execution Engine)
Detailed Crash
Report
2
4
5
3
6
7
Java Web App Java Web App
CouchDB
(Message Bus)
PollingforTasks
Json
ExecutionResults
Json
Json
Json
adb
script
Java
Web App
WEB-APP ARCHITECTURE
CrashScope
Database
Static Analysis
(Contextual
Feature
Extraction)
GUI-Ripping
Engine
Pool of Physical Devices or Virtual Android Devices
.apk
app
srcor
Upload
Android App
& Specify Strategies
Report
Generation
Crash Execution
Script Generator
Crash-Execution
Script Replayer
1
Web Application Back-End (Execution Engine)
Detailed Crash
Report
2
4
5
3
6
7
Java Web App Java Web App
CouchDB
(Message Bus)
PollingforTasks
Json
ExecutionResults
Json
Json
Json
adb
script
Java
Web App
CrashScope
Back-end
CRASHSCOPE:A PRACTICALTOOL
CRASHSCOPE:A PRACTICALTOOL
EVALUATION
• Two Empirical Studies
• Study1: Crash Detection Capabilities
• Study 2: Crash Report Reproducibility and
Readability
STUDY 1: CRASH DETECTION & COVERAGE
• RQ1: Crash Detection Effectiveness?

• RQ2: Orthogonality of Crashes?

• RQ3: Effectiveness of Individual Strategies?

• RQ4: Does Crash Detection Correlate with
Code Coverage?
STUDY 1: EXPERIMENTAL SETUP
• 61 subject applications from the Androtest1
toolset
• Each testing tool was run 5 separate times for 1
hour, whereas CrashScope ran through all strategies
• Monkey was limited by the number of events
Tool Name Android Version Tool Type
Monkey Any Random
A3E Depth-First Any Systematic
GUI-Ripper Any Model-Based
Dynodroid v2.3 Random-Based
PUMA v4.1+ Random-Based
TOOLS USED IN
THE
COMPARATIVE
FAULT FINDING
STUDY
1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there
yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
STUDY 1: SUMMARY OF FINDINGS
• RQ1: CrashScope is nearly as effective at discovering
crashes as the other tools, without reporting crashes
caused by instrumentation
• RQ2&3: CrashScope’s differing strategies led to the
discovery of unique crashes
• RQ4: Higher statement coverage does not necessarily
correspond with crash detection capabilities
STUDY 2: REPRODUCIBILITY & READABILITY
• RQ5: Reproducibility of CrashScope Reports?



• RQ6:Readability of CrashScope Reports?

STUDY 2: SUMMARY OF FINDINGS
• RQ5: Reports generated by CrashScope are
about as reproducible as human written reports
extracted from open-source issue trackers



• RQ6:Reports generated by CrashScope are more
readable and useful from a developers’
perspective compared to human-written reports.

DETAILED FINDINGS
ICST’16
Technical Paper
CONCLUSION
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
Physical Device or Emulator
.apk
app
src
or
Android
Application
Report Generation
Crash-Execution
Script Generator
Crash-Execution
Script Replayer
1
2
3
4 5
Physical Device or Emulator
CONCLUSION
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
Physical Device or Emulator
.apk
app
src
or
Android
Application
Report Generation
Crash-Execution
Script Generator
Crash-Execution
Script Replayer
1
2
3
4 5
Physical Device or Emulator
CONCLUSION
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
Physical Device or Emulator
.apk
app
src
or
Android
Application
Report Generation
Crash-Execution
Script Generator
Crash-Execution
Script Replayer
1
2
3
4 5
Physical Device or Emulator
CONCLUSION
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
Physical Device or Emulator
.apk
app
src
or
Android
Application
Report Generation
Crash-Execution
Script Generator
Crash-Execution
Script Replayer
1
2
3
4 5
Physical Device or Emulator
CONCLUSION
CrashScope
Database
Static Analysis
(Contextual Feature
Extraction)
GUI-Ripping Engine
Physical Device or Emulator
.apk
app
src
or
Android
Application
Report Generation
Crash-Execution
Script Generator
Crash-Execution
Script Replayer
1
2
3
4 5
Physical Device or Emulator
Any Questions?
Thank you!
We are working to Open Source CrashScope! please visit:
Kevin Moran
Ph.D. candidate
kpmoran@cs.wm.edu
http://www.cs.wm.edu/~kpmoran
https://www.android-dev-tools.com/crashscope-home/

Contenu connexe

Tendances

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
 
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
 

Tendances (20)

Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
 
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
 
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
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing Automation
 
Top Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test AutomationTop Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test Automation
 
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
 
Best Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App TestingBest Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App Testing
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
 
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
 
Continuous code quality_in_java
Continuous code quality_in_javaContinuous code quality_in_java
Continuous code quality_in_java
 
expBSIT (1) (1)
expBSIT (1) (1)expBSIT (1) (1)
expBSIT (1) (1)
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game Testing
 
Test and docs: Hand in hand
Test and docs: Hand in handTest and docs: Hand in hand
Test and docs: Hand in hand
 
Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020
 
Choosing the Best Open Source Test Automation Tool for You
Choosing the Best Open Source Test Automation Tool for YouChoosing the Best Open Source Test Automation Tool for You
Choosing the Best Open Source Test Automation Tool for You
 
Using Robots for App Testing
Using Robots for App Testing Using Robots for App Testing
Using Robots for App Testing
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 

Similaire à ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated Testing of Android Applications

Espresso vs. EyeAutomate: comparing two generations of Android GUI testing tools
Espresso vs. EyeAutomate: comparing two generations of Android GUI testing toolsEspresso vs. EyeAutomate: comparing two generations of Android GUI testing tools
Espresso vs. EyeAutomate: comparing two generations of Android GUI testing tools
Marco Torchiano
 

Similaire à ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated Testing of Android Applications (20)

Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scale
 
Automated Exploratory Testing
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory Testing
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
 
Software Quality
Software QualitySoftware Quality
Software Quality
 
Test Automation for Mobile Applications
Test Automation for Mobile ApplicationsTest Automation for Mobile Applications
Test Automation for Mobile Applications
 
Real Testing Scenario Strategy Practical TestOps Presentation
Real Testing Scenario Strategy Practical TestOps PresentationReal Testing Scenario Strategy Practical TestOps Presentation
Real Testing Scenario Strategy Practical TestOps Presentation
 
App Days 2016 Munich - Mobile Applications testing by Leaware
App Days 2016 Munich - Mobile Applications testing by LeawareApp Days 2016 Munich - Mobile Applications testing by Leaware
App Days 2016 Munich - Mobile Applications testing by Leaware
 
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
 
Overview and Analysis of Automated Testing Tools: Ranorex, Test Complete, Se...
Overview and Analysis of Automated Testing Tools:  Ranorex, Test Complete, Se...Overview and Analysis of Automated Testing Tools:  Ranorex, Test Complete, Se...
Overview and Analysis of Automated Testing Tools: Ranorex, Test Complete, Se...
 
A Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the FutureA Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the Future
 
Real Testing Scenario Strategy - Bringing It All Together For Success
Real Testing Scenario Strategy - Bringing It All Together For SuccessReal Testing Scenario Strategy - Bringing It All Together For Success
Real Testing Scenario Strategy - Bringing It All Together For Success
 
Advanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsAdvanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web Apps
 
Testing Android Application, Droidcon Torino
Testing Android Application, Droidcon TorinoTesting Android Application, Droidcon Torino
Testing Android Application, Droidcon Torino
 
Espresso vs. EyeAutomate: comparing two generations of Android GUI testing tools
Espresso vs. EyeAutomate: comparing two generations of Android GUI testing toolsEspresso vs. EyeAutomate: comparing two generations of Android GUI testing tools
Espresso vs. EyeAutomate: comparing two generations of Android GUI testing tools
 
Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...
 
How to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOpsHow to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOps
 
TMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael PalotasTMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael Palotas
 
DEPLOYMENT OF CALABASH AUTOMATION FRAMEWORK TO ANALYZE THE PERFORMANCE OF AN ...
DEPLOYMENT OF CALABASH AUTOMATION FRAMEWORK TO ANALYZE THE PERFORMANCE OF AN ...DEPLOYMENT OF CALABASH AUTOMATION FRAMEWORK TO ANALYZE THE PERFORMANCE OF AN ...
DEPLOYMENT OF CALABASH AUTOMATION FRAMEWORK TO ANALYZE THE PERFORMANCE OF AN ...
 
20160913 cookpad ios_en
20160913 cookpad ios_en20160913 cookpad ios_en
20160913 cookpad ios_en
 
AGRippin: A Novel Search Based Testing Technique for Android Applications
AGRippin: A Novel Search Based Testing Technique for Android ApplicationsAGRippin: A Novel Search Based Testing Technique for Android Applications
AGRippin: A Novel Search Based Testing Technique for Android Applications
 

Dernier

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
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
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated Testing of Android Applications

  • 1. ICSE’17 Buenos Aires,Argentina Wednesday, May 24th, 2017 Kevin Moran, Mario Linares-Vásquez, Carlos Bernal-Cárdenas, ChristopherVendome, & Denys Poshyvanyk CrashScope:A PracticalTool for AutomatedTesting of Android Applications
  • 2.
  • 3. 3
  • 4. 3
  • 5.
  • 11. CATEGORIES OF AUTOMATEDTESTING APPROACHES FOR MOBILE APPS • Random-based • Systematic-based • Model-based • Record and replay • Others (ManualTesting Frameworks)
  • 12. THE CURRENT STATE OF AUTOMATED MOBILE APPLICATIONTESTING Tool Name Instr. GUI Exploration Types of Events Crash Resilient Replayable Test Cases NL Crash Reports Emulators, Devices Dynodroid Yes Guided/Random System, GUI, Text Yes No No No EvoDroid No System/Evo GUI No No No N/A AndroidRipper Yes Systematic GUI, Text No No No N/A MobiGUItar Yes Model-Based GUI, Text No Yes No N/A A3E DFS Yes Systematic GUI No No No Yes A3E Targeted [20] Yes Model-Based GUI No No No Yes Swifthand Yes Model-Based GUI, Text N/A No No Yes PUMA Yes Programmable System, GUI, Text N/A No No Yes ACTEve Yes Systematic GUI N/A No No Yes VANARSena Yes Random System, GUI, Text Yes Yes No N/A Thor Yes Test Cases Test Case Events N/A N/A No No QUANTUM Yes Model-Based System, GUI N/A Yes No N/A AppDoctor Yes Multiple System, GUI, Text Yes Yes No N/A ORBIT No Model-Based GUI N/A No No N/A SPAG-C No Record/Replay GUI N/A N/A No No JPF-Android No Scripting GUI N/A Yes No N/A MonkeyLab No Model-based GUI, Text No Yes No Yes CrashDroid No Manual Rec/Replay GUI, Text Manual Yes Yes Yes SIG-Droid No Symbolic GUI, Text N/A Yes No N/A Sapienz No Search-Based GUI, Text N/A Yes No Yes CrashScope No Systematic GUI, Text, System Yes Yes Yes Yes
  • 13. THE CURRENT STATE OF AUTOMATED MOBILE APPLICATIONTESTING Tool Name Instr. GUI Exploration Types of Events Crash Resilient Replayable Test Cases NL Crash Reports Emulators, Devices Dynodroid Yes Guided/Random System, GUI, Text Yes No No No EvoDroid No System/Evo GUI No No No N/A AndroidRipper Yes Systematic GUI, Text No No No N/A MobiGUItar Yes Model-Based GUI, Text No Yes No N/A A3E DFS Yes Systematic GUI No No No Yes A3E Targeted [20] Yes Model-Based GUI No No No Yes Swifthand Yes Model-Based GUI, Text N/A No No Yes PUMA Yes Programmable System, GUI, Text N/A No No Yes ACTEve Yes Systematic GUI N/A No No Yes VANARSena Yes Random System, GUI, Text Yes Yes No N/A Thor Yes Test Cases Test Case Events N/A N/A No No QUANTUM Yes Model-Based System, GUI N/A Yes No N/A AppDoctor Yes Multiple System, GUI, Text Yes Yes No N/A ORBIT No Model-Based GUI N/A No No N/A SPAG-C No Record/Replay GUI N/A N/A No No JPF-Android No Scripting GUI N/A Yes No N/A MonkeyLab No Model-based GUI, Text No Yes No Yes CrashDroid No Manual Rec/Replay GUI, Text Manual Yes Yes Yes SIG-Droid No Symbolic GUI, Text N/A Yes No N/A Sapienz No Search-Based GUI, Text N/A Yes No Yes CrashScope No Systematic GUI, Text, System Yes Yes Yes Yes What are the limitations of current automated approaches?
  • 14. LIMITATIONS OF AUTOMATED MOBILE TESTING AND DEBUGGING 1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
  • 15. LIMITATIONS OF AUTOMATED MOBILE TESTING AND DEBUGGING • Lack of detailed, easy to understand testing results for faults/ crashes1 1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
  • 16. LIMITATIONS OF AUTOMATED MOBILE TESTING AND DEBUGGING • Lack of detailed, easy to understand testing results for faults/ crashes1 • No easy way to reproduce test scenarios1 1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
  • 17. LIMITATIONS OF AUTOMATED MOBILE TESTING AND DEBUGGING • Lack of detailed, easy to understand testing results for faults/ crashes1 • No easy way to reproduce test scenarios1 • Not practical from a developers viewpoint 1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
  • 18. LIMITATIONS OF AUTOMATED MOBILE TESTING AND DEBUGGING • Lack of detailed, easy to understand testing results for faults/ crashes1 • No easy way to reproduce test scenarios1 • Not practical from a developers viewpoint • Few approaches enable different strategies capable of generating text and testing contextual features 1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
  • 19. PAST STUDIES OF MOBILE CRASHES AND BUGS • Many crashes can be mapped to well-defined, externally inducible faults1 • Contextual features, such as network connectivity and screen rotation, account for many of these externally inducible faults12 • These dominant root causes can affect many different user execution paths1 1L. Ravindranath, S. Nath, J. Padhye, and H. Balakrishnan.Automatic and scalable fault detection for mobile applications. MobiSys ’14 2R. N. Zaeem, M. R. Prasad, and S. Khurshid.Automated generation of oracles for testing user-interaction features of mobile apps, ICST ’14
  • 21. OUR SOLUTION: CRASHSCOPE • Completely automated approach
  • 22. OUR SOLUTION: CRASHSCOPE • Completely automated approach • Generates detailed, expressive bug reports and repayable scripts
  • 23. OUR SOLUTION: CRASHSCOPE • Completely automated approach • Generates detailed, expressive bug reports and repayable scripts • A practical tool, requiring no instrumentation framework, or modification to the OS or applications
  • 24. OUR SOLUTION: CRASHSCOPE • Completely automated approach • Generates detailed, expressive bug reports and repayable scripts • A practical tool, requiring no instrumentation framework, or modification to the OS or applications • Capable of running on both physical devices and emulators
  • 25. OUR SOLUTION: CRASHSCOPE • Completely automated approach • Generates detailed, expressive bug reports and repayable scripts • A practical tool, requiring no instrumentation framework, or modification to the OS or applications • Capable of running on both physical devices and emulators • Differing execution strategies able to test contextual features
  • 26. CRASHSCOPE DESIGN CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Physical Device or Emulator .apk app src or Android Application Report Generation Crash-Execution Script Generator Crash-Execution Script Replayer 1 2 3 4 5
  • 27. CRASHSCOPE DESIGN CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Physical Device or Emulator .apk app src or Android Application Report Generation Crash-Execution Script Generator Crash-Execution Script Replayer 1 2 3 4 5 1
  • 28. CRASHSCOPE DESIGN CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Physical Device or Emulator .apk app src or Android Application Report Generation Crash-Execution Script Generator Crash-Execution Script Replayer 1 2 3 4 5 1 II
  • 29. CRASHSCOPE:ANALYSIS GUI Ripping Engine .apk or app src Physical Device or Emulator Android UIAutomator Event Execution Engine (adb input & telnet) —Touch Event —GUI Component Information —Screenshots Crash after last step? YesNo Execution Finished? No Yes Decision Engine Determine next <Action, GUI> Event to Execute Enable/Disable Activity/App Features Save Execution Information 2 Continue Execution CrashScope Database 3 D Contextual Feature Extractor1 .apk decompiler (if necessary) Android Application Manifest File Parser API Extractor Rotatable Activities App and Activity Level Contextual Features App and Activity Level Contextual Features
  • 37. • Activity • Checkable, Checked, Clickable, Long Clickable? • Component Index • Current Window • Enabled? • XML_ID • ComponentType • Position (Absolute and Relative) • Text • Screenshot → CRASHSCOPE: EXPLORATION
  • 39. CRASHSCOPE: EXPLORATION CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine .apk app src or Android Application 1 2 3 4
  • 40. CRASHSCOPE STRATEGIES • GUI-Traversal:Top-Down & Bottom Up (DFS) • Text Entry: Expected, Unexpected, NoText • Contextual Features: Enabled or Disabled
  • 43. CRASHSCOPE: REPORT AND SCRIPT GENERATION Augmented Natural Language Report Generator Crash Execution Script Generator Web Based Application Bug Report (JSP, MySQL, and Bootstrap) Crash Execution Script Replayer Googlehttp://cs.wm.edu/semeru CrashScope Report Database Parser CrashScope Script Generator Replay Script Parser Contextual Event Interperter / adb Replayer Physical Device or Emulator Contextual Event Execution (telnet commands) Event Execution Engine (adb sendevent & adb input) 4 5 6 7 CrashScope Database 3 Step Processor Database Parser App Executions Containing Crashes Replay Script Tuples <adb shell input tap 780 1126> <adb shell input text ‘abc!@#’> <Disable_Network> <Disable_GPS> App Executions Containing Crashes
  • 47. WEB-APP ARCHITECTURE CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Pool of Physical Devices or Virtual Android Devices .apk app srcor Upload Android App & Specify Strategies Report Generation Crash Execution Script Generator Crash-Execution Script Replayer 1 Web Application Back-End (Execution Engine) Detailed Crash Report 2 4 5 3 6 7 Java Web App Java Web App CouchDB (Message Bus) PollingforTasks Json ExecutionResults Json Json Json adb script
  • 48. WEB-APP ARCHITECTURE CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Pool of Physical Devices or Virtual Android Devices .apk app srcor Upload Android App & Specify Strategies Report Generation Crash Execution Script Generator Crash-Execution Script Replayer 1 Web Application Back-End (Execution Engine) Detailed Crash Report 2 4 5 3 6 7 Java Web App Java Web App CouchDB (Message Bus) PollingforTasks Json ExecutionResults Json Json Json adb script Java Web App
  • 49. WEB-APP ARCHITECTURE CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Pool of Physical Devices or Virtual Android Devices .apk app srcor Upload Android App & Specify Strategies Report Generation Crash Execution Script Generator Crash-Execution Script Replayer 1 Web Application Back-End (Execution Engine) Detailed Crash Report 2 4 5 3 6 7 Java Web App Java Web App CouchDB (Message Bus) PollingforTasks Json ExecutionResults Json Json Json adb script Java Web App CrashScope Back-end
  • 52. EVALUATION • Two Empirical Studies • Study1: Crash Detection Capabilities • Study 2: Crash Report Reproducibility and Readability
  • 53. STUDY 1: CRASH DETECTION & COVERAGE • RQ1: Crash Detection Effectiveness?
 • RQ2: Orthogonality of Crashes?
 • RQ3: Effectiveness of Individual Strategies?
 • RQ4: Does Crash Detection Correlate with Code Coverage?
  • 54. STUDY 1: EXPERIMENTAL SETUP • 61 subject applications from the Androtest1 toolset • Each testing tool was run 5 separate times for 1 hour, whereas CrashScope ran through all strategies • Monkey was limited by the number of events Tool Name Android Version Tool Type Monkey Any Random A3E Depth-First Any Systematic GUI-Ripper Any Model-Based Dynodroid v2.3 Random-Based PUMA v4.1+ Random-Based TOOLS USED IN THE COMPARATIVE FAULT FINDING STUDY 1S. R. Choudhary,A. Gorla, and A. Orso.AutomatedTest Input Generation for Android:Are we there yet? In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), 2015
  • 55. STUDY 1: SUMMARY OF FINDINGS • RQ1: CrashScope is nearly as effective at discovering crashes as the other tools, without reporting crashes caused by instrumentation • RQ2&3: CrashScope’s differing strategies led to the discovery of unique crashes • RQ4: Higher statement coverage does not necessarily correspond with crash detection capabilities
  • 56. STUDY 2: REPRODUCIBILITY & READABILITY • RQ5: Reproducibility of CrashScope Reports?
 
 • RQ6:Readability of CrashScope Reports?

  • 57. STUDY 2: SUMMARY OF FINDINGS • RQ5: Reports generated by CrashScope are about as reproducible as human written reports extracted from open-source issue trackers
 
 • RQ6:Reports generated by CrashScope are more readable and useful from a developers’ perspective compared to human-written reports.

  • 59. CONCLUSION CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Physical Device or Emulator .apk app src or Android Application Report Generation Crash-Execution Script Generator Crash-Execution Script Replayer 1 2 3 4 5 Physical Device or Emulator
  • 60. CONCLUSION CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Physical Device or Emulator .apk app src or Android Application Report Generation Crash-Execution Script Generator Crash-Execution Script Replayer 1 2 3 4 5 Physical Device or Emulator
  • 61. CONCLUSION CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Physical Device or Emulator .apk app src or Android Application Report Generation Crash-Execution Script Generator Crash-Execution Script Replayer 1 2 3 4 5 Physical Device or Emulator
  • 62. CONCLUSION CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Physical Device or Emulator .apk app src or Android Application Report Generation Crash-Execution Script Generator Crash-Execution Script Replayer 1 2 3 4 5 Physical Device or Emulator
  • 63. CONCLUSION CrashScope Database Static Analysis (Contextual Feature Extraction) GUI-Ripping Engine Physical Device or Emulator .apk app src or Android Application Report Generation Crash-Execution Script Generator Crash-Execution Script Replayer 1 2 3 4 5 Physical Device or Emulator
  • 64. Any Questions? Thank you! We are working to Open Source CrashScope! please visit: Kevin Moran Ph.D. candidate kpmoran@cs.wm.edu http://www.cs.wm.edu/~kpmoran https://www.android-dev-tools.com/crashscope-home/