The Taub Faculty of Computer Science Events and Talks
Thursday, 18.04.2013, 12:30
Studying the evolution of software is an emerging topic, receiving much attention and focus. Every line of code written these days is more likely to belong to an existing piece of software: fixing, adding or removing functionality. Ensuring the correctness of code patches was long ago identified as crucial for efficiently producing quality software and the most prominent method for checking version correctness is regression testing - a cumbersome and time consuming process which requires tremendous effort from the developers and does not ensure full coverage. A conceptually superior method to testing, is software analysis - a formal method for automatically proving program correctness. As software analysis has already achieved much success in finding bugs and generating quality code in the general case, the subject of analyzing versions of software is just now gaining momentum.
Our work is an effort at generating sound, precise and scalable analysis methods for modeling the difference between programs. We present a new analysis approach, which is carefully tailored at observing differences between programs, and show that this method is far superior both to regression testing and to many existing methods and tools for static analysis.