Browsing by Subject "Code review"
Now showing 1 - 6 of 6
- Results Per Page
- Sort Options
Item Open Access Creation of a serious game for teaching code review: An experience report(IEEE, 2020-10) Ardıç, Barış; Yurdakul, İrem; Tüzün, ErayCode review, a manual inspection of source code by developers other than the author, is a frequently used practice for improving code quality in the software development life-cycle. Employing a tool-based review of code changes has become the norm for a wide variety of open source and industrial systems. Despite its widespread usage and importance, software development practices such as code review are often not addressed in typical Software Engineering education. To address this knowledge gap, we propose to use a serious game approach for teaching code review practices. In this study, we define our learning objectives and design a code review serious game along with its companion quizzes. Then we conduct a small preliminary experiment in order to procure feedback. Using the results of the experiment and participant interviews, we improve our game prototype for integration into a software engineering course while optimizing the initial experiment for student's benefit. We document the process, lessons learned and the future directions of the game. The results we gather indicate that the game is ready to be used in a software engineering course setting.Item Open Access CRSG: a serious game for teaching code review(Association for Computing Machinery, 2020-11) Ünlü, Kaan; Ardıç, Barış; Tüzün, ErayThe application of code review in a development environment is essential, but this skill is not taught very often in an educational context despite its wide usage. To streamline the teaching process of code review, we propose a browser based "Code Review Serious Game" (CRSG) with high accessibility, progressive level difficulty and an evolvable foundation for prospective improvements or changes. The application is built as a serious game to reinforce the learning experience of its users by immersing them in its story and theme, helping them learn while having fun. The effectiveness of the game components are measured with a case study of 132 students of 2 software engineering courses. The promising result of this case study suggests CRSG can indeed be used effectively to teach code review. The demo video for the game can be accessed at https://youtu.be/FLnr3p4bhOg, and CRSG itself at: https://github.com/barisardic/crsg.Item Open Access Reviewer recommendation using software artifact traceability graphs(Association for Computing Machinery, 2019) Sülün, Emre; Tüzün, Eray; Doğrusöz, UğurVarious types of artifacts (requirements, source code, test cases, documents, etc.) are produced throughout the lifecycle of a software. These artifacts are often related with each other via traceability links that are stored in modern application lifecycle management repositories. Throughout the lifecycle of a software, various types of changes can arise in any one of these artifacts. It is important to review such changes to minimize their potential negative impacts. To maximize benefits of the review process, the reviewer(s) should be chosen appropriately. In this study, we reformulate the reviewer suggestion problem using software artifact traceability graphs. We introduce a novel approach, named RSTrace, to automatically recommend reviewers that are best suited based on their familiarity with a given artifact. The proposed approach, in theory, could be applied to all types of artifacts. For the purpose of this study, we focused on the source code artifact and conducted an experiment on finding the appropriate code reviewer(s). We initially tested RSTrace on an open source project and achieved top-3 recall of 0.85 with an MRR (mean reciprocal ranking) of 0.73. In a further empirical evaluation of 37 open source projects, we confirmed that the proposed reviewer recommendation approach yields promising top-k and MRR scores on the average compared to the existing reviewer recommendation approaches.Item Open Access Serious game approach to introduce the code review practice(2021-09) Ardıç, BarışCode Review is an accepted and widely utilized software engineering practice that focuses on improving code via manual inspections. However, this practice is not addressed adequately in a typical software engineering curriculum. We aim to help address the code review practice knowledge gap between the software engineering curricula and the industry with a serious game approach. We determine our learning objectives around introducing the code review process. In order to realize these objectives, we design, build and test a serious game. We then proceed with a three-step case study with 280 students. We evaluate the results by comparing the students' knowledge and con dence regarding code review before and after the case study, as well as by statistically evaluating how well they did both in the code review quizzes and the game levels themselves. Our analysis indicates that, students have a positive approach regarding playing the serious game while the statistical results show that students improve their knowledge by playing the game. We conclude that our code review serious game had a positive impact on the students and is helpful for introducing the code review process. The game and materials for the case studies are made available online for educators.Item Open Access Suggesting reviewers of software artifacts using traceability graphs(Association for Computing Machinery, Inc, 2019) Sülün, Emre; Apel, S.; Dumas, M.; Russo, A.; Pfahl, D.During the lifecycle of a software project, software artifacts constantly change. A change should be peer-reviewed to ensure the software quality. To maximize the benefit of review, the reviewer(s) should be chosen appropriately. However, choosing the right reviewer(s) might not be trivial especially in large projects. Researchers developed different methods to recommend reviewers. In this study, we introduce a novel approach for reviewer recommendation problem. Our approach utilizes the traceability graph of a software project and assigns a know-about score to each developer, then recommends the developers who have the maximum know-about score for an artifact. We tested our approach on an open source project and achieved top-3 recall of 0.85 with an MRR (mean reciprocal ranking) of 0.73.Item Open Access Towards better code reviews: using mutation testing to improve reviewer attention(IEEE, 2023-07-06) Mukhtarov, Ziya; Abdul, Mannan; Raupova, Mokhlaroyim; Baghirov, Javid; Tanveer, Osama; Altunel, Haluk; Tüzün, ErayCode reviews, while effective, can be crippled by process smells if not performed correctly. A typical process smell that harms the efficacy of code reviews is the ‘Looks Good To Me’ (LGTM) smell, wherein a reviewer approves a code review task without reviewing the code attentively. Low-quality code reviews can be harmful, as they can cause bugs to slip into a product codebase leading to potentially severe consequences. In this paper, we propose an innovative solution to potentially minimize the occurrence of the LGTM smell commonly found in code reviews. We built a tool that is a proof-of-concept implementation of our solution, which incorporates the concept of mutation testing into code reviews. It provides a platform where pull request authors can apply mutations to the pull request code in GitHub. Reviewer attention and review efficacy are measured based on their mutation score. To the best of our knowledge, our proof of concept implementation is the first-ever code review tool that uses the concept of mutation testing. We validated our proposed solution with eight developers and received promising results.