Cargando…

Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript

JavaScript Web applications are a common product in industry. As with most applications, Web applications can acquire software flaws (known as bugs), whose symptoms are seen during the development stage and, even worse, in production. The use of debuggers is beneficial for detecting bugs. Unfortunat...

Descripción completa

Detalles Bibliográficos
Autores principales: Leger, Paul, Ruiz, Felipe, Fukuda, Hiroaki, Cardozo, Nicolás
Formato: Online Artículo Texto
Lenguaje:English
Publicado: PeerJ Inc. 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10280413/
https://www.ncbi.nlm.nih.gov/pubmed/37346625
http://dx.doi.org/10.7717/peerj-cs.1238
_version_ 1785060788827848704
author Leger, Paul
Ruiz, Felipe
Fukuda, Hiroaki
Cardozo, Nicolás
author_facet Leger, Paul
Ruiz, Felipe
Fukuda, Hiroaki
Cardozo, Nicolás
author_sort Leger, Paul
collection PubMed
description JavaScript Web applications are a common product in industry. As with most applications, Web applications can acquire software flaws (known as bugs), whose symptoms are seen during the development stage and, even worse, in production. The use of debuggers is beneficial for detecting bugs. Unfortunately, most JavaScript debuggers (1) only support the “step into/through” feature in an execution program to detect a bug, and (2) do not allow developers to go back-in-time at the application execution to take actions to detect the bug accurately. For example, the second limitation does not allow developers to modify the value of a variable to fix a bug while the application is running or test if the same bug is triggered with other values of that variable. Using concepts such as continuations and static analysis, this article presents a usable debugger for JavaScript, named DeloreanJS, which enables developers to go back-in-time in different execution points and resume the execution of a Web application to improve the understanding of a bug, or even experiment with hypothetical scenarios around the bug. Using an online and available version, we illustrate the benefits of DeloreanJS through five examples of bugs in JavaScript. Although DeloreanJS is developed for JavaScript, a dynamic prototype-based object model with side effects (mutable variables), we discuss our proposal with the state-of-art/practice of debuggers in terms of features. For example, modern browsers like Mozilla Firefox include a debugger in their distribution that only support for the breakpoint feature. However DeloreanJS uses a graphical user interface that considers back-in-time features. The aim of this study is to evaluate and compare the usability of DeloreanJS and Mozilla Firefox’s debugger using the system usability scale approach. We requested 30 undergraduate students from two computer science programs to solve five tasks. Among the findings, we highlight two results. First, we found that 100% (15) of participants recommended DeloreanJS, and only 53% (eight) recommended Firefox’s debugger to complete the tasks. Second, whereas the average score for DeloreanJS is 71.6 (“Good”), the average score for Firefox’s debugger is 55.8 (“Acceptable”).
format Online
Article
Text
id pubmed-10280413
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher PeerJ Inc.
record_format MEDLINE/PubMed
spelling pubmed-102804132023-06-21 Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript Leger, Paul Ruiz, Felipe Fukuda, Hiroaki Cardozo, Nicolás PeerJ Comput Sci World Wide Web and Web Science JavaScript Web applications are a common product in industry. As with most applications, Web applications can acquire software flaws (known as bugs), whose symptoms are seen during the development stage and, even worse, in production. The use of debuggers is beneficial for detecting bugs. Unfortunately, most JavaScript debuggers (1) only support the “step into/through” feature in an execution program to detect a bug, and (2) do not allow developers to go back-in-time at the application execution to take actions to detect the bug accurately. For example, the second limitation does not allow developers to modify the value of a variable to fix a bug while the application is running or test if the same bug is triggered with other values of that variable. Using concepts such as continuations and static analysis, this article presents a usable debugger for JavaScript, named DeloreanJS, which enables developers to go back-in-time in different execution points and resume the execution of a Web application to improve the understanding of a bug, or even experiment with hypothetical scenarios around the bug. Using an online and available version, we illustrate the benefits of DeloreanJS through five examples of bugs in JavaScript. Although DeloreanJS is developed for JavaScript, a dynamic prototype-based object model with side effects (mutable variables), we discuss our proposal with the state-of-art/practice of debuggers in terms of features. For example, modern browsers like Mozilla Firefox include a debugger in their distribution that only support for the breakpoint feature. However DeloreanJS uses a graphical user interface that considers back-in-time features. The aim of this study is to evaluate and compare the usability of DeloreanJS and Mozilla Firefox’s debugger using the system usability scale approach. We requested 30 undergraduate students from two computer science programs to solve five tasks. Among the findings, we highlight two results. First, we found that 100% (15) of participants recommended DeloreanJS, and only 53% (eight) recommended Firefox’s debugger to complete the tasks. Second, whereas the average score for DeloreanJS is 71.6 (“Good”), the average score for Firefox’s debugger is 55.8 (“Acceptable”). PeerJ Inc. 2023-02-24 /pmc/articles/PMC10280413/ /pubmed/37346625 http://dx.doi.org/10.7717/peerj-cs.1238 Text en ©2023 Leger et al. https://creativecommons.org/licenses/by/4.0/This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Computer Science) and either DOI or URL of the article must be cited.
spellingShingle World Wide Web and Web Science
Leger, Paul
Ruiz, Felipe
Fukuda, Hiroaki
Cardozo, Nicolás
Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript
title Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript
title_full Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript
title_fullStr Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript
title_full_unstemmed Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript
title_short Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript
title_sort benefits, challenges, and usability evaluation of deloreanjs: a back-in-time debugger for javascript
topic World Wide Web and Web Science
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10280413/
https://www.ncbi.nlm.nih.gov/pubmed/37346625
http://dx.doi.org/10.7717/peerj-cs.1238
work_keys_str_mv AT legerpaul benefitschallengesandusabilityevaluationofdeloreanjsabackintimedebuggerforjavascript
AT ruizfelipe benefitschallengesandusabilityevaluationofdeloreanjsabackintimedebuggerforjavascript
AT fukudahiroaki benefitschallengesandusabilityevaluationofdeloreanjsabackintimedebuggerforjavascript
AT cardozonicolas benefitschallengesandusabilityevaluationofdeloreanjsabackintimedebuggerforjavascript