Please use this identifier to cite or link to this item: https://www.um.edu.mt/library/oar/handle/123456789/35411
Title: A runtime verification tool for JavaScript programs
Authors: Mizzi, Bernard
Keywords: JavaScript (Computer program language)
Software engineering
Computer software -- Verification
Issue Date: 2018
Citation: Mizzi, B. (2018). A runtime verification tool for JavaScript programs (Bachelor's dissertation).
Abstract: 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.
Description: B.SC.(HONS)COMP.SCI.
URI: https://www.um.edu.mt/library/oar//handle/123456789/35411
Appears in Collections:Dissertations - FacICT - 2018
Dissertations - FacICTCS - 2018

Files in This Item:
File Description SizeFormat 
18BCS011.pdf
  Restricted Access
788.44 kBAdobe PDFView/Open Request a copy


Items in OAR@UM are protected by copyright, with all rights reserved, unless otherwise indicated.