Fri 9 Nov 2018 11:37 - 12:00 at Studio 1 - Testing Chair(s): Kim Bruce

Recently, promises were added to ECMAScript 6, the JavaScript standard, in order to provide better support for the asynchrony that arises in user interfaces, network communication, and non blocking I/O. Using promises, programmers can avoid common pitfalls of event-driven programming such as event races and the deeply nested counterintuitive control flow referred to as “callback hell”. Unfortunately, promises have complex semantics and the intricate control– and data-flow present in promise based code hinders program comprehension and can easily lead to bugs. Prior work by Madsen et. al. has proposed the promise graph as a graphical aid for understanding and debugging promise-based code, but did not cover all promise-related features in ECMAScript 6, and did not present or evaluate any technique for constructing promise graphs. In this paper,we extend the notion of promise graphs to include all promise-related features in ECMAScript 6, including default reactions, exceptions, and the synchronization operations race and all. Furthermore, we report on the construction and evaluation of PromiseKeeper, which performs a dynamic analysis to create promise graphs and infer common promise anti-patterns. We evaluate PromiseKeeper by applying it to 12 open source promise-based Node.js applications. Our results suggest that the promise graphs constructed by PromiseKeeper can provide developers with valuable information about occurrences of common anti-patterns in their promise-based code, and that promise graphs can be constructed with acceptable run-time overhead.

Fri 9 Nov

Displayed time zone: Guadalajara, Mexico City, Monterrey change

10:30 - 12:00
TestingOOPSLA at Studio 1
Chair(s): Kim Bruce Pomona College
10:30
22m
Talk
Compositional Programming and Testing of Dynamic Distributed Systems
OOPSLA
Ankush Desai University of California, Berkeley, Amar Phanishayee Microsoft Research, Shaz Qadeer Microsoft Research, Sanjit Seshia UC Berkeley
10:52
22m
Talk
Randomized Testing of Distributed Systems with Probabilistic GuaranteesDistinguished Paper Award
OOPSLA
Burcu Kulahcioglu Ozkan MPI-SWS, Germany, Rupak Majumdar MPI-SWS, Germany, Filip Niksic MPI-SWS, Mitra Tabaei Befrouei Vienna University of Technology, Georg Weissenbacher Technische Universität Wien
11:15
22m
Talk
Test Generation for Higher-Order Functions in Dynamic Languages
OOPSLA
Marija Selakovic TU Darmstadt, Germany, Michael Pradel TU Darmstadt, Rezwana Karim Nawrin Samsung Research America, Frank Tip Northeastern University
11:37
22m
Talk
Finding Broken Promises in Asynchronous JavaScript Programs
OOPSLA
Saba Alimadadi Northeastern University, Di Zhong Northeastern University, USA, Magnus Madsen Aarhus University, Frank Tip Northeastern University