Estudo preliminar sobre os impactos do desenvolvimento orientado a testes no processo de revisão de código
Abstract
Even using agile methods and practices like TDD and code review, many problems are encountered during coding. Code review and TDD focus on the quality of software, but their relationship is not sufficiently understood. The objective of this study was to investigate problems encountered by the code review process in software developed using TDD. A survey was conducted with software developers and architects of a medium-sized Brazilian company, seeking to characterize problems found by code reviews for code developed using TDD. The results characterize the main problems with respect to frequency, severity, time, effort, and techniques that could help to address such problems. With this study, it was possible to list important problems in code developed using TDD, presenting opportunities for TDD improvement to avoid such problems and for code review techniques to address them properly.
References
Beck, K. (2001). Aim, fire. IEEE Software, 18(5):87–89.
Bernhart, M., Mauczka, A., e Grechenig, T. (2010). Adopting code reviews for agile software development. In: 2010 Agile Conference, p. 44–47. IEEE.
Card, D. N. (1990). Software quality engineering. Information and Software Technology, 32(1):3–10.
Fowler, M. (1999). Refactoring: Improving the Design of Existing Code. Addison- Wesley, Boston, MA, USA.
Fucci, D., Turhan, B., e Oivo, M. (2014). Impact of process conformance on the effects of test-driven development. In: 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, p. 10:1–10:10, New York, NY, USA. ACM.
Fucci, D., Turhan, B., e Oivo, M. (2015). On the effects of programming and testing skills on external quality and productivity in a test-driven development context. In: 19th International Conference on Evaluation and Assessment in Software Engineering, p. 25:1–25:6, New York, NY, USA. ACM.
George, B. e Williams, L. (2003). An initial investigation of test driven development in industry. In: 18th ACM Symposium on Applied Computing, p. 1135–1139, New York, NY, USA. ACM.
Hemmati, H. (2015). How effective are code coverage criteria? In: 2015 IEEE International Conference on Software Quality, Reliability and Security (QRS 2015), p. 151–156. IEEE.
ISO, IEC, e IEEE (2010). Iso/iec/ieee 24765:2010 – systems and software engineering – vocabulary.
Kalyan, A., Chiam, M., Sun, J., e Manoharan, S. (2016). A collaborative code review platform for GitHub. In: 2016 21st International Conference on Engineering of Complex Computer Systems (ICECCS), p. 191–196. IEEE.
Kollanus, S. (2011). Critical issues on test-driven development. In: 12th International Conference on Product-Focused Software Process Improvement, volume 6759 of Lecture Notes in Computer Science, p. 322–336.
Linaker, J., Sulaman, S. M., Maiani de Mello, R., e Martin, H. (2015). Guidelines for conducting surveys in software engineering. techreport, Lund University, Sweden.
Ma, L., Zhang, C., Yu, B., e Sato, H. (2015). An empirical study on effects of code visibility on code coverage of software testing. In: 10th International Workshop on Automation of Software Test (AST 2015), p. 80–84. IEEE.
McCabe, T. J. (1976). A complexity measure. Transactions on Software Engineering, 2(4):308–320.
McIntosh, S., Kamei, Y., Adams, B., e Hassan, A. E. (2014). The impact of code review coverage and code review participation on software quality: A case study of the Qt, VTK, and ITK projects. In: 11th Working Conference on Mining Software Repositories, p. 192–201, New York, NY, USA. ACM.
Mäntylä, M. V. e Lassenius, C. (2009). What types of defects are really discovered in code reviews? Transactions on Software Engineering, 35(3):430–448.
Pachulski Camara, B. H. e Graciotto Silva, M. A. (2016). A strategy to combine test-driven development and test criteria to improve learning of programming skills. In: 47th ACM Technical Symposium on Computing Science Education, p. 443–448, New York, NY, USA. ACM.
Rafique, Y. e Misic, V. B. (2013). The effects of test-driven development on external quality and productivity: A meta-analysis. Transactions on Software Engineering, 39(6):835–856.
Swamidurai, R., Dennis, B., e Kannan, U. (2014). Investigating the impact of peer code review and pair programming on test-driven development. In: IEEE SOUTHEASTCON 2014, p. 1–5. IEEE.
Tichy, W. F. e Padberg, F. (2007). Empirical methods in software engineering research. In: 29th International Conference on Software Engineering (ICSE’07 Companion), p. 163–164. IEEE.
Toomim, M., B. A. e Graham, S. L. (2004). Managing duplicated code with linked editing. In: 20th IEEE Symposium on Visual Languages and Human Centric Computing, p. 173–180. IEEE.
Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Penta, M. D., Lucia, A. D., e Poshy- vanyk, D. (2015). When and why your code starts to smell bad. In: 37th International Conference on Software Engineering, volume 1, p. 403–414, Piscataway, NJ, USA.IEEE.
