BUGSJS: a benchmark and taxonomy of JavaScript bugs. (8th October 2020)
- Record Type:
- Journal Article
- Title:
- BUGSJS: a benchmark and taxonomy of JavaScript bugs. (8th October 2020)
- Main Title:
- BUGSJS: a benchmark and taxonomy of JavaScript bugs
- Authors:
- Gyimesi, Péter
Vancsics, Béla
Stocco, Andrea
Mazinanian, Davood
Beszédes, Árpád
Ferenc, Rudolf
Mesbah, Ali - Other Names:
- Memon Atif M. guestEditor.
Cohen Myra B. guestEditor. - Abstract:
- Summary: JavaScript is a popular programming language that is also error‐prone due to its asynchronous, dynamic, and loosely typed nature. In recent years, numerous techniques have been proposed for analyzing and testing JavaScript applications. However, our survey of the literature in this area revealed that the proposed techniques are often evaluated on different datasets of programs and bugs. The lack of a commonly used benchmark limits the ability to perform fair and unbiased comparisons for assessing the efficacy of new techniques. To fill this gap, we propose BugsJS, a benchmark of 453 real, manually validated JavaScript bugs from 10 popular JavaScript server‐side programs, comprising 444k lines of code (LOC) in total. Each bug is accompanied by its bug report, the test cases that expose it, as well as the patch that fixes it. We extended BugsJS with a rich web interface for visualizing and dissecting the bugs' information, as well as a programmable API to access the faulty and fixed versions of the programs and to execute the corresponding test cases, which facilitates conducting highly reproducible empirical studies and comparisons of JavaScript analysis and testing tools. Moreover, following a rigorous procedure, we performed a classification of the bugs according to their nature. Our internal validation shows that our taxonomy is adequate for characterizing the bugs in BugsJS . We discuss several ways in which the resulting taxonomy and the benchmark can helpSummary: JavaScript is a popular programming language that is also error‐prone due to its asynchronous, dynamic, and loosely typed nature. In recent years, numerous techniques have been proposed for analyzing and testing JavaScript applications. However, our survey of the literature in this area revealed that the proposed techniques are often evaluated on different datasets of programs and bugs. The lack of a commonly used benchmark limits the ability to perform fair and unbiased comparisons for assessing the efficacy of new techniques. To fill this gap, we propose BugsJS, a benchmark of 453 real, manually validated JavaScript bugs from 10 popular JavaScript server‐side programs, comprising 444k lines of code (LOC) in total. Each bug is accompanied by its bug report, the test cases that expose it, as well as the patch that fixes it. We extended BugsJS with a rich web interface for visualizing and dissecting the bugs' information, as well as a programmable API to access the faulty and fixed versions of the programs and to execute the corresponding test cases, which facilitates conducting highly reproducible empirical studies and comparisons of JavaScript analysis and testing tools. Moreover, following a rigorous procedure, we performed a classification of the bugs according to their nature. Our internal validation shows that our taxonomy is adequate for characterizing the bugs in BugsJS . We discuss several ways in which the resulting taxonomy and the benchmark can help direct researchers interested in automated testing of JavaScript applications. © 2021 The Authors. Software Testing, Verification & Reliability published by John Wiley & Sons, Ltd. Abstract : In this study, we propose BugsJS, a benchmark of 453 real JavaScript bugs from 10 server‐side programs. We extended BugsJS with a rich web interface for visualizing and dissecting the bugs' information, as well as a programmable API to access the faulty source code and to execute the corresponding test cases, which facilitates conducting highly reproducible empirical studies and comparisons of JavaScript analysis and testing tools. Moreover, we performed a classification of the bugs according to their nature. … (more)
- Is Part Of:
- Software testing, verification & reliability. Volume 31:Number 4(2021)
- Journal:
- Software testing, verification & reliability
- Issue:
- Volume 31:Number 4(2021)
- Issue Display:
- Volume 31, Issue 4 (2021)
- Year:
- 2021
- Volume:
- 31
- Issue:
- 4
- Issue Sort Value:
- 2021-0031-0004-0000
- Page Start:
- n/a
- Page End:
- n/a
- Publication Date:
- 2020-10-08
- Subjects:
- JavaScript -- bug database -- benchmark -- reproducibility -- bug taxonomy -- BugsJS
Computer software -- Testing -- Periodicals
Computer software -- Verification -- Periodicals
Computer software -- Reliability -- Periodicals
005.14 - Journal URLs:
- http://onlinelibrary.wiley.com/ ↗
- DOI:
- 10.1002/stvr.1751 ↗
- Languages:
- English
- ISSNs:
- 0960-0833
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 8321.457500
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 16768.xml