Software bugs cost millions of dollars to US economy. Improving software reliability has been one of the primary concerns of Programming Language (PL) and Software Engineering (SE) research over decades. Researchers developed different techniques, e.g., new languages, automatic bug finding tools, and code review processes to reduce software defects. However, the adoption of these methods in the real-world is still limited, partly because most of them require a significant amount of manual work from developers and have a steep learning curve.
To automate the bug-finding process, in this talk, I will discuss how we can leverage a large number of open source projects collected in software forges like GitHub. Thanks to such rich source of Software Engineering data that has become available to the researchers, we can now learn from common coding mistakes and automate them. I will further show how such data-driven knowledge can be leveraged to build new bug-finding and fixing tools to improve software reliability. Finally, I will discuss how such techniques can be adopted for emerging machine-learning-based software.
Baishakhi Ray is an assistant professor at the University of Virginia. Her research focuses on Software Engineering with emphasis on improving software reliability and security. She analyzes large-scale software repositories to learn on-going software engineering practices. Then, leveraging this data-driven knowledge, she builds novel program analysis techniques and development tools to improve software reliability and programmer productivity. Baishakhi has received Best Paper awards at FSE 2017, MSR 2017, IEEE Symposium on Security and Privacy (Oakland), 2014. Her research has also been published in CACM Research Highlights and has been widely covered in trade media.