Improving the prediction of files changed by programming tasks

  • João Pedro Santos UFPE
  • Thaís Rocha UFPE
  • Paulo Borba UFPE

Resumo


Integration conflicts often damage software quality and developers' productivity in a collaborative development environment. For reducing merge conflicts, we could avoid asking developers to execute potentially conflicting tasks in parallel, as long as we can predict the files to be changed by each task. As manually predicting that is hard, the TAITI tool tries to do that in the context of BDD (Behaviour-Driven Development) projects, by statically analysing the automated acceptance tests that validate each task. TAITI computes the set of files that might be executed by the tests of a task (a so called test-based task interface), approximating the files that developers will change when performing the task. Although TAITI performs better than a random task interface, there is space for accuracy improvements. In this paper, we extend the interfaces computed by TAITI by including the dependences of the application files reached by the task tests. To understand the potential benefits of our extension, we evaluate precision and recall of 60 task interfaces from 8 Rails GitHub projects. The results bring evidence that the extended interface improves recall by slightly compromising precision.
Palavras-chave: Behaviour-Driven Development, Collaborative development, File change prediction
Publicado
23/09/2019
SANTOS, João Pedro; ROCHA, Thaís; BORBA, Paulo. Improving the prediction of files changed by programming tasks. In: SIMPÓSIO BRASILEIRO DE COMPONENTES, ARQUITETURAS E REUTILIZAÇÃO DE SOFTWARE (SBCARS), 13. , 2019, Salvador/BA. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 53–62.