Using acceptance tests to predict files changed by programming tasks.

Saved in:
Bibliographic Details
Title: Using acceptance tests to predict files changed by programming tasks.
Authors: Rocha, Thaís1 tabr@cin.ufpe.br, Borba, Paulo1 phmb@cin.ufpe.br, Santos, João Pedro1 jpms2@cin.ufpe.br
Source: Journal of Systems & Software. Aug2019, Vol. 154, p176-195. 20p.
Subjects: User interfaces, Computer interfaces software, Computer programming, Automatic test equipment, Task performance
Abstract: • Definition of task interfaces based on automated acceptance tests. • A tool for computing test-based task interfaces. • Assessment of the predictive power of task interfaces. In a collaborative development context, conflicting code changes might compromise software quality and developers productivity. To reduce conflicts, one could avoid the parallel execution of potentially conflicting tasks. Although hopeful, this strategy is challenging because it relies on the prediction of the required file changes to complete a task. As predicting such file changes is hard, we investigate its feasibility for BDD (Behaviour-Driven Development) projects, which write automated acceptance tests before implementing features. We develop a tool that, for a given task, statically analyzes Cucumber tests and infers test-based interfaces (files that could be executed by the tests), approximating files that would be changed by the task. To assess the accuracy of this approximation, we measure precision and recall of test-based interfaces of 513 tasks from 18 Rails projects on GitHub. We also compare such interfaces with randomly defined interfaces, interfaces obtained by textual similarity of test specifications with past tasks, and interfaces computed by executing tests. Our results give evidence that, in the specific context of BDD, Cucumber tests might help to predict files changed by tasks. We find that the better the test coverage, the better the predictive power. A hybrid approach for computing test-based interfaces is promising. [ABSTRACT FROM AUTHOR]
Copyright of Journal of Systems & Software is the property of Elsevier B.V. and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
FullText Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 136563897
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Using acceptance tests to predict files changed by programming tasks.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Rocha%2C+Thaís%22">Rocha, Thaís</searchLink><relatesTo>1</relatesTo><i> tabr@cin.ufpe.br</i><br /><searchLink fieldCode="AR" term="%22Borba%2C+Paulo%22">Borba, Paulo</searchLink><relatesTo>1</relatesTo><i> phmb@cin.ufpe.br</i><br /><searchLink fieldCode="AR" term="%22Santos%2C+João+Pedro%22">Santos, João Pedro</searchLink><relatesTo>1</relatesTo><i> jpms2@cin.ufpe.br</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22Journal+of+Systems+%26+Software%22">Journal of Systems & Software</searchLink>. Aug2019, Vol. 154, p176-195. 20p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22User+interfaces%22">User interfaces</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+interfaces+software%22">Computer interfaces software</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+programming%22">Computer programming</searchLink><br /><searchLink fieldCode="DE" term="%22Automatic+test+equipment%22">Automatic test equipment</searchLink><br /><searchLink fieldCode="DE" term="%22Task+performance%22">Task performance</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: • Definition of task interfaces based on automated acceptance tests. • A tool for computing test-based task interfaces. • Assessment of the predictive power of task interfaces. In a collaborative development context, conflicting code changes might compromise software quality and developers productivity. To reduce conflicts, one could avoid the parallel execution of potentially conflicting tasks. Although hopeful, this strategy is challenging because it relies on the prediction of the required file changes to complete a task. As predicting such file changes is hard, we investigate its feasibility for BDD (Behaviour-Driven Development) projects, which write automated acceptance tests before implementing features. We develop a tool that, for a given task, statically analyzes Cucumber tests and infers test-based interfaces (files that could be executed by the tests), approximating files that would be changed by the task. To assess the accuracy of this approximation, we measure precision and recall of test-based interfaces of 513 tasks from 18 Rails projects on GitHub. We also compare such interfaces with randomly defined interfaces, interfaces obtained by textual similarity of test specifications with past tasks, and interfaces computed by executing tests. Our results give evidence that, in the specific context of BDD, Cucumber tests might help to predict files changed by tasks. We find that the better the test coverage, the better the predictive power. A hybrid approach for computing test-based interfaces is promising. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of Journal of Systems & Software is the property of Elsevier B.V. and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=136563897
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1016/j.jss.2019.04.060
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 20
        StartPage: 176
    Subjects:
      – SubjectFull: User interfaces
        Type: general
      – SubjectFull: Computer interfaces software
        Type: general
      – SubjectFull: Computer programming
        Type: general
      – SubjectFull: Automatic test equipment
        Type: general
      – SubjectFull: Task performance
        Type: general
    Titles:
      – TitleFull: Using acceptance tests to predict files changed by programming tasks.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Rocha, Thaís
      – PersonEntity:
          Name:
            NameFull: Borba, Paulo
      – PersonEntity:
          Name:
            NameFull: Santos, João Pedro
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 08
              Text: Aug2019
              Type: published
              Y: 2019
          Identifiers:
            – Type: issn-print
              Value: 01641212
          Numbering:
            – Type: volume
              Value: 154
          Titles:
            – TitleFull: Journal of Systems & Software
              Type: main
ResultId 1