Content area

Abstract

JavaScript is a highly dynamic language that imposes few constraints on types. For example, the shape of any object can be changed during program execution, and functions can be called with any number of arguments, regardless how many are declared. Similarly, event-driven programming in JavaScript is intrinsically dynamic and untyped: events are identified by free-form strings, and listener functions for these events can be added or removed dynamically. JavaScript applications also rarely crash: for example, accessing a non-existent property evaluates to undefined rather than causing a runtime error. All of these features limit the facts that can be learned by applying a traditional program analysis to a single application.

In this thesis, we explore the question: it is possible to leverage the size of the JavaScript open source ecosystem to data mine and then statistically analyze program patterns, to compensate for the limitations of a traditional analysis over a single codebase and more effectively determine API usages? Through the various works presented here, we develop lightweight static analyses, run them over over a large amount of code to mine application-independent code patterns and then amalgamate the results. In particular, we show that we can mine API usages and use this data to both identify bug patterns and model intended API usage, in the context of event-based programming and the more general problem of object-property accesses. We also use API usage patterns as seed input to a feedback-directed test generator and explore how this set of real-world argument values improves the effectiveness of the generated tests.

Details

1010268
Title
Leveraging Large Code Bases for Bug Detection and Test Generation
Number of pages
214
Publication year
2023
Degree date
2023
School code
0160
Source
DAI-B 85/2(E), Dissertation Abstracts International
ISBN
9798380108485
Advisor
Committee member
Bell, Jonathan; Holtzen, Steven; Schäfer, Max; Pradel, Michael
University/institution
Northeastern University
Department
Computer Science
University location
United States -- Massachusetts
Degree
Ph.D.
Source type
Dissertation or Thesis
Language
English
Document type
Dissertation/Thesis
Dissertation/thesis number
30633826
ProQuest document ID
2851106784
Document URL
https://www.proquest.com/dissertations-theses/leveraging-large-code-bases-bug-detection-test/docview/2851106784/se-2?accountid=208611
Copyright
Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.
Database
2 databases
  • ProQuest One Academic
  • ProQuest One Academic