¿Se han realizado estudios científicos sobre TDD que utilicen el costo total de propiedad de un producto como medida?

11

Cuando estaba leyendo el resumen de trabajos anteriores en Dogsa T, Batic D. La efectividad del desarrollo basado en pruebas: un estudio de caso industrial. Revista de calidad del software. 2011; 19 (4): 643-661. Me llamó la atención que las mediciones utilizadas en muchos estudios sobre TDD se basan en cosas como líneas de código, defectos y tiempo dedicado al desarrollo.

¿Hay algún estudio que se centre en el costo total de propiedad de los productos que se han desarrollado utilizando TDD vs ex desarrollo tradicional o prueba de último momento?

Estoy especialmente interesado en el costo total de adquisición y los costos operativos.

Patrik Björklund
fuente

Respuestas:

3

Hay algunos estudios sobre las implicaciones y los beneficios de hacer TDD, pero los resultados son contradictorios. Algunos proyectos (según mi experiencia) tienen una tasa de errores y un costo de propiedad más bajos como resultado del uso de TDD, ya que el costo de cambiar una característica se reduce drásticamente. Algunos otros se detienen para detenerse.

Algunos estudios ( aquí hay uno - verifique la diapositiva n50) muestran que el número de errores aumentó con la cobertura. Supongo que una mayor cobertura implica TDD y que un mayor número de errores implica un mayor costo de propiedad.

Desde mi punto de vista, ninguna métrica o práctica en sí misma puede relacionarse con una mejor calidad o un menor costo de propiedad. Hay una combinación de factores que pueden conducir a cierta correlación. Y esos factores cambian entre equipos y proyectos.

Creo que todos hemos escuchado historias de equipos, que recién comenzaron a hacer TDD, escribiendo métodos de prueba de 100 líneas, lo que (en mi opinión) aumenta el costo de propiedad, ya que actualizar esa prueba será costoso.

Mi regla pragmática es que las personas que se preocupan y están ansiosas por aprender , que trabajan en un entorno que las respalda y sus ideas tienen mejor calidad y costo de propiedad.

Augusto
fuente
La diapositiva n50 es extremadamente engañosa. "Cuanta más cobertura, más errores" probablemente significa "cuanta más cobertura, más errores ... encontrará". Es posible, pero dudo que más cobertura conduzca a más defectos inyectados. Esto simplemente indica que mientras más cobertura, mayor es el rendimiento del defecto de la fase de desarrollo. Y sí, hay muchas métricas que pueden medir la calidad y el costo de propiedad: # defectos inyectados por fase, rendimiento de defectos por fase y retrabajo son cosas medibles con un impacto directo en la calidad y el costo. Consulte PSP / TSP para ver algunos ejemplos excelentes de estas métricas.
Michael
Michael, en el contexto de esa diapositiva, el presentador muestra lo que se correlaciona con una mayor densidad de errores. Una de las métricas eran los casos de prueba, por lo que cuantos más casos de prueba tenga una clase, mayor será el error en la clase. Lo que el presentador intenta decir es que ninguna métrica en sí misma se correlaciona con una menor densidad de errores.
Augusto
0

No tengo ningún estudio específico, pero puedo decirlo por experiencia personal, y por las experiencias de otros desarrolladores, sé que cuando se aplica correctamente para proyectos medianos y grandes, TDD reduce el tiempo de comercialización, reduce errores y defectos, y mejora la calidad del código .

Habiendo dicho que no hay balas de plata, ¿puedes escribir un buen código sin TDD? Sí, ¿puedes escribir código incorrecto con TDD? Además, dependiendo de su proyecto, TDD puede aumentar considerablemente el costo de propiedad del código, un buen ejemplo es la NASA, donde el costo por línea de código es enorme, pero el costo de propiedad no es el foco, es la falta de defectos.

Cuando se aplica correctamente, TDD aumentará sus costos iniciales y su base de código, pero obtendrá los beneficios a largo plazo de las pruebas de regresión, la detección temprana de errores y un mejor diseño del código que debería reducir los defectos y los costos de prueba y el tiempo de mantenimiento, reduciendo así el costo general de propiedad.

Bob el conserje
fuente