Primary supervisor
Chakkrit TantithamthavornWith the rise of software systems ranging from personal assistance to the nation's facilities, software defects become more critical concerns as they can cost millions of dollars as well as impact human lives. Yet, at the breakneck pace of rapid software development settings (like CI/CD, Agile, Rapid Releases), Software Quality Assurance (QA) practices (e.g., code review and software testing) nowadays are still time-consuming.
Aim/outline
Funded by Australian Research Council's DECRA 2020, this project aims to develop an end-to-end AI platform that leverages advanced machine intelligence techniques (e.g., Deep Learning, Statistics, ML, Optimization) in order to (1) understand the nature of software changes; (2) predict the riskiest changes in the future; (3) highlight hotspot areas; (4) explain and visualize the characteristics of risky changes; (5) suggest potential patches for defect fixing; and (6) integrate such platform into a real-world practice of rapid development cycles like GitHub ecosystem. Finally, this project will be deployed and evaluated in ultra-large-scale software systems like Google, OpenStack, Eclipse, Mozilla, Linux software systems. The outcome of this project is expected to help developers predict/locate/explain/repair/prevent future critical software bugs, and help project managers establish the most effective quality improvement policy.
The students will work on a small project to achieve this ultimate goal of this project. For example,
(1) Developing a Python library: to collect GitHub data, build a machine learning model to predict bugs, explain the predictions, and generate actionable risk mitigation plans. The tools will be publicly-available, expecting to be used worldwide to support SQA activities.
Knowledge about both Python and React is required. Students will learn the latest advances in Explainable AI with opportunities to publish a paper in a top-tier software engineering conference. Possible Ph.D. scholarship is also available to continue the work.
(2) Developing a visualization tool as a plugin to an existing popularly-used bug detection tool called SonarQube (https://www.sonarqube.org/). This plugin will integrate machine learning models with novel visualization, expecting to be used worldwide to support SQA activities.
Knowledge about both Python and React is required. Students will learn the latest advances in Explainable AI with opportunities to publish a paper in a top-tier software engineering conference. Possible Ph.D. scholarship is also available to continue the work.
URLs/references
[1] Explainable AI for Software Engineering http://chakkrit.com/assets/papers/jiarpakdee2020xai4se.pdf
[2] Finding and fixing software bugs automatically with SapFix and Sapienz, https://code.fb.com/developer-tools/finding-and-fixing-software-bugs-automatically-with-sapfix-and-sapienz/
[3] Tantithamthavorn et al., Automated parameter optimization of classification techniques for defect prediction models, https://dl.acm.org/citation.cfm?id=2884857