Treffer: A runtime verification tool for JavaScript programs

Title:
A runtime verification tool for JavaScript programs
Authors:
Publisher Information:
University of Malta
Faculty of Information and Communication Technology. Department of Computer Science
Publication Year:
2018
Collection:
University of Malta: OAR@UM / L-Università ta' Malta
Document Type:
Dissertation bachelor thesis
Language:
English
Relation:
Mizzi, B. (2018). A runtime verification tool for JavaScript programs (Bachelor's dissertation).; https://www.um.edu.mt/library/oar//handle/123456789/35411
Rights:
info:eu-repo/semantics/restrictedAccess ; The copyright of this work belongs to the author(s)/publisher. The rights of this work are as defined by the appropriate Copyright Legislation or as modified by any successive legislation. Users may access this work and can make use of the information contained in accordance with the Copyright Legislation provided that the author must be properly acknowledged. Further distribution or reproduction in any format is prohibited without the prior permission of the copyright holder.
Accession Number:
edsbas.8B98E8AC
Database:
BASE

Weitere Informationen

B.SC.(HONS)COMP.SCI. ; JavaScript’s popularity among developers is growing, and JavaScript web applications are also becoming more prominent; hence the need to apply verification techniques to verify their correctness is becoming more pressing because people tend to use the most effective of these techniques. Verification can be done through the use of runtime verification where they must first establish the wanted behaviour, instrument the application and then run the application with runtime verification in the background. For this reason, in this study, we implement the previously mentioned approach as a tool named JavaScript Runtime Verifier (JsRV), as its name implies JsRV performs runtime verification on JavaScript web applications. JsRV verifies the behaviour of a system by comparing the trace of events that occur during execution to the pre-defined correctness properties, and if any misbehaviour is detected JsRV reports the error to the user. However, although runtime verification may offer extra correctness due to it being performed at runtime, the induced performance overheads cannot be overlooked, and the same applies for JsRV. Therefore we establish a case-study and identify correctness properties that are used to verify the application’s behaviour at runtime. We then use JsRV to runtime verify the application, collect results which represent JsRV’s performance and provide any insights that concern the induced time and memory. Despite the fact that JsRV succeeded in performing runtime verification on the case-study, the additional time and memory overheads were not negligible. We also used three other aspect-oriented programming (AOP) libraries, which were similarly used for runtime verification and their respective results were likewise collected and compared to those of JsRV. Furthermore, the results were utilised in discovering any improvements that could be made to enhance the AOP element in our tool so that we could improve the performance of runtime verification. ; N/A