Automated Support for Improving Software Quality Before and After Release

Mattia Fazzini

Event Details
Thursday, March 14, 2019
Talk:
4 p.m., Avery 115

Reception:
3:30 p.m., Avery 348

Mattia Fazzini

Ph.D. Candidate , School of Computer Science at the Georgia Institute of Technology

Abstract

Due to the importance of software quality, companies invest a great number of resources in software verification, and in particular in testing. It is therefore crucial to develop and use testing approaches that are both effective and efficient. At the same time, because exhaustive testing is not generally possible, software is released with bugs and these bugs will translate into field failures. The ability to react effectively to field failures is therefore also essential to resolve bugs, but the support for this task is still limited and based on mostly manual, human-intensive approaches. The overarching goal of my research is to improve software quality by devising novel techniques that account for software bugs before and after release.
In particular, this talk will present the work I did towards my goal in the context of mobile applications (or simply apps). I will first provide an overview of my research in this domain and then discuss in detail two of the techniques I developed: Yakusu and AppEvolve. Yakusu automatically translates natural-language bug reports into test cases, so that developers can use the generated tests to focus their attention on debugging failures and quickly fix their apps. AppEvolve prevents failures by accounting for changes to the environment in which apps operate; it automatically updates API usages (i.e., interactions with the underlying environment) in an app by analyzing how developers of other apps performed corresponding changes. I will conclude my talk with a discussion of open challenges and future research directions.

Speaker Bio

Mattia Fazzini is a Ph.D. candidate in the School of Computer Science at the Georgia Institute of Technology. His research interests lie primarily in the area of software engineering, with emphasis on techniques for improving software quality. The central theme of his research is the development of techniques for testing and maintenance of mobile applications. He is also interested in defining techniques for improving the security of software.