The last line effect explained

Moritz Beller*, Andy Zaidman, Andrey Karpov, Rolf A. Zwaan

*Corresponding author for this work

Research output: Contribution to journalArticleScientificpeer-review

5 Citations (Scopus)
89 Downloads (Pure)

Abstract

Micro-clones are tiny duplicated pieces of code; they typically comprise only few statements or lines. In this paper, we study the “Last Line Effect,” the phenomenon that the last line or statement in a micro-clone is much more likely to contain an error than the previous lines or statements. We do this by analyzing 219 open source projects and reporting on 263 faulty micro-clones and interviewing six authors of real-world faulty micro-clones. In an interdisciplinary collaboration, we examine the underlying psychological mechanisms for the presence of these relatively trivial errors. Based on the interviews and further technical analyses, we suggest that so-called “action slips” play a pivotal role for the existence of the last line effect: Developers’ attention shifts away at the end of a micro-clone creation task due to noise and the routine nature of the task. Moreover, all micro-clones whose origin we could determine were introduced in unusually large commits. Practitioners benefit from this knowledge twofold: 1) They can spot situations in which they are likely to introduce a faulty micro-clone and 2) they can use PVS-Studio, our automated micro-clone detector, to help find erroneous micro-clones.
Original languageEnglish
Pages (from-to)1508-1536
Number of pages29
JournalEmpirical Software Engineering
Volume22
Issue number3
DOIs
Publication statusPublished - Jun 2017

Keywords

  • Clone detection
  • Code clones
  • Interdisciplinary work
  • Last line effect
  • Micro-clones
  • Psychology

Fingerprint

Dive into the research topics of 'The last line effect explained'. Together they form a unique fingerprint.

Cite this