Seminar - Ask not what you can do for tests; ask what tests can do for you
School of Engineering and Computer Science Seminar
Speaker: Associate Professor Patrick Lam (University of Waterloo, Canada)
Time: Thursday 24th June 2021 at 03:00 PM - 04:00 PM
Location: Cotton 431
Tests are a ubiquitous feature of modern software. We are under-using this promising source of developer-provided information about our software. In this talk, I will sketch a research programme that leverages the full potential of tests in the context of program analysis.
Tests provide valuable information about actual concrete program executions. This information has been used by dynamic analysis tools, e.g. Daikon for inferring program invariants, and Tamiflex for summarizing uses of Java reflection. Furthermore, at the limit, exhaustive test generation can even show the absence of some kinds of bugs.
I believe that we can do much more than test generation: good tools can help developers write well-targeted test cases and explore key parts of a program's behaviour. To that end, I'll talk about some of my ongoing work on automatically adding sibling tests, as well as test refactoring.
Getting back to what tests can do for you: tests can enable dynamic analyses to delimit API surfaces of libraries as they are used by their clients. But I'm even more excited about combining the strengths of static analysis and the information provided by tests, and I'll conclude by speculating about novel static analyses with drastically fewer false alarms than at present.
- Patrick Lam is an Associate Professor of Electrical and Computer Engineering at the University of Waterloo and a Visiting Scholar at VUW, having just completed his term a Director of Waterloo's Software Engineering Program. His research interests focus on static analysis, particularly of developer-supplied information like annotations and test cases. Patrick has been making a concerted effort to enjoying New Zealand's outdoors.
This talk is part of the New Zealand Software Innovation Seminar (SI^NZ) Series: https://softwareinnovation.nz/seminars/