Applying Test-Driven Development for Improved Feedback and Automation of Grading in Academic Courses on Software Development

Author(s):  
Dragos Truscan ◽  
Tanwir Ahmad ◽  
Cuong Huy Tran
Author(s):  
Nuno Laranjeiro ◽  
Marco Vieira

Web services are increasingly being used in business critical environments as a mean to provide a service or integrate distinct software services. Research indicates that, in many cases, services are deployed with robustness issues (i.e., displaying unexpected behaviors when in presence of invalid input conditions). Recently, Test-Driven Development (TDD) emerged as software development technique based on test cases that are defined before development, as a way to validate functionalities. However, programmers typically disregard the verification of limit conditions, such as the ones targeted by robustness testing. Moreover, in TDD, tests are created before developing the functionality, conflicting with the typical robustness testing approach. This chapter discusses the integration of robustness testing in TDD for improving the robustness of web services during development. The authors requested three programmers to create a set of services based on open-source code and to implement different versions of the services specified by TPC-App, using both TDD and the approach presented in this chapter. Results indicate that TDD with robustness testing is an effective way to create more robust services.


2019 ◽  
Vol 29 (S1) ◽  
pp. 99-108
Author(s):  
Anupama Rajkumar ◽  
Ashish Paralikar

2016 ◽  
Author(s):  
Neil Borle ◽  
Meysam Feghhi ◽  
Abram Hindle

This paper studies the relationship between Test Driven Development (TDD), productivity and developer sentiment in order to assess the impact of TDD on software development. We used a set of 256572 Java repositories archived from GitHub in September 2015 and made available through the Boa language and infrastructure. This research found that of these repositories, 9537 could be classified as using the TDD methodology. After obtaining these repositories we compared them to an equivalently sized set of control repositories. In general those repositories practicing TDD had fewer commits and a faster median rate of committing than did their control counterparts. We also found that TDD repositories generally contained fewer bug fixing commits. Finally, sentiment analysis was performed on both sets of repositories and it was determined that TDD repositories have a significantly (p-value 3.857e-12) more positive sentiment in comparison to the control repositories.


2019 ◽  
Vol 13 (4) ◽  
pp. 267-274
Author(s):  
Aziz Nanthaamornphong ◽  
Stephane Bressan

The supply is not matching the demand on the market for software developers. While the enrolment in undergraduate computer science courses is increasing, few students are interested in and committed to becoming software developers. It could be that students are overwhelmed by the software development methodology that they are taught. We are consequently looking for a constructivist approach to software engineering able to effectively engage learners. We empirically evaluated whether test-driven development (TDD) is able to improve the quality of both learning and of software development in the classroom. Although numerous studies have outlined the benefits and effects of TDD in the classroom, none of those studies have focused on measuring students' interest in and attitudes toward using TDD in the classroom. We present a study evaluating the impact of TDD on the engagement and focus of learners of software development in the classroom. The results illustrate that the use of TDD in the classroom encourages learners to engage and focus.


Author(s):  
Nuno Laranjeiro ◽  
Marco Vieira

Web services are increasingly being used in business critical environments as a mean to provide a service or integrate distinct software services. Research indicates that, in many cases, services are deployed with robustness issues (i.e., displaying unexpected behaviors when in presence of invalid input conditions). Recently, Test-Driven Development (TDD) emerged as software development technique based on test cases that are defined before development, as a way to validate functionalities. However, programmers typically disregard the verification of limit conditions, such as the ones targeted by robustness testing. Moreover, in TDD, tests are created before developing the functionality, conflicting with the typical robustness testing approach. This chapter discusses the integration of robustness testing in TDD for improving the robustness of web services during development. The authors requested three programmers to create a set of services based on open-source code and to implement different versions of the services specified by TPC-App, using both TDD and the approach presented in this chapter. Results indicate that TDD with robustness testing is an effective way to create more robust services.


2021 ◽  
Author(s):  
◽  
Diego Fontdevila

La usabilidad caracteriza buenas interacciones entre las personas y sus procesos y prácticas. Promueve la satisfacción y crea entornos seguros para la innovación. Los principios de usabilidad como el feedback y la tolerancia a errores están presentes en muchos conceptos de ingeniería de software, como los procesos iterativos y las revisiones de pares. El propósito de la investigación realizada para esta Tesis es traer el concepto de usabilidad de prácticas y procesos a la ingeniería de software. Para lograr este objetivo, y dada la falta de modelos de calidad de procesos enfocados en la usabilidad, un Modelo de Usabilidad de Prácticas y Procesos (UMP) ha sido creado, refinado y evaluado, siguiendo el marco Desing Science Research. UMP ha sido efectivamente aplicado a Scrum, Test Driven Development (TDD), Integración Continua, Behaviour Driven Development (BDD) y el método Visual Milestone Planning (VMP). UMP fue diseñado para ayudar a practicantes, coaches, consultores, docentes e investigadores. Para evaluar UMP se realizaron varios estudios empíricos: una evaluación de expertos inicial para determinar su factibilidad; un focus group para obtener feedback sobre las características y métricas de UMP; dos estudios de confiabilidad, un estudio de acuerdo entre evaluadores sobre Scrum y un estudio de confiabilidad entre evaluadores sobre TDD-BDD; y dos estudios para evaluar la utilidad de UMP, un estudio de caso sobre la aplicación de UMP al método VMP, y un cuasi-experimento de campo en el cual un equipo de desarrollo en la industria aplicó UMP para mejorar su práctica de BDD. Los resultados de los estudios de utilidad muestran que los usuarios consideran a UMP útil, y 37 evaluaciones independientes por expertos fueron realizadas sobre procesos y prácticas del mundo real. Las contribuciones de esta tesis incluyen: UMP con sus características y métricas, el proceso de evaluación de UMP, el conocimiento creado sobre la confiabilidad y utilidad de UMP a través de los estudios empíricos, y los perfiles que caracterizan la usabilidad de prácticas y procesos de amplio uso actual en la industria como Scrum, Integración Continua, TDD y BDD, obtenidos a través de la aplicación de UMP.


Sign in / Sign up

Export Citation Format

Share Document