SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
V.Lenarduzzi1, A.C. Stan1, D.Taibi1,2, G.Venters1 and M.Windegger3
1 Free University of Bolzano-Bozen, Italy
2 Tampere University of Technology, Finland
3 SASAbus, Bolzano-Bozen, Italy
Software Quality Days 2018
January 16 - 19, 2018 in Vienna
Prioritizing Corrective Maintenance
Activities for Android Applications:
An Industrial Case Study on Android Crash Reports
The Problem
Unhandled exceptions in Android apps
• Often not considered
• Possible faults
• Hard to reproduce
• Reflected in negative comments in the Play Store
• Drop of users
Classify Uncaught Exceptions
- Exception that caused crashes…
Prioritize issues removal activities
- Based on uncaught exceptions
- based on the impact on end users
The Idea
Exception Monitoring Tools
Tool Programming Language
OverOps Java, Scala, Closure, .NET
Airbrake All major ones
Sentry All major ones
Rollbar All major ones
Raygun All major ones
Honeybadger All major ones
Stackhunter Java
Bugsnag All major ones
Exceptionless All major ones
Firebase Android, iOS
Firebase
- Provided to all Google Play Store Apps
- Lists fatal crashes
- Provide (high level) information on uncaught
exceptions
- Do not provide
- summary of exceptions
- Statistics on exceptions
The Android Crash Report
Firebase – Crash ReportPackageName
DateAndTime
Device
AndroidOSVersion
AppVersionName
AppVersionCode
Exception Class Name Exception Message
it.sasabz.and
roid.sasabus
2013-09-
04T07:33:37Z
m0 16 0.2.12 23 java.lang.RuntimeException Only one Looper may be created per thread
it.sasabz.and
roid.sasabus
2013-09-
02T18:25:34Z
GT-I9100 16 0.3.01 24
android.view.WindowManager$Bad
TokenException
Unable to add window -- token
android.os.BinderProxy@41b6d448 is not valid; is your activity
running?
it.sasabz.and
roid.sasabus
2013-09-
03T14:09:20Z
cx2 10 0.3.01 24
android.database.sqlite.SQLiteExcep
tion
no such column: partenza: , while compiling: Select * from
favoriten where partenza="(Bolzano) via Maso della Pieve 2 -
(Bozen) Pfarrho" and destinazione="(Bolzano) Ospedale 1 -
(Bozen) Krankenhaus 1";
The Case Study
Goal:
Analyze unhandled exceptions
For the purpose of prioritizing them
With respect to their frequency
RQ1: Which are the most frequently recurring exceptions?
RQ1: Which and Many exceptions-related issues should be fixed in
order to reduce the number of exceptions by 70%
RQ3: Which classes generate more exceptions?
The Case Study
The Case Study
SASABus App (Google Play Store)
• 50K Users
• 1208 exceptions (4 years)
• 453 comments
• >20% complaining about crashes
RQ1: frequently recurring exceptions
• 1208 total exceptions
• 0.83/day
• 19 different types of exceptions
• 2 exceptions caused occurred in more
than 50% of cases
RQ1: frequently recurring exceptions
Java Exception #Hits %
java.lang.RuntimeException 433 35.8
java.lang.NullPointerException 212 17.5
java.lang.ClassCastException 124 10.3
java.lang.UnsupportedOperationException 106 8.8
java.lang.IllegalStateException 94 7.8
RQ2: Frequency of exception per class
Java Class Frequency %
android.graphics.Bitmap 223 18.5
android.os.Looper 211 17.5
java.util.Collections$UnmodifiableCollection 106 8.8
it.sasabz.sasabus.ui.busstop.NextBusFragment$2 81 6.7
dalvik.system.BaseDexClassLoader 57 4.7
RQ3: Exception Type per Class
Java Classes Exception Freq. Rel
Freq.
Abs.
Freq.
Bitmap RuntimeException 222 51% 18%
Looper RuntimeException 211 49% 17%
NextBusFragment ClassCastException 124 100% 10%
Collections$Unmodifiable… UnsupportedOperationExc. 106 100% 9%
Results
Six classes generated 70% of exceptions
Class affected by the same exception
- frequently affected by the same code smell
- Spaghetti code -> runtime exception
- Other 3 exc -> swiss army knife
Results are not statistically significant
- only a limited number of classes analysed
Follow-up
We set a continuous exception monitoring (Sentry)
- Automatically create statistics on exceptions
- Automatically create Jira issues for exceptions
We trained the developers on design patterns and code smells
All classes have been refactored removing code smells
From May 2017 to Dec 2017
- only 87 exceptions occurred (out of 200 expected).
- the four exceptions considered occurred only 5 times
Conclusions & Future Work
• Continuous Exception Monitoring tools can help to improve
software quality
• More advanced Exception Monitoring tools could improve the
issue tracking process
• Industrial case studies are needed to proof if exceptions are
correlated with Code Smells or other SW metrics
Thank you for your attention!
davide@taibi.it

Weitere ähnliche Inhalte

Ähnlich wie Prioritizing Corrective Maintenance Activities for Android Applications: An Industrial Case Study on Android Crash Reports

FaultHunter workshop (SourceMeter for SonarQube plugin module)
FaultHunter workshop (SourceMeter for SonarQube plugin module)FaultHunter workshop (SourceMeter for SonarQube plugin module)
FaultHunter workshop (SourceMeter for SonarQube plugin module)FrontEndART
 
Auto-completing Bug Reports for Android Applications
Auto-completing Bug Reports for Android ApplicationsAuto-completing Bug Reports for Android Applications
Auto-completing Bug Reports for Android ApplicationsKevin Moran
 
Enhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsEnhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsTechWell
 
Delivering high-quality apps 6 times, every week
Delivering high-quality apps 6 times, every weekDelivering high-quality apps 6 times, every week
Delivering high-quality apps 6 times, every weekTariq Patel
 
Preparing your QA team for mobile testing
Preparing your QA team for mobile testingPreparing your QA team for mobile testing
Preparing your QA team for mobile testingGeoffrey Goetz
 
Urqa - Android Crash Report
Urqa - Android Crash ReportUrqa - Android Crash Report
Urqa - Android Crash ReportHakbeom Hwang
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
 
Automatically Discovering, Reporting and Reproducing Android Application Crashes
Automatically Discovering, Reporting and Reproducing Android Application CrashesAutomatically Discovering, Reporting and Reproducing Android Application Crashes
Automatically Discovering, Reporting and Reproducing Android Application CrashesKevin Moran
 
Attacking Proprietary Android Vendor Customizations
Attacking Proprietary Android Vendor CustomizationsAttacking Proprietary Android Vendor Customizations
Attacking Proprietary Android Vendor CustomizationsRoberto Natella
 
Characterizing and detecting performance bugs for smartphone applications
Characterizing and detecting performance bugs for smartphone applicationsCharacterizing and detecting performance bugs for smartphone applications
Characterizing and detecting performance bugs for smartphone applicationsSchool of Engineering, HKUST
 
How to improve code quality for iOS apps?
How to improve code quality for iOS apps?How to improve code quality for iOS apps?
How to improve code quality for iOS apps?Kate Semizhon
 
Finding sensor related energy black holes in smartphone applications
Finding sensor related energy black holes in smartphone applicationsFinding sensor related energy black holes in smartphone applications
Finding sensor related energy black holes in smartphone applicationsSchool of Engineering, HKUST
 
Works For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug ReportsWorks For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug ReportsSALT Lab @ UBC
 
Fighting Software Inefficiency Through Automated Bug Detection
 Fighting Software Inefficiency Through Automated Bug Detection Fighting Software Inefficiency Through Automated Bug Detection
Fighting Software Inefficiency Through Automated Bug DetectionMd E. Haque
 
How to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectHow to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectSimon Urli
 
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...Kevin Moran
 
Creating high rated and reliable Windows 8 application
Creating high rated and reliable Windows 8 applicationCreating high rated and reliable Windows 8 application
Creating high rated and reliable Windows 8 applicationMykhail Galushko
 
How do Developers Test Android Applications?
How do Developers Test Android Applications?How do Developers Test Android Applications?
How do Developers Test Android Applications?Kevin Moran
 
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
 
IRJET- Android Malware Detection System
IRJET-  	  Android Malware Detection SystemIRJET-  	  Android Malware Detection System
IRJET- Android Malware Detection SystemIRJET Journal
 

Ähnlich wie Prioritizing Corrective Maintenance Activities for Android Applications: An Industrial Case Study on Android Crash Reports (20)

FaultHunter workshop (SourceMeter for SonarQube plugin module)
FaultHunter workshop (SourceMeter for SonarQube plugin module)FaultHunter workshop (SourceMeter for SonarQube plugin module)
FaultHunter workshop (SourceMeter for SonarQube plugin module)
 
Auto-completing Bug Reports for Android Applications
Auto-completing Bug Reports for Android ApplicationsAuto-completing Bug Reports for Android Applications
Auto-completing Bug Reports for Android Applications
 
Enhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsEnhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code Forensics
 
Delivering high-quality apps 6 times, every week
Delivering high-quality apps 6 times, every weekDelivering high-quality apps 6 times, every week
Delivering high-quality apps 6 times, every week
 
Preparing your QA team for mobile testing
Preparing your QA team for mobile testingPreparing your QA team for mobile testing
Preparing your QA team for mobile testing
 
Urqa - Android Crash Report
Urqa - Android Crash ReportUrqa - Android Crash Report
Urqa - Android Crash Report
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Automatically Discovering, Reporting and Reproducing Android Application Crashes
Automatically Discovering, Reporting and Reproducing Android Application CrashesAutomatically Discovering, Reporting and Reproducing Android Application Crashes
Automatically Discovering, Reporting and Reproducing Android Application Crashes
 
Attacking Proprietary Android Vendor Customizations
Attacking Proprietary Android Vendor CustomizationsAttacking Proprietary Android Vendor Customizations
Attacking Proprietary Android Vendor Customizations
 
Characterizing and detecting performance bugs for smartphone applications
Characterizing and detecting performance bugs for smartphone applicationsCharacterizing and detecting performance bugs for smartphone applications
Characterizing and detecting performance bugs for smartphone applications
 
How to improve code quality for iOS apps?
How to improve code quality for iOS apps?How to improve code quality for iOS apps?
How to improve code quality for iOS apps?
 
Finding sensor related energy black holes in smartphone applications
Finding sensor related energy black holes in smartphone applicationsFinding sensor related energy black holes in smartphone applications
Finding sensor related energy black holes in smartphone applications
 
Works For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug ReportsWorks For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug Reports
 
Fighting Software Inefficiency Through Automated Bug Detection
 Fighting Software Inefficiency Through Automated Bug Detection Fighting Software Inefficiency Through Automated Bug Detection
Fighting Software Inefficiency Through Automated Bug Detection
 
How to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectHow to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator Project
 
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...
ICSE17Tech Briefing - Automated GUI Testing of Android Apps: From Research to...
 
Creating high rated and reliable Windows 8 application
Creating high rated and reliable Windows 8 applicationCreating high rated and reliable Windows 8 application
Creating high rated and reliable Windows 8 application
 
How do Developers Test Android Applications?
How do Developers Test Android Applications?How do Developers Test Android Applications?
How do Developers Test Android Applications?
 
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
 
IRJET- Android Malware Detection System
IRJET-  	  Android Malware Detection SystemIRJET-  	  Android Malware Detection System
IRJET- Android Malware Detection System
 

Mehr von Davide Taibi

From monolithic to microservices to serverless
From monolithic to microservices to serverlessFrom monolithic to microservices to serverless
From monolithic to microservices to serverlessDavide Taibi
 
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint Davide Taibi
 
From Microservices to Serverless. A new hype or a new hope?
From Microservices to Serverless. A new hype or a new hope?From Microservices to Serverless. A new hype or a new hope?
From Microservices to Serverless. A new hype or a new hope?Davide Taibi
 
From monolithic systems to microservices. a decomposition framework based on ...
From monolithic systems to microservices. a decomposition framework based on ...From monolithic systems to microservices. a decomposition framework based on ...
From monolithic systems to microservices. a decomposition framework based on ...Davide Taibi
 
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019 Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019 Davide Taibi
 
Asterism: A Decentralized File Sharing for Mobile Devices
Asterism: A Decentralized File Sharing for Mobile DevicesAsterism: A Decentralized File Sharing for Mobile Devices
Asterism: A Decentralized File Sharing for Mobile DevicesDavide Taibi
 
Microservices Patterns, Issues, Migration Processes
Microservices Patterns, Issues, Migration ProcessesMicroservices Patterns, Issues, Migration Processes
Microservices Patterns, Issues, Migration ProcessesDavide Taibi
 
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...Davide Taibi
 
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...Davide Taibi
 
Uno studio sulle strategie di marketing e comunicazione per il software libero
Uno studio sulle strategie di marketing e comunicazione per il software liberoUno studio sulle strategie di marketing e comunicazione per il software libero
Uno studio sulle strategie di marketing e comunicazione per il software liberoDavide Taibi
 
Un’esempio concreto di interazione tra pubblica amministrazione e pmi
Un’esempio concreto di interazione tra pubblica amministrazione e pmiUn’esempio concreto di interazione tra pubblica amministrazione e pmi
Un’esempio concreto di interazione tra pubblica amministrazione e pmiDavide Taibi
 
OSS Marketing: How to make your product attractive
OSS Marketing: How to make your product attractiveOSS Marketing: How to make your product attractive
OSS Marketing: How to make your product attractiveDavide Taibi
 
20070619 javaday quali_p_so
20070619 javaday  quali_p_so20070619 javaday  quali_p_so
20070619 javaday quali_p_soDavide Taibi
 
Defining an Open Source Software Trustworthiness Model
Defining an Open Source Software Trustworthiness Model Defining an Open Source Software Trustworthiness Model
Defining an Open Source Software Trustworthiness Model Davide Taibi
 
Open Bqr an Open Framework for the assessment of Open Source Software
Open Bqr an Open Framework for the assessment of Open Source SoftwareOpen Bqr an Open Framework for the assessment of Open Source Software
Open Bqr an Open Framework for the assessment of Open Source SoftwareDavide Taibi
 
A GQM plan for the evaluation of the trustworthiness of open-source software
A GQM plan for the evaluation of the trustworthiness of open-source softwareA GQM plan for the evaluation of the trustworthiness of open-source software
A GQM plan for the evaluation of the trustworthiness of open-source softwareDavide Taibi
 

Mehr von Davide Taibi (20)

From monolithic to microservices to serverless
From monolithic to microservices to serverlessFrom monolithic to microservices to serverless
From monolithic to microservices to serverless
 
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
 
From Microservices to Serverless. A new hype or a new hope?
From Microservices to Serverless. A new hype or a new hope?From Microservices to Serverless. A new hype or a new hope?
From Microservices to Serverless. A new hype or a new hope?
 
From monolithic systems to microservices. a decomposition framework based on ...
From monolithic systems to microservices. a decomposition framework based on ...From monolithic systems to microservices. a decomposition framework based on ...
From monolithic systems to microservices. a decomposition framework based on ...
 
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019 Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
 
Asterism: A Decentralized File Sharing for Mobile Devices
Asterism: A Decentralized File Sharing for Mobile DevicesAsterism: A Decentralized File Sharing for Mobile Devices
Asterism: A Decentralized File Sharing for Mobile Devices
 
Microservices Patterns, Issues, Migration Processes
Microservices Patterns, Issues, Migration ProcessesMicroservices Patterns, Issues, Migration Processes
Microservices Patterns, Issues, Migration Processes
 
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
 
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
 
Uno studio sulle strategie di marketing e comunicazione per il software libero
Uno studio sulle strategie di marketing e comunicazione per il software liberoUno studio sulle strategie di marketing e comunicazione per il software libero
Uno studio sulle strategie di marketing e comunicazione per il software libero
 
Un’esempio concreto di interazione tra pubblica amministrazione e pmi
Un’esempio concreto di interazione tra pubblica amministrazione e pmiUn’esempio concreto di interazione tra pubblica amministrazione e pmi
Un’esempio concreto di interazione tra pubblica amministrazione e pmi
 
OSS Marketing: How to make your product attractive
OSS Marketing: How to make your product attractiveOSS Marketing: How to make your product attractive
OSS Marketing: How to make your product attractive
 
20070619 javaday quali_p_so
20070619 javaday  quali_p_so20070619 javaday  quali_p_so
20070619 javaday quali_p_so
 
Defining an Open Source Software Trustworthiness Model
Defining an Open Source Software Trustworthiness Model Defining an Open Source Software Trustworthiness Model
Defining an Open Source Software Trustworthiness Model
 
Os Mi Devo Fidare
Os   Mi Devo FidareOs   Mi Devo Fidare
Os Mi Devo Fidare
 
Open Bqr an Open Framework for the assessment of Open Source Software
Open Bqr an Open Framework for the assessment of Open Source SoftwareOpen Bqr an Open Framework for the assessment of Open Source Software
Open Bqr an Open Framework for the assessment of Open Source Software
 
A GQM plan for the evaluation of the trustworthiness of open-source software
A GQM plan for the evaluation of the trustworthiness of open-source softwareA GQM plan for the evaluation of the trustworthiness of open-source software
A GQM plan for the evaluation of the trustworthiness of open-source software
 
Blogmeter
BlogmeterBlogmeter
Blogmeter
 
Open Bqr
Open BqrOpen Bqr
Open Bqr
 
Open Bqr
Open BqrOpen Bqr
Open Bqr
 

Kürzlich hochgeladen

Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCRCall Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCRlizamodels9
 
Microteaching on terms used in filtration .Pharmaceutical Engineering
Microteaching on terms used in filtration .Pharmaceutical EngineeringMicroteaching on terms used in filtration .Pharmaceutical Engineering
Microteaching on terms used in filtration .Pharmaceutical EngineeringPrajakta Shinde
 
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptxECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptxmaryFF1
 
Pests of soyabean_Binomics_IdentificationDr.UPR.pdf
Pests of soyabean_Binomics_IdentificationDr.UPR.pdfPests of soyabean_Binomics_IdentificationDr.UPR.pdf
Pests of soyabean_Binomics_IdentificationDr.UPR.pdfPirithiRaju
 
Four Spheres of the Earth Presentation.ppt
Four Spheres of the Earth Presentation.pptFour Spheres of the Earth Presentation.ppt
Four Spheres of the Earth Presentation.pptJoemSTuliba
 
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPirithiRaju
 
User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)Columbia Weather Systems
 
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 GenuineCall Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuinethapagita
 
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfBehavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfSELF-EXPLANATORY
 
preservation, maintanence and improvement of industrial organism.pptx
preservation, maintanence and improvement of industrial organism.pptxpreservation, maintanence and improvement of industrial organism.pptx
preservation, maintanence and improvement of industrial organism.pptxnoordubaliya2003
 
User Guide: Capricorn FLX™ Weather Station
User Guide: Capricorn FLX™ Weather StationUser Guide: Capricorn FLX™ Weather Station
User Guide: Capricorn FLX™ Weather StationColumbia Weather Systems
 
OECD bibliometric indicators: Selected highlights, April 2024
OECD bibliometric indicators: Selected highlights, April 2024OECD bibliometric indicators: Selected highlights, April 2024
OECD bibliometric indicators: Selected highlights, April 2024innovationoecd
 
Neurodevelopmental disorders according to the dsm 5 tr
Neurodevelopmental disorders according to the dsm 5 trNeurodevelopmental disorders according to the dsm 5 tr
Neurodevelopmental disorders according to the dsm 5 trssuser06f238
 
Davis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologyDavis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologycaarthichand2003
 
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...Universidade Federal de Sergipe - UFS
 
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...lizamodels9
 
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptxSTOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptxMurugaveni B
 
GenBio2 - Lesson 1 - Introduction to Genetics.pptx
GenBio2 - Lesson 1 - Introduction to Genetics.pptxGenBio2 - Lesson 1 - Introduction to Genetics.pptx
GenBio2 - Lesson 1 - Introduction to Genetics.pptxBerniceCayabyab1
 
Citronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayCitronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayupadhyaymani499
 

Kürzlich hochgeladen (20)

Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCRCall Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
 
Microteaching on terms used in filtration .Pharmaceutical Engineering
Microteaching on terms used in filtration .Pharmaceutical EngineeringMicroteaching on terms used in filtration .Pharmaceutical Engineering
Microteaching on terms used in filtration .Pharmaceutical Engineering
 
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptxECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
 
Pests of soyabean_Binomics_IdentificationDr.UPR.pdf
Pests of soyabean_Binomics_IdentificationDr.UPR.pdfPests of soyabean_Binomics_IdentificationDr.UPR.pdf
Pests of soyabean_Binomics_IdentificationDr.UPR.pdf
 
Four Spheres of the Earth Presentation.ppt
Four Spheres of the Earth Presentation.pptFour Spheres of the Earth Presentation.ppt
Four Spheres of the Earth Presentation.ppt
 
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
 
User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)
 
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 GenuineCall Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
 
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfBehavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
 
preservation, maintanence and improvement of industrial organism.pptx
preservation, maintanence and improvement of industrial organism.pptxpreservation, maintanence and improvement of industrial organism.pptx
preservation, maintanence and improvement of industrial organism.pptx
 
User Guide: Capricorn FLX™ Weather Station
User Guide: Capricorn FLX™ Weather StationUser Guide: Capricorn FLX™ Weather Station
User Guide: Capricorn FLX™ Weather Station
 
OECD bibliometric indicators: Selected highlights, April 2024
OECD bibliometric indicators: Selected highlights, April 2024OECD bibliometric indicators: Selected highlights, April 2024
OECD bibliometric indicators: Selected highlights, April 2024
 
Neurodevelopmental disorders according to the dsm 5 tr
Neurodevelopmental disorders according to the dsm 5 trNeurodevelopmental disorders according to the dsm 5 tr
Neurodevelopmental disorders according to the dsm 5 tr
 
Davis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologyDavis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technology
 
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
REVISTA DE BIOLOGIA E CIÊNCIAS DA TERRA ISSN 1519-5228 - Artigo_Bioterra_V24_...
 
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
 
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
 
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptxSTOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
 
GenBio2 - Lesson 1 - Introduction to Genetics.pptx
GenBio2 - Lesson 1 - Introduction to Genetics.pptxGenBio2 - Lesson 1 - Introduction to Genetics.pptx
GenBio2 - Lesson 1 - Introduction to Genetics.pptx
 
Citronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayCitronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyay
 

Prioritizing Corrective Maintenance Activities for Android Applications: An Industrial Case Study on Android Crash Reports

  • 1. V.Lenarduzzi1, A.C. Stan1, D.Taibi1,2, G.Venters1 and M.Windegger3 1 Free University of Bolzano-Bozen, Italy 2 Tampere University of Technology, Finland 3 SASAbus, Bolzano-Bozen, Italy Software Quality Days 2018 January 16 - 19, 2018 in Vienna Prioritizing Corrective Maintenance Activities for Android Applications: An Industrial Case Study on Android Crash Reports
  • 2. The Problem Unhandled exceptions in Android apps • Often not considered • Possible faults • Hard to reproduce • Reflected in negative comments in the Play Store • Drop of users
  • 3. Classify Uncaught Exceptions - Exception that caused crashes… Prioritize issues removal activities - Based on uncaught exceptions - based on the impact on end users The Idea
  • 4. Exception Monitoring Tools Tool Programming Language OverOps Java, Scala, Closure, .NET Airbrake All major ones Sentry All major ones Rollbar All major ones Raygun All major ones Honeybadger All major ones Stackhunter Java Bugsnag All major ones Exceptionless All major ones Firebase Android, iOS
  • 5. Firebase - Provided to all Google Play Store Apps - Lists fatal crashes - Provide (high level) information on uncaught exceptions - Do not provide - summary of exceptions - Statistics on exceptions The Android Crash Report
  • 6. Firebase – Crash ReportPackageName DateAndTime Device AndroidOSVersion AppVersionName AppVersionCode Exception Class Name Exception Message it.sasabz.and roid.sasabus 2013-09- 04T07:33:37Z m0 16 0.2.12 23 java.lang.RuntimeException Only one Looper may be created per thread it.sasabz.and roid.sasabus 2013-09- 02T18:25:34Z GT-I9100 16 0.3.01 24 android.view.WindowManager$Bad TokenException Unable to add window -- token android.os.BinderProxy@41b6d448 is not valid; is your activity running? it.sasabz.and roid.sasabus 2013-09- 03T14:09:20Z cx2 10 0.3.01 24 android.database.sqlite.SQLiteExcep tion no such column: partenza: , while compiling: Select * from favoriten where partenza="(Bolzano) via Maso della Pieve 2 - (Bozen) Pfarrho" and destinazione="(Bolzano) Ospedale 1 - (Bozen) Krankenhaus 1";
  • 7. The Case Study Goal: Analyze unhandled exceptions For the purpose of prioritizing them With respect to their frequency RQ1: Which are the most frequently recurring exceptions? RQ1: Which and Many exceptions-related issues should be fixed in order to reduce the number of exceptions by 70% RQ3: Which classes generate more exceptions?
  • 9. The Case Study SASABus App (Google Play Store) • 50K Users • 1208 exceptions (4 years) • 453 comments • >20% complaining about crashes
  • 10. RQ1: frequently recurring exceptions • 1208 total exceptions • 0.83/day • 19 different types of exceptions • 2 exceptions caused occurred in more than 50% of cases
  • 11. RQ1: frequently recurring exceptions Java Exception #Hits % java.lang.RuntimeException 433 35.8 java.lang.NullPointerException 212 17.5 java.lang.ClassCastException 124 10.3 java.lang.UnsupportedOperationException 106 8.8 java.lang.IllegalStateException 94 7.8
  • 12. RQ2: Frequency of exception per class Java Class Frequency % android.graphics.Bitmap 223 18.5 android.os.Looper 211 17.5 java.util.Collections$UnmodifiableCollection 106 8.8 it.sasabz.sasabus.ui.busstop.NextBusFragment$2 81 6.7 dalvik.system.BaseDexClassLoader 57 4.7
  • 13. RQ3: Exception Type per Class Java Classes Exception Freq. Rel Freq. Abs. Freq. Bitmap RuntimeException 222 51% 18% Looper RuntimeException 211 49% 17% NextBusFragment ClassCastException 124 100% 10% Collections$Unmodifiable… UnsupportedOperationExc. 106 100% 9%
  • 14. Results Six classes generated 70% of exceptions Class affected by the same exception - frequently affected by the same code smell - Spaghetti code -> runtime exception - Other 3 exc -> swiss army knife Results are not statistically significant - only a limited number of classes analysed
  • 15. Follow-up We set a continuous exception monitoring (Sentry) - Automatically create statistics on exceptions - Automatically create Jira issues for exceptions We trained the developers on design patterns and code smells All classes have been refactored removing code smells From May 2017 to Dec 2017 - only 87 exceptions occurred (out of 200 expected). - the four exceptions considered occurred only 5 times
  • 16. Conclusions & Future Work • Continuous Exception Monitoring tools can help to improve software quality • More advanced Exception Monitoring tools could improve the issue tracking process • Industrial case studies are needed to proof if exceptions are correlated with Code Smells or other SW metrics
  • 17. Thank you for your attention! davide@taibi.it