|James R. Larus||"The Real Value of Testing"|
|Ben Liblit||"Cooperative Debugging With Five Hundred Million Test Cases"|
The Real Value of Testing
A decade ago, Tony Hoare noted that "The real value of tests is not that they detect bugs in the code but that they detect inadequacies in the methods, concentration, and skills of those who design and produce the code." As usual, Tony saw far ahead of the current reality. At that time, Microsoft Research was very focused on a specific aspect of software development (finding code defects). Over the intervening years, Microsoft Research's efforts in this area grew greatly and our research agenda broadened considerably. This talk will trace the evolution of Microsoft Research's efforts to improve software development and explore how testing fits into the more people-centric approach that we have reached.
James Larus is a Research Area Manager for programming languages and tools in Microsoft Research, where he manages the Human Interaction in Programming, Runtime Analysis and Design, Software Reliability Research, and Concurrency Research groups and co-leads the Singularity research project.
Larus joined Microsoft Research as a Senior Researcher in 1998 to start and, for five years, lead the Software Productivity Tools (SPT) group, which developed and applied a variety of innovative techniques in static program analysis and constructed tools that found defects (bugs) in software. This group's research has both had considerable impact on the research community, as well as being shipped in Microsoft products such as the Static Driver Verifier and FX/Cop and other, widely-used internal software development tools.
Before joining Microsoft, Larus was an Assistant and Associate Professor of Computer Science at the University of Wisconsin-Madison, where he published approximately 60 research papers and co-led the Wisconsin Wind Tunnel (WWT) research project with Professors Mark Hill and David Wood. WWT was a DARPA and NSF-funded project investigated new approaches to simulating, building, and programming parallel shared-memory computers. Larus's research spanned a number of areas: including new and efficient techniques for measuring and recording executing programs' behavior, tools for analyzing and manipulating compiled and linked programs, programming languages for parallel computing, tools for verifying program correctness, and techniques for compiler analysis and optimization.
Larus received his MS and PhD in Computer Science from the University of California, Berkeley in 1989, and an AB in Applied Mathematics from Harvard in 1980. At Berkeley, Larus developed one of the first systems to analyze Lisp programs and determine how to best execute them on a parallel computer.
Larus has been an active contributor to the programming languages, compiler, and computer architecture communities. He has published many papers and served on numerous program committees and NSF and NRC panels. Larus became an ACM Fellow in 2006.
Cooperative Debugging With Five Hundred Million Test Cases
The resources available for testing and verifying software are always limited, and through sheer numbers an application's user community will uncover many flaws not caught during development. The Cooperative Bug Isolation Project (CBI) marshals large user communities into a massive distributed debugging army to help programmers find and fix problems that appear after deployment. Dynamic instrumentation based on sparse random sampling provides our raw data; statistical machine learning techniques mine this data for critical bug predictors; static program analysis places bug predictors back in context of the program under study. We discuss CBI's dynamic, statistical, and static views of post-deployment debugging and show how these three different approaches join together to help improve software quality in an imperfect world.
Ben Liblit is an Assistant Professor in the Computer Sciences Department of the University of Wisconsin-Madison. Prof. Liblit's research interests include programming languages and software engineering generally, with particular emphasis on the use of machine learning and dynamic analysis for program understanding and debugging.
Prof. Liblit worked as a professional software engineer for four years before beginning graduate study, inspiring a research style that emphasizes practical, best-effort techniques that cope with the ugly complexities of real-world software development. Prof. Liblit completed his Ph.D. in 2004 at UC Berkeley with advisor Alex Aiken, and received the 2005 ACM Doctoral Dissertation Award for his work on post-deployment statistical debugging.