Active Projects »

Record/Replay Bug Reproduction for Java

There will inevitably continue to be bugs that are not detected by any testing approach, but eventually impact users who then file bug reports. Reproducing field failures in the development environment can be difficult, however, especially in the case of software that behaves non-deterministically, relies on remote resources, or has complex reproduction steps (the users […]


Toward Trustworthy Mutable Replay for Security Patches

Society is increasingly reliant on software, but deployed software contains security vulnerabilities and other bugs that can threaten privacy, property and even human lives. When a security vulnerability or critical error is discovered, a software patch is issued to attempt to fix the problem, but patches themselves can be incorrect, inadequate, and break necessary functionality. […]


Dynamic Information Flow Analysis

We are investigating an approach to runtime information flow analysis for managed languages that tracks metadata about data values through the execution of a program. We first considered metadata that propagates labels representing the originating source of each data value, e.g., sensitive data from the address book or GPS of a mobile device that should […]


Sound Build Acceleration

Sound Build Acceleration: Our empirical studies found that the bulk of the clock time during the builds of the ~2000 largest and most popular Java open source software applications is spent running test cases, so we seek to speed up large builds by reducing testing time. This is an important problem because real-world industry builds […]


Dynamic Code Similarity

“Code clones” are statically similar code fragments dispersed via copy/paste or independently writing lookalike code; best practice removes clones (refactoring) or tracks them (e.g., to ensure bugs fixed in one clone are also fixed in others). We instead study dynamically similar code, for two different similarity models. One model is functional similarity, finding code fragments […]


About CloudView

CloudView is a project that enables detection and diagnosis of network faults using a peer to peer architecture. Consider the following scenario. A user is trying to log into an IM server, but she is not able to. There could be a variety of reasons for the failure. Some plausible causes for this failure are the IM server is temporarily unavailable, the ISP is down, or the user’s password is not correct.

CloudView can be used to diagnose this problem, proceeding as follows: CloudView tries to contact other peers who are part of its network, which will then run probes to try to isolate the problem. Examples of probes could be trying to log in from another node, using a different username and password, and trying to ping the server. The results of these probes will be returned to the original node, and using the rule book it would try to find the cause of the problem. This entire process is automated and the group of peers runs a set of analysis tests and depending on the results on these tests, we can diagnose the problem.

Our system is based on the DYSWIS system. While DYSWIS is focused on the detection and diagnosis of network and transport level faults, CloudView is aimed towards the detection and diagnosis of faults at the application level.

In previous semesters, we have focused on the XMPP/Jabber Chat Protocol and developed a proof-of-concept implementation. We have also extended our system to the Samba (SMB) protocol.

We are looking to add more functionality to the current implementation and also extend this into other domains, which include BitTorrent, Cloud Computing, Email, Web Browsing, and Games.

Team Members

Prof. Gail Kaiser, kaiser [at]

Graduate Students
Swapneel Sheth, swapneel [at]

Former members
Rajat Dixit
Palak Baid
Somenath Das
Siming Sun
Jau-Yuan Chen