ResearchSpace@Auckland
Exploring the Potential of Non-programmer Contributions in Code Review
Abstract
dc:description.abstractCode review is the act of one programmer reading through the code developed by another fellow programmer to detect overlooked functional and evolvability defects. While it car- ries many benefits for software practitioners and organizations, it also entails challenges. One of the challenges in code review is its cost due to the need to use expert and expen- sive programmers. In this dissertation, we investigate an approach for reducing the code review workload imposed on those programmers. We conducted a systematic mapping study and an online survey to understand the challenges in code review in-depth and to identify the ones that require addressing. These studies confirmed that the high cost has been a challenge in code review. To possibly over- come this challenge, we propose to delegate a subset of code review tasks to less expen- sive non-programmers instead of depending solely on expert and expensive programmers. Thereby, we can free programmers to some extent from their code review workload allow- ing them to work on other tasks beneficial to their organization. Moreover, the quality of the software will be improved further, which is the ultimate target of performing code review. The nature of code review is such that it would seem that the reviewer needs to be an expert. To confirm the plausibility of our proposed solution, we examined the kinds of defects that are typically identified during code review. We identified some defects that we believed non-programmers might be just as effective at identifying, namely, iden- tifier name-related defects, conceptual class cohesion-related defects, software-generated message-related defects, and API documentation grammar and typography-related de- fects. Guided by these findings, we designed adapted representations of source code and instructions that non-programmers might be able to use to identify the mentioned types of defects. Then, two studies were conducted to collect evidence on the feasibility of the proposed solution. In these studies, we also evaluated the adapted materials we designed. The reliability of non-programmers was determined by using programmers’ decisions as the benchmark because currently in practice, the most trustworthy detection of defects related to the mentioned subjective aspects of code is performed by programmers. The results from the feasibility studies revealed that non-programmers are, in fact, able to identify subsets of all 4 of the mentioned defect types. We identified the cases where non-programmers’ review outcomes were similar to the programmers and ways to improve their review outcomes further. Finally, we also identified the most effective review method for non-programmers including the most effective adapted materials among the ones we evaluated. Future research in this area will look at ways to improve non-programmers’ reliability in code review further and provide appropriate automation support for non- programmers to review code.
Degree
thesis:*- Name thesis:degree_name
- PhD
- Level thesis:degree_level
- Doctoral
- Discipline thesis:degree_discipline
- Science
- Grantor dc:publisher
- ResearchSpace@Auckland
- Year dc:date.issued
- 2023
Author and committee
dc:creator, dc:contributor.*- Author dc:creator
-
- Gunawardena, Sanuri Dananja
- Advisors dc:contributor.advisor
-
- Tempero, Ewan
- Blincoe, Kelly
Rights
dc:rights- Statement dc:rights
-
- Items in ResearchSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
- Licence dc:rights.uri
Identifiers
dc:identifier.*- Handle dc:identifier.uri
- https://hdl.handle.net/2292/64255
- OAI identifier oai:identifier
- oai:researchspace.auckland.ac.nz:2292/64255