JaVerT: JavaScript Verification and Testing Framework: Invited Talk

We present a novel, unified approach to the development of compositional symbolic execution tools, which bridges the gap between traditional symbolic execution and compositional program reasoning based on separation logic. We apply our approach to JavaScript, providing support for full verification, whole-program symbolic testing, and automatic compositional testing based on bi-abduction.

[1]  Emina Torlak,et al.  A lightweight symbolic virtual machine for solver-aided host languages , 2014, PLDI.

[2]  Steve Hanna,et al.  A Symbolic Execution Framework for JavaScript , 2010, 2010 IEEE Symposium on Security and Privacy.

[3]  Philippa Gardner,et al.  JaVerT: JavaScript verification toolchain , 2017, Proc. ACM Program. Lang..

[4]  Julian Dolby,et al.  Symbolic Execution for JavaScript , 2018, PPDP.

[5]  Peter W. O'Hearn,et al.  Compositional Shape Analysis by Means of Bi-Abduction , 2011, JACM.

[6]  Peter W. O'Hearn,et al.  Moving Fast with Software Verification , 2015, NFM.

[7]  Philippa Gardner,et al.  Local Hoare reasoning about DOM , 2008, PODS.

[8]  Guodong Li,et al.  SymJS: automatic symbolic testing of JavaScript web applications , 2014, SIGSOFT FSE.

[9]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[10]  Julian Dolby,et al.  Statically Checking Web API Requests in JavaScript , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[11]  Philippa Gardner,et al.  Towards a program logic for JavaScript , 2012, POPL '12.

[12]  Emina Torlak,et al.  Growing solver-aided languages with rosette , 2013, Onward!.