Abstract
Code reviews have been used to improve code quality since the 1970s. Most practitioners in the field of software have some experience with respect to the technique. In this mapping study we illustrate what kinds of research questions are addressed in code review literature. The following themes emerged from analysis of 75 original articles: (1) description or comparison of different code review practices, (2) behavior of reviewers (e.g., eye tracking studies), (3) communication and teamwork, (4) outcomes of code reviews (e.g., what kinds of problems are identified), (5) how properties of code to be reviewed affect reviewing, and (6) reasons for conducting code reviews. About half of the studies have been conducted with students and novices. The numbers of industry papers has significantly increased when compared to the previous reviews in the field.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Myers, G.J.: A controlled experiment in program testing and code walkthroughs/inspections. Commun. ACM 21(9), 760–768 (1978)
Bacchelli, A., Bird, C.: Expectations, outcomes, and challenges of modern code review. In: Proceedings of the 2013 International Conference on Software engineering, pp. 712–721. IEEE Press (2013)
Brykczynski, B.: A survey of software inspection checklists. ACM SIGSOFT Softw. Eng. Notes 24(1), 82 (1999)
Ebad, S.: Inspection reading techniques applied to software artifacts-a systematic review. Comput. Syst. Sci. Eng. 32(3), 213–226 (2017)
Petersen, K., Feldt, R., Mujtaba, S., Mattsson, M.: Systematic mapping studies in software engineering. In: Proc. of the 12th International Conference on Evaluation and Assessment in Software Engineering. EASE 2008, BCS Learning & Development, pp. 68–77 (2008)
Kitchenham, B.A., Charters, S.: Guidelines for performing systematic literature reviews in software engineering. Technical Report EBSE-2007-01, Keele Univ. (2007)
Greiler, M., Bird, C., Storey, M.A., MacLeod, L., Czerwonka, J.: Code reviewing in the trenches: Understanding challenges, best practices and tool needs (2016)
Dunsmore, A., Roper, M., Wood, M.: Systematic object-oriented inspection-an empirical study. In: Proceedings of the 23rd International Conference on Software Engineering, pp. 135–144. IEEE (2001)
Edmundson, A., Holtkamp, B., Rivera, E., Finifter, M., Mettler, A., Wagner, D.: An empirical study on the effectiveness of security code review. In: Jürjens, J., Livshits, B., Scandariato, R. (eds.) ESSoS 2013. LNCS, vol. 7781, pp. 197–212. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36563-8_14
Begel, A., Vrzakova, H.: Eye movements in code review. In: Proceedings of the Workshop on Eye Movements in Programming, p. 5. ACM (2018)
Uwano, H., Nakamura, M., Monden, A., Matsumoto, K.I.: Analyzing individual performance of source code review using reviewers’ eye movement. In: Proceedings of the 2006 Symposium on Eye Tracking Research & Applications, pp. 133–140. ACM (2006)
Foss, S.L., Murphy, G.C.: Do developers respond to code stability warnings? In: Proceedings of the 25th Annual International Conference on Computer Science and Software Engineering, pp. 162–170. IBM Corp. (2015)
dos Santos, E.W., Nunes, I.: Investigating the effectiveness of peer code review in distributed software development. In: Proceedings of the 31st Brazilian Symposium on Software Engineering, pp. 84–93. ACM (2017)
Spadini, D., Aniche, M., Storey, M.A., Bruntink, M., Bacchelli, A.: When testing meets code review: why and how developers review tests. In: 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE), pp. 677–687. IEEE (2018)
Sripada, S.K., Reddy, Y.R.: Code comprehension activities in undergraduate software engineering course-a case study. In: 24th Australasian Software Engineering Conference, vol. 2015, pp. 68–77. IEEE (2015)
Baysal, O., Kononenko, O., Holmes, R., Godfrey, M.W.: The influence of non-technical factors on code review. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 122–131. IEEE (2013)
Sadowski, C., Söderberg, E., Church, L., Sipko, M., Bacchelli, A.: Modern code review: a case study at google. In: Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice, pp. 181–190. ACM (2018)
Fracz, W., Dajda, J.: Experimental validation of source code reviews on mobile devices. In: Gervasi, O., Murgante, B., Misra, S., Borruso, G., Torre, C.M., Rocha, A.M.A.C., Taniar, D., Apduhan, B.O., Stankova, E., Cuzzocrea, A. (eds.) ICCSA 2017. LNCS, vol. 10408, pp. 533–547. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-62404-4_40
Baum, T., Leßmann, H., Schneider, K.: The choice of code review process: a survey on the state of the practice. In: Felderer, M., Méndez Fernández, D., Turhan, B., Kalinowski, M., Sarro, F., Winkler, D. (eds.) PROFES 2017. LNCS, vol. 10611, pp. 111–127. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-69926-4_9
Ferreira, A.L., Machado, R.J., Silva, J.G., Batista, R.F., Costa, L., Paulk, M.C.: An approach to improving software inspections performance. In: 2010 IEEE International Conference on Software Maintenance, pp. 1–8. IEEE (2010)
Vassallo, C., Panichella, S., Palomba, F., Proksch, S., Zaidman, A., Gall, H.C.: Context is king: the developer perspective on the usage of static analysis tools. In: IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 38–49. IEEE (2018)
Höst, M., Johansson, C.: Evaluation of code review methods through interviews and experimentation. J. Syst. Softw. 52(2–3), 113–120 (2000)
Kamsties, E., Lott, C.M.: An empirical evaluation of three defect-detection techniques. In: Schäfer, W., Botella, P. (eds.) Software Engineering – ESEC 1995, pp. 362–383. Springer, Berlin (1995)
Müller, M.M.: Are reviews an alternative to pair programming? Empir. Softw. Eng. 9(4), 335–351 (2004)
Khandelwal, S., Sripada, S.K., Reddy, Y.R.: Impact of gamification on code review process: an experimental study. In: Proceedings of the 10th Innovations in Software Engineering Conference, pp. 122–126. ACM (2017)
Hatton, L.: Testing the value of checklists in code inspections. IEEE Softw. 25(4), 82–88 (2008)
Belli, F., Crisan, R.: Empirical performance analysis of computer-supported code-reviews. In: Proceedings The Eighth International Symposium on Software Reliability Engineering, pp. 245–255. IEEE (1997)
El Emam, K., Laitenberger, O.: Evaluating capture-recapture models with two inspectors. IEEE Trans. Softw. Eng. 27(9), 851–864 (2001)
Hirao, T., Ihara, A., Matsumoto, K.I.: Pilot study of collective decision-making in the code review process. In: Proceedings of the 25th Annual International Conference on Computer Science and Software Engineering, pp. 248–251. IBM Corp (2015)
Olorisade, B.K., Vegas, S., Juristo, N.: Determining the effectiveness of three software evaluation techniques through informal aggregation. Inf. Softw. Technol. 55(9), 1590–1601 (2013)
Runeson, P., Stefik, A., Andrews, A., Gronblom, S., Porres, I., Siebert, S.: A comparative analysis of three replicated experiments comparing inspection and unit testing. In: Second International Workshop on Replication in Empirical Software Engineering Research, vol. 2011, pp. 35–42. IEEE (2011)
De Vreede, G.J., Koneri, P.G., Dean, D.L., Fruhling, A.L., Wolcott, P.: A collaborative software code inspection: the design and evaluation of a repeatable collaboration process in the field. Int. J. Coop. Inf. Syst. 15(02), 205–228 (2006)
Hémeury, B.: Report on the VERA experiment. In: González Harbour, M., de la Puente, J.A. (eds.) Ada-Europe 1999. LNCS, vol. 1622, pp. 103–113. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48753-0_9
Kelly, D., Shepard, T.: Qualitative observations from software code inspection experiments. In: Proceedings of the 2002 conference of the Centre for Advanced Studies on Collaborative research, p. 5. IBM Press (2002)
Porter, A.A., Siy, H.P., Toman, C.A., Votta, L.G.: An experiment to assess the cost-benefits of code inspections in large scale software development. IEEE Trans. Softw. Eng. 23(6), 329–346 (1997)
Wang, Y.Q., Qi, Z.Y., Zhang, L.J., Song, M.J.: Research and practice on education of SQA at source code level. Int. J. Eng. Educ. 27(1), 70 (2011)
Panko, R.R.: Applying code inspection to spreadsheet testing. J. Manage. Inf. Syst. 16(2), 159–176 (1999)
Koneri, P.G., de Vreede, G.-J., Dean, D.L., Fruhling, A.L., Wolcott, P.: The design and field evaluation of a repeatable collaborative software code inspection process. In: Fukś, H., Lukosch, S., Salgado, A.C. (eds.) CRIWG 2005. LNCS, vol. 3706, pp. 325–340. Springer, Heidelberg (2005). https://doi.org/10.1007/11560296_26
Cristia, M., Frydman, C.: Formal and semi-formal verification of a web voting system. Int. J. Web Inf. Syst. 11(2), 183–204 (2015)
da Silva Neto, A.V., Vismari, L.F., Gimenes, R.A.V., Sesso, D.B., de Almeida, J.R., Cugnasca, P.S., Camargo, J.B.: A practical analytical approach to increase confidence in pld-based systems safety analysis. IEEE Syst. J. 99, 1–12 (2017)
Wood, M., Roper, M., Brooks, A., Miller, J.: Comparing and combining software defect detection techniques: a replicated empirical study. In: Jazayeri, M., Schauer, H. (eds.) ESEC/SIGSOFT FSE -1997. LNCS, vol. 1301, pp. 262–277. Springer, Heidelberg (1997). https://doi.org/10.1007/3-540-63531-9_19
Wilkerson, J.W., Nunamaker, J.F., Mercer, R.: Comparing the defect reduction benefits of code inspection and test-driven development. IEEE Trans. Softw. Eng. 38(3), 547–560 (2011)
Morales, R., McIntosh, S., Khomh, F.: Do code review practices impact design quality? a case study of the qt, vtk, and itk projects. In: IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), pp. 171–180 IEEE (2015)
Oliveira, R., Estácio, B., Garcia, A., Marczak, S., Prikladnicki, R., Kalinowski, M., Lucena, C.: Identifying code smells with collaborative practices: a controlled experiment. In: X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), pp. 61–70. IEEE 2016 (2016)
Swamidurai, R., Dennis, B., Kannan, U.: Investigating the impact of peer code review and pair programming on test-driven development. In: IEEE SOUTHEASTCON 2014, pp. 1–5. IEEE (2014)
Bisant, D.B., Lyle, J.R.: A two-person inspection method to improve programming productivity. IEEE Trans. Softw. Eng. 10, 1294–1304 (1989)
McMeekin, D.A., von Konsky, B.R., Chang, E., Cooper, D.J.A.: Measuring cognition levels in collaborative processes for software engineering code inspections. In: Ulieru, M., Palensky, P., Doursat, R. (eds.) IT Revolutions 2008. LNICST, vol. 11, pp. 32–43. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03978-2_5
McMeekin, D.A., von Konsky, B.R., Chang, E., Cooper, D.J.: Checklist based reading’s influence on a developer’s understanding. In: 19th Australian Conference on Software Engineering (aswec 2008), pp. 489–496. IEEE (2008)
McIntosh, S., Kamei, Y., Adams, B., Hassan, A.E.: An empirical study of the impact of modern code review practices on software quality. Empir. Softw. Eng. 21(5), 2146–2189 (2016)
Stålhane, T., Awan, T.H.: Improving the software inspection process. In: Richardson, I., Abrahamsson, P., Messnarz, R. (eds.) EuroSPI 2005. LNCS, vol. 3792, pp. 163–174. Springer, Heidelberg (2005). https://doi.org/10.1007/11586012_16
Dunsmore, A., Roper, M., Wood, M.: The role of comprehension in software inspection. J. Syst. Softw. 52(2–3), 121–129 (2000)
Da Cunha, A.D., Greathead, D.: Does personality matter?: an analysis of code-review ability. Commun. ACM 50(5), 109–112 (2007)
Thongtanunam, P., McIntosh, S., Hassan, A.E., Iida, H.: Investigating code review practices in defective files: an empirical study of the qt system. In: Proceedings of the 12th Working Conference on Mining Software Repositories, pp. 168–179. IEEE (2015)
Kononenko, O., Baysal, O., Guerrouj, L., Cao, Y., Godfrey, M.W.: Investigating code review quality: do people and participation matter? In: 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 111–120. IEEE (2015)
de Mello, R.M., Oliveira, R.F., Garcia, A.F.: On the influence of human factors for identifying code smells: a multi-trial empirical study. In: ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), vol. 2017, pp. 68–77. IEEE (2017)
Murakami, Y., Tsunoda, M., Uwano, H.: Wap: does reviewer age affect code review performance? In: IEEE 28th International Symposium on Software Reliability Engineering (ISSRE), vol. 2017, pp. 164–169. IEEE (2017)
Seaman, C.B., Basili, V.R.: An empirical study of communication in code inspections. In: Proceedings of the (19th) International Conference on Software Engineering, pp. 96–106. IEEE (1997)
Porter, A., Siy, H., Mockus, A., Votta, L.: Understanding the sources of variation in software inspections. ACM Trans. Softw. Eng. Methodol. 7(1), 41–79 (1998)
Müller, M.M.: Two controlled experiments concerning the comparison of pair programming to peer review. J. Syst. Softw. 78(2), 166–179 (2005)
Spohrer, K., Kude, T., Schmidt, C.T., Heinzl, A.: Knowledge creation in information systems development teams: The role of pair programming and peer code review. In: ECIS. 213 (2013)
Miller, J., Yin, Z.: A cognitive-based mechanism for constructing software inspection teams. IEEE Trans. Softw. Eng. 30(11), 811–825 (2004)
Sutherland, A., Venolia, G.: Can peer code reviews be exploited for later information needs? In: 2009 31st International Conference on Software Engineering-Companion Volume, pp. 259–262. IEEE (2009)
Seaman, C.B., Basili, V.R.: Communication and organization: An empirical study of discussion in inspection meetings. IEEE Trans. Softw. Eng. 24(7), 559–572 (1998)
Bosu, A., Carver, J.C., Bird, C., Orbeck, J., Chockley, C.: Process aspects and social dynamics of contemporary code review: Insights from open source development and industrial practice at microsoft. IEEE Trans. Softw. Eng. 43(1), 56–75 (2016)
Panichella, S., Arnaoudova, V., Di Penta, M., Antoniol, G.: Would static analysis tools help developers with code reviews? In: IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), pp. 161–170. IEEE (2015)
Thompson, C., Wagner, D.: A large-scale study of modern code review and security in open source projects. In: Proceedings of the 13th International Conference on Predictive Models and Data Analytics in Software Engineering, pp. 83–92. ACM (2017)
Lei, Q., He, Z., Fuqun, H., Bin, L.: Classification of air on-board software code defects and investigations. Procedia Eng. 15, 3577–3583 (2011)
Russell, G.W.: Experience with inspection in ultralarge-scale development. IEEE Softw. 8(1), 25–31 (1991)
Siy, H., Votta, L.: Does the modern code inspection have value? In: Proceedings of the IEEE International Conference on Software- Maintenance (ICSM 2001), p. 281. IEEE (2001)
Bavota, G., Russo, B.: Four eyes are better than two: On the impact of code reviews on software quality. In: 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 81–90. IEEE (2015)
Bosu, A., Carver, J.C.: Impact of peer code review on peer impression formation: a survey. In: ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, vol. 2013, p. 133–142. IEEE (2013)
Beller, M., Bacchelli, A., Zaidman, A., Juergens, E.: Modern code reviews in open-source projects: which problems do they fix? In: Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 202–211. ACM (2014)
Bernhart, M., Grechenig, T.: On the understanding of programs with continuous code reviews. In: 2013 21st International Conference on Program Comprehension (ICPC), pp. 192–198. IEEE (2013)
Mäntylä, M.V., Lassenius, C.: What types of defects are really discovered in code reviews? IEEE Trans. Softw. Eng. 35(3), 430–448 (2008)
Runeson, P., Stefik, A., Andrews, A.: Variation factors in the design and analysis of replicated controlled experiments. Empir. Softw. Eng. 19(6), 1781–1808 (2014)
Baysal, O., Kononenko, O., Holmes, R., Godfrey, M.W.: Investigating technical and non-technical factors influencing modern code review. Empir. Softw. Eng. 21(3), 932–959 (2016)
Nanthaamornphong, A., Chaisutanon, A.: Empirical evaluation of code smells in open source projects: preliminary results. In: Proceedings of the 1st International Workshop on Software Refactoring, pp. 5–8. ACM (2016)
Perry, D.E., Porter, A., Wade, M.W., Votta, L.G., Perpich, J.: Reducing inspection interval in large-scale software development. IEEE Trans. Softw. Eng. 28(7), 695–705 (2002)
Jenkins, G.L., Ademoye, O.: Can individual code reviews improve solo programming on an introductory course? Innov. Teach. Learn. Inf. Comput. Sci. 11(1), 71–79 (2012)
Baum, T., Liskin, O., Niklas, K., Schneider, K.: Factors influencing code review processes in industry. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 85–96. ACM (2016)
Ackerman, A.F., Buchwald, L.S., Lewski, F.H.: Software inspections: an effective verification process. IEEE Softw. 6(3), 31–36 (1989)
Rigby, P., Cleary, B., Painchaud, F., Storey, M.A., German, D.: Contemporary peer review in action: lessons from open source development. IEEE Softw. 29(6), 56–61 (2012)
Kitchenham, B., Brereton, P.: A systematic review of systematic review process research in software engineering. Inf. Softw. Technol. 55(12), 2049–2075 (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Fronza, I., Hellas, A., Ihantola, P., Mikkonen, T. (2020). Code Reviews, Software Inspections, and Code Walkthroughs: Systematic Mapping Study of Research Topics. In: Winkler, D., Biffl, S., Mendez, D., Bergsmann, J. (eds) Software Quality: Quality Intelligence in Software and Systems Engineering. SWQD 2020. Lecture Notes in Business Information Processing, vol 371. Springer, Cham. https://doi.org/10.1007/978-3-030-35510-4_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-35510-4_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-35509-8
Online ISBN: 978-3-030-35510-4
eBook Packages: Computer ScienceComputer Science (R0)