SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
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/

Weitere ähnliche Inhalte

Was ist angesagt?

Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...SQALab
 
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...Riccardo Coppola
 
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 AppsKevin Moran
 
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 TestingPerfecto by Perforce
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation toolsSSGMCE SHEGAON
 
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 AutomationPorfirio Tramontana
 
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 AutomationFred Beringer
 
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
 
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 TestingBitbar
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile TestingApple Chow
 
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...Edureka!
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & ReleaseDhaval Patel
 
Continuous code quality_in_java
Continuous code quality_in_javaContinuous code quality_in_java
Continuous code quality_in_javaManimekalai48
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBitbar
 
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 2020Alaina Carter
 
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 YouPerfecto by Perforce
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsDominik Dary
 

Was ist angesagt? (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
 

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

Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scaleGergely Orosz
 
Automated Exploratory Testing
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory TestingJustin Ison
 
Justin Ison
Justin IsonJustin Ison
Justin IsonCodeFest
 
Software Quality
Software QualitySoftware Quality
Software QualityJoe Walling
 
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 PresentationAdam Sandman
 
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 LeawareLeaware.com
 
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...RIF-Technology
 
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...IRJET Journal
 
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 FutureApplitools
 
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 SuccessAdam Sandman
 
Advanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsAdvanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsPerfecto by Perforce
 
Testing Android Application, Droidcon Torino
Testing Android Application, Droidcon TorinoTesting Android Application, Droidcon Torino
Testing Android Application, Droidcon TorinoPietro Alberto Rossi
 
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 toolsMarco Torchiano
 
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...Tao Xie
 
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 DevOpsPerfecto by Perforce
 
TMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael PalotasTMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael PalotasKJR
 
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 ...Journal For Research
 
20160913 cookpad ios_en
20160913 cookpad ios_en20160913 cookpad ios_en
20160913 cookpad ios_enKazuaki Matsuo
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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 ...OnePlan Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
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 ...harshavardhanraghave
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
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.pdfkalichargn70th171
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
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.comFatema Valibhai
 
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.jsAndolasoft Inc
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

Kürzlich hochgeladen (20)

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
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 ...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
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 ...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive 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
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
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
 
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
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 

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/