Caracterizando Condutores de Carga Cognitiva na Prática de Testes Unitários

  • Bruno Barroso UFRJ
  • Leonardo da Silva UFRJ
  • Rafael de Mello UFRJ

Resumo


Testes unitários são uma importante prática para promover a qualidade do produto de software desenvolvido. No entanto, é comum que esta prática seja considerada desafiadora e que desenvolvedores se sintam pouco motivados para realizá-la. Neste artigo, é apresentado um estudo de caso que visa caracterizar uma primeira versão de condutores de carga cognitiva presentes nas atividades de testes unitários de software. Por meio de entrevistas conduzidas com desenvolvedores de diferentes equipes de um banco brasileiro, foi identificado um conjunto de desafios e problemas enfrentados para a realização de testes unitários. A partir dessas informações, foi codificado um conjunto de condutores de carga cognitiva que abrange diferentes aspectos técnicos e não técnicos da prática. Além disso, os resultados do estudo destacam a necessidade de um processo padronizado para apoiar e promover a prática de testes unitários nas organizações.

Referências

Bandara, R. and Perera, I. (2020). Unit test code generation tool support for lower level programming languages. In 2020 Moratuwa Engineering Research Conference (MERCon), pages 1–6. IEEE.

Belém, P., De Mello, R., Vivacqua, A. S., and Neves De Souza, A. (2023). Investigating the cognitive load drivers of software evolution activities. In Proceedings of the XXXVII Brazilian Symposium on Software Engineering, pages 342–347.

Causevic, A., Sundmark, D., and Punnekkat, S. (2011). Factors limiting industrial adoption of test driven development: A systematic review. In 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation, pages 337–346. IEEE.

Fraser, G. and Rojas, J. M. (2019). Software testing. Handbook of Software Engineering, pages 123–192.

Gonçales, L., Farias, K., da Silva, B., and Fessler, J. (2019). Measuring the cognitive load of software developers: A systematic mapping study. In 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC), pages 42–52. IEEE.

Helgesson, D., Engström, E., Runeson, P., and Bjarnason, E. (2019). Cognitive load drivers in large scale software development. In 2019 IEEE/ACM 12th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE), pages 91–94. IEEE.

Kayongo, P., Chigona, W., and Mabhena, Z. (2016). Why do software developers practice test-driven development? In 2016 International Conference on Advances in Computing and Communication Engineering (ICACCE), pages 357–361.

Pargaonkar, S. (2023). A comprehensive research analysis of software development life cycle (sdlc) agile & waterfall model advantages, disadvantages, and application suitability in software quality engineering. International Journal of Scientific and Research Publications (IJSRP), 13(08).

Passos, E. R. W. (2020). Princípios da teoria da carga cognitiva voltados à educação corporativa.

Prado, M. P., Verbeek, E., Storey, M.-A., and Vincenzi, A. M. (2015). Wap: Cognitive aspects in unit testing: The hunting game and the hunter’s perspective. In 2015 ieee 26th international symposium on software reliability engineering (issre), pages 387–392. IEEE.

Prado, M. P. and Vincenzi, A. M. R. (2018). Towards cognitive support for unit testing: A qualitative study with practitioners. Journal of Systems and Software, 141:66–84.

Runeson, P. (2006). A survey of unit testing practices. IEEE software, 23(4):22–29.

Saloum, S. and Rissanen, F. (2019). The impact of gamification in unit testing.

Santos, L., Santos, F., Parreira, R., and de Mello, R. (2023). Investigating the developer’s perceptions of unit testing and its practice. In Anais da VII Escola Regional de Engenharia de Software, pages 238–247. SBC.

Shamshiri, S., Just, R., Rojas, J. M., Fraser, G., McMinn, P., and Arcuri, A. (2015). Do automatically generated unit tests find real faults? an empirical study of effectiveness and challenges (t). In 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 201–211.

Stolp, F. (2023). Assessing cognitive load in software development with wearable sensors. In 2023 IEEE/ACM 45th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion), pages 227–229. IEEE.

Sweller, J. (2011). Cognitive load theory. In Psychology of learning and motivation, volume 55, pages 37–76. Elsevier.

Vaismoradi, M., Jones, J., Turunen, H., and Snelgrove, S. (2016). Theme development in qualitative content analysis and thematic analysis.

Xie, T., Tillmann, N., and Lakshman, P. (2016). Advances in unit testing: theory and practice. In Proceedings of the 38th International Conference on Software Engineering Companion, ICSE ’16, page 904–905, New York, NY, USA. Association for Computing Machinery.
Publicado
21/07/2024
BARROSO, Bruno; SILVA, Leonardo da; MELLO, Rafael de. Caracterizando Condutores de Carga Cognitiva na Prática de Testes Unitários. In: WORKSHOP SOBRE ASPECTOS SOCIAIS, HUMANOS E ECONÔMICOS DE SOFTWARE (WASHES), 9. , 2024, Brasília/DF. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 70-81. ISSN 2763-874X. DOI: https://doi.org/10.5753/washes.2024.2676.