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.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:miun-32800 |
Date | January 2017 |
Creators | Nordström, Mikael |
Publisher | Mittuniversitetet, Avdelningen för informationssystem och -teknologi |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0021 seconds