About The Talk Software engineering corpora, collected from large software systems (i.e., MacOS, Ubuntu, Firefox, etc.), differs from natural language corpora. Specifically, software engineering corpora does not only include natural language, used by humans, but also includes a programming language, used by machines. Software engineering corpora has been heavily studied in the last decade and used to solve many software engineering problems, e.g., tag recommendation, detecting duplicated bug reports, profiling android application, etc. In this dissertation, I focus on analyzing software engineering corpora to detect bugs in software systems to save developers’ time and effort in improving software quality. Specifically, I aim to propose solutions that address three software engineering tasks: bug localization, just-in-time defect prediction, and bug fixing patch identification. Moreover, I introduce a neural network model learning a vector representation of code changes based on their commit messages. The vector representation can be used in addressing various software engineering problems related to code changes, such as just-in-time defect prediction, bug fixing patch identification, and more (e.g., tangled change prediction, the recommendation of a code reviewer for a patch, etc.)."
|