Para empezar, no creo que esto sea una repetición de otras preguntas sobre las pruebas unitarias . Estoy buscando ayuda para articular su valor a un equipo de programadores, analistas, gerentes y evaluadores. Mediante pruebas automatizadas, no creo que necesite hacer una distinción entre pruebas unitarias (por ejemplo, JUnit), BDD (por ejemplo, JBehave, Fitness) y UI (Selenium, Watir) porque creo que todas ofrecen un valor similar (pero siéntase libre de escribe una respuesta que no está de acuerdo :))
La siguiente es una lista que he identificado, estoy buscando respuestas que ayuden a expandir o refinar:
- Ahorro de tiempo / costo : escribir pruebas automatizadas puede tomar más tiempo que los casos de prueba escritos. Sin embargo, teniendo en cuenta que las pruebas se ejecutan varias veces, el trabajo marginal (es decir, costo / tiempo) para ejecutar pruebas automatizadas es de varios órdenes de magnitud menos. Que las pruebas automatizadas sean baratas de ejecutar facilita cambiar el sistema con el tiempo.
- Documentación : no hay una forma más verdadera de saber cómo funciona un sistema que sus pruebas. Cualquier otra documentación generalmente está desactualizada en el momento en que se escribe, pero las pruebas (al menos las que pasan) revelan cómo funcionan realmente las cosas. Esto es cierto tanto para el usuario final como para la documentación de la API.
- Calidad del código : la escritura de prueba lo obliga a:
- considerar clientes porque las pruebas son un cliente
- rompe las dependencias donde hacer que el código sea comprobable a menudo significa descubrir cómo hacer que ese código no requiera que algún otro sistema grande esté disponible