Diagnostic tool for React Native : Reporting application state

The first step of debugging a deployed application is to reproduce the reported bug. But bugs that cause unpredictable behaviors without crashing the applica- tion can be difficult to reproduce, because the developer has to rely on bug-re- ports issued by users. The goal of this thesis has been to d...

Full description

Bibliographic Details
Main Author: Nordström, Mikael
Format: Others
Language:English
Published: Mittuniversitetet, Avdelningen för informationssystem och -teknologi 2017
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-32800
id ndltd-UPSALLA1-oai-DiVA.org-miun-32800
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-miun-328002018-02-06T02:35:31ZDiagnostic tool for React Native : Reporting application stateengNordström, MikaelMittuniversitetet, Avdelningen för informationssystem och -teknologi2017MittmediaReact NativeReduxDiagnosticapplicationdevelopmentDebug.Software EngineeringProgramvaruteknikThe first step of debugging a deployed application is to reproduce the reported bug. But bugs that cause unpredictable behaviors without crashing the applica- tion can be difficult to reproduce, because the developer has to rely on bug-re- ports issued by users. The goal of this thesis has been to develop a diagnostic tool which makes user-reported bugs easier to reproduce. More specifically, the goal has been to develop such a tool for React Native applications implement- ing Redux, taking into consideration both state-data stored in Redux stores and React Native components. Requirements for the diagnostic tool were laid out and partitioned into proto- types that were implemented separately in iterations and then merged into the resulting tool. Requirements were also drawn for three sample applications to test and evaluate the tool, as well as a back-end to prove the tool's capability in uploading and downloading state-data from a server. The thesis resulted in a diagnostic tool that's imported into an already existing code-base as a third-party library, and which collects the complete state of the reported application instance and delivers it to the developer as a single JSON document. The tool can then inject the state-data into a fresh instance of the ap- plication to make it identical to the malfunctioning instance reported by the user; a process referred to as "reviving". Redux stores demonstrated state-over- write protection which complicates state-injection. A study was performed to compare the impact this difference has on performance. As expected, the study revealed that the diagnostic tool takes marginally longer to revive state-data in Redux stores for this reason. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-32800Local DT-H17-G3-001application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Others
sources NDLTD
topic Mittmedia
React Native
Redux
Diagnostic
application
development
Debug.
Software Engineering
Programvaruteknik
spellingShingle Mittmedia
React Native
Redux
Diagnostic
application
development
Debug.
Software Engineering
Programvaruteknik
Nordström, Mikael
Diagnostic tool for React Native : Reporting application state
description The first step of debugging a deployed application is to reproduce the reported bug. But bugs that cause unpredictable behaviors without crashing the applica- tion can be difficult to reproduce, because the developer has to rely on bug-re- ports issued by users. The goal of this thesis has been to develop a diagnostic tool which makes user-reported bugs easier to reproduce. More specifically, the goal has been to develop such a tool for React Native applications implement- ing Redux, taking into consideration both state-data stored in Redux stores and React Native components. Requirements for the diagnostic tool were laid out and partitioned into proto- types that were implemented separately in iterations and then merged into the resulting tool. Requirements were also drawn for three sample applications to test and evaluate the tool, as well as a back-end to prove the tool's capability in uploading and downloading state-data from a server. The thesis resulted in a diagnostic tool that's imported into an already existing code-base as a third-party library, and which collects the complete state of the reported application instance and delivers it to the developer as a single JSON document. The tool can then inject the state-data into a fresh instance of the ap- plication to make it identical to the malfunctioning instance reported by the user; a process referred to as "reviving". Redux stores demonstrated state-over- write protection which complicates state-injection. A study was performed to compare the impact this difference has on performance. As expected, the study revealed that the diagnostic tool takes marginally longer to revive state-data in Redux stores for this reason.
author Nordström, Mikael
author_facet Nordström, Mikael
author_sort Nordström, Mikael
title Diagnostic tool for React Native : Reporting application state
title_short Diagnostic tool for React Native : Reporting application state
title_full Diagnostic tool for React Native : Reporting application state
title_fullStr Diagnostic tool for React Native : Reporting application state
title_full_unstemmed Diagnostic tool for React Native : Reporting application state
title_sort diagnostic tool for react native : reporting application state
publisher Mittuniversitetet, Avdelningen för informationssystem och -teknologi
publishDate 2017
url http://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-32800
work_keys_str_mv AT nordstrommikael diagnostictoolforreactnativereportingapplicationstate
_version_ 1718613403730182144