Agile Teaching Practices: Using TDD and BDD in Software Development Teaching

  • Fabio Gomes Rocha
  • Layse Santos Souza
  • Thiciane Suely Couto Silva
  • Guillermo Rodriguez

Resumo




In this paper, we aimed to analyze the application and contribution of the use of Test-Driven Development (TDD) and Behavior-Oriented Development (BDD) in Software Engineering teaching. As empirical research, we presented an experiment conducted in the Software Engineering Laboratory (LES) course of a Private University (Tiradentes University) in the Bachelor of Computer Science and Information Systems courses. This experiment demonstrated the fundamentals in verifying the learning difficulties of students. Collected data were subjected not only to quantitative analysis but also to appropriate statistical analysis. The results showed a reduction in student absences, higher student satisfaction rate and higher grades in the courses. Furthermore, our approach allowed students to deliver a product in a short period, representing a possibility of adoption of BDD due to their successful learning experience.




 

Referências

Ray Dawson. Twenty dirty tricks to train software engineers. In Proceedings of the 22nd international conference on Software engineering, pages 209--218. ACM, 2000.

Gil Regev, Donald C Gause, and Alain Wegmann. Experiential learning approach for requirements engineering education. Requirements engineering, 14(4):269, 2009.

Timothy C Lethbridge, Jorge Diaz-Herrera, J Richard Jr, J Barrie Thompson, et al. Improving software practice through education: Challenges and future trends. In Future of Software Engineering (FOSE'07), pages 12--28. IEEE, 2007.

Marcelo H Yamaguti, Flávio M de Oliveira, Cássio AW Trindade, and Alessandra Dutra. Ages: An interdisciplinary space based on projects for software engineering learning. In Proceedings of the 31st Brazilian Symposium on Software Engineering, pages 368--373. ACM, 2017.

Mike Cohn. Desenvolvimento de software com Scrum: aplicando métodos ágeis com sucesso. Bookman, 2000.

Susan Hammond and David Umphress. Test driven development: the state of the practice. In Proceedings of the 50th Annual Southeast Regional Conference, pages 158--163. ACM, 2012.

Steven Fraser, Dave Astels, Kent Beck, Barry Boehm, John McGregor, James Newkirk, and Charlie Poole. Discipline and practices of tdd:(test driven development). In Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 268--270. ACM, 2003.

Wilson Bissi, Adolfo Gustavo Serra Seca Neto, and Maria Claudia Figueiredo Pereira Emer. The effects of test driven development on internal quality, external quality and productivity: A systematic review. Information and Software Technology, 74:45--54, 2016.

David Janzen and Hossein Saiedian. Does test-driven development really improve software design quality? Ieee Software, 25(2):77--84, 2008.

Dan North. Introducing bdd (2006). Verfügbar unter: http://dannorth. net/introducingbdd, 2019.

John Ferguson Smart. BDD in Action. Manning Publications, 2014.

Lauriane Corrêa Pereira Moraes et al. Um estudo empírico sobre o uso do bdd e seu apoio a engenharia de requisitos. 2016.

L Koskela. Test Driven Practical TDD and Acceptance TDD for Java Developers. Manning, 2007.

Boby George and Laurie Williams. A structured experiment of test-driven development. Information and Software Technology, 46:337--342, 04 2004.

Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, and Laurie Williams. Realizing quality improvement through test driven development: Results and experiences of four industrial teams. Empir Software Eng, pages 289 - 302, June 2008.

Gerardo Canfora, Aniello Cimitile, Felix Garcia, Mario Piattini, and Corrado Aaron Visaggio. Evaluating advantages of test driven development: A controlled experiment with professionals. In Proceedings of the 2006 ACM/IEEE International Symposium on Empirical Software Engineering, ISESE'06, pages 364--371. ACM, New York, NY, USA, 2006.

Stephen H Edwards. Using test-driven development in the classroom: Providing students with automatic, concrete feedback on performance. In Proceedings of the international conference on education and information systems: technologies and applications EISTA, volume 3. Citeseer, 2003.

Michael A Eierman and Jakob Iversen. Comparing test-driven development and pair programming to improve the learning of programming languages. Journal of the Midwest Association for Information Systems/ Vol, 2018(1):23, 2018.

Giovanna Lorena Rodrigues dos Santos and Edmilson Campos Neto. Um processo de desenvolvimento de software para o ensino técnico baseado em uma fábrica de software escola. In Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática na Educação-SBIE), volume 29, page 1741, 2018.

Iago Seroa, Helder Bertoldo, and Vânia Neves. Testerds: uma maneira fácil e estimulante para aprender estruturas de dados. In Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática na Educação-SBIE), volume 29, page 864, 2018.

Jean Piaget and David Elkind. Six psychological studies, volume 462. Vintage Books, 1968.

Morris L Bigge. Learning theories for teachers. Harper & Row, 1982.

Vani Moreira Kenski. Educação e tecnologias. Papirus editora, 2007.

John Dewey. Experience and education: The kappa delta pi lecture series. Touchstone, 1997.

Trello. https://trello.com/, 2019. [Online; accessed 19-may-2019].

Github. https://github.com/, 2019. [Online; accessed 03-april-2019].

Fabio Gomes Rocha, Pablo Marques Menezes, Methanias Colaço Rodrigues Junior, Rogério Patrício Chagas do Nascimento, and Adicinéia Aparecida de Oliveira. Integração contínua e controle de versão: Uma revisão sistemática. In 14th CONTECSI-International Conference on Information Systems and Technology Management, 2017.

Junit. https://junit.org/junit5/, 2019. [Online; accessed 20-april-2019].

JBehave. https://jbehave.org/, 2019. [Online; accessed 15-may-2019].

Slack. https://slack.com/intl/pt-br/, 2019. [Online; accessed 15-april-2019].

Guillermo Rodríguez, Álvaro Soria, and Marcelo Campo. Measuring the impact of agile coaching on students' performance. IEEE Transactions on Education, 59(3):202--209, 2016.

Jacques Delors and Zhou Nanzhao. Educação um tesouro a descobrir. 1998.

Bruno Gadelha and Alberto Castro. A reference model for teaching collaborative mobile systems. In Proceedings of the 31st Brazilian Symposium on Software Engineering, pages 374--383. ACM, 2017.

Changhee Kim and Won Sug Shin. Does information from the higher education and rd institutes improve the innovation efficiency of logistic firms? 35(1):70--76, 2019.
Publicado
21/01/2020
Como Citar

Selecione um Formato
ROCHA, Fabio Gomes; SOUZA, Layse Santos; SILVA, Thiciane Suely Couto; RODRIGUEZ, Guillermo. Agile Teaching Practices: Using TDD and BDD in Software Development Teaching. In: EDUCATION - SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 33. , 2019, Salvador. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 .