Colección de citas famosas - Colección de máximas - ¿Qué es el desarrollo basado en pruebas?

¿Qué es el desarrollo basado en pruebas?

El desarrollo basado en pruebas, el nombre completo en inglés es Test-Driven Development, o TDD para abreviar, es un nuevo método de desarrollo que es diferente del proceso de desarrollo de software tradicional. Requiere escribir código de prueba antes de escribir el código para una determinada función, y luego escribir solo el código funcional que hace que la prueba pase e impulsar todo el desarrollo a través de pruebas. Esto ayuda a escribir código conciso, utilizable y de alta calidad y acelera el proceso de desarrollo.

2 Principios Básicos

La idea básica del desarrollo basado en pruebas es escribir código de prueba antes de desarrollar código funcional, y luego escribir solo código funcional que haga pasar la prueba, por lo que que esté impulsado por pruebas durante todo el proceso de desarrollo. Esto ayuda a escribir código conciso, utilizable y de alta calidad que sea muy flexible y robusto, pueda responder rápidamente a los cambios y acelere el proceso de desarrollo.

El proceso básico del desarrollo basado en pruebas es el siguiente:

① Agregar rápidamente una prueba

② Ejecutar todas las pruebas (a veces solo una o parte de ellas) debe ejecutarse), descubrió que la nueva prueba no puede pasar

③ Realice algunos pequeños cambios para que el programa de prueba se pueda ejecutar lo antes posible. Para este propósito, puede utilizar algunos métodos irrazonables en el programa<. /p>

④ Ejecute todas las pruebas y páselas todas

⑤ Refactorice el código para eliminar diseños repetidos y optimice la estructura del diseño

En pocas palabras, no se puede ejecutar /runnable/refactored— —Este es exactamente el mantra del desarrollo basado en pruebas.

Esencia y Ventajas

Quizás sólo después de comprender la esencia y las ventajas del desarrollo basado en pruebas, podrás apreciar su infinito encanto. El desarrollo basado en pruebas no es una tecnología de prueba, es una tecnología de análisis, una tecnología de diseño y una tecnología para organizar todas las actividades de desarrollo. En comparación con el método tradicional de proceso de desarrollo estructurado, tiene las siguientes ventajas: [3]

1) TDD escribe casos de prueba de acuerdo con las necesidades del cliente y diseña los procesos e interfaces funcionales El diseño del código. La perspectiva del usuario suele estar más acorde con las necesidades del desarrollo posterior. Debido a que presta atención a los comentarios de los usuarios, puede responder a los cambios en los requisitos de manera oportuna y, debido a su diseño simple desde la perspectiva del usuario, también puede adaptarse a los cambios más rápidamente.

2) Los requisitos para realizar pruebas sencillas e independientes nos impulsarán a implementar un diseño débilmente acoplado y confiar más en interfaces que en clases específicas para mejorar la escalabilidad y resistencia del sistema transexual. Y TDD acorta significativamente el ciclo de retroalimentación para las decisiones de diseño, lo que nos permite obtener retroalimentación en segundos o minutos.

3) Anteponga el trabajo de prueba a la codificación y ejecute todas las pruebas con frecuencia para evitar y detectar errores lo antes posible, reducir en gran medida el costo de las pruebas y reparaciones posteriores y mejorar la calidad del código. Bajo la protección de las pruebas, el código se reconstruye constantemente para eliminar diseños repetidos, optimizar la estructura del diseño y mejorar la reutilización del código, mejorando así la calidad del producto de software.

4) TDD proporciona pruebas de regresión continua, lo que nos da el coraje para refactorizar. Debido a que los cambios de código causan excepciones en otras partes del sistema, la prueba nos lo notificará de inmediato. Las pruebas completas nos ayudarán a realizar un seguimiento continuo del estado de todo el sistema, por lo que no debemos preocuparnos por efectos secundarios impredecibles.

5) El código de prueba unitaria generado por TDD es la documentación para desarrolladores más perfecta. Muestra cómo se deben usar todas las API y cómo funcionan, y están sincronizadas con el código de trabajo y siempre están actualizadas. . de.

6) TDD puede reducir el estrés, reducir las preocupaciones, aumentar nuestra confianza en el código y darnos el coraje para refactorizar. Estos son requisitos previos importantes para un trabajo feliz.

7) Mejorar rápidamente la eficiencia del desarrollo.

Situación actual y perspectivas

La tecnología de desarrollo basada en pruebas ha recibido cada vez más atención, pero debido a su corto tiempo de desarrollo, las aplicaciones relacionadas no están muy maduras. Hoy en día, cada vez más empresas intentan practicar el desarrollo basado en pruebas. Sin embargo, debido a que el desarrollo basado en pruebas tiene requisitos relativamente altos para los desarrolladores y va en contra de los hábitos de pensamiento tradicionales de los desarrolladores, es difícil de practicar. Muchas empresas de software conocidas en los Estados Unidos, como IBM, han comenzado a transformarse a ágiles desde muy temprano. En este proceso, TDD suele ser el más importante y difícil, como dijo Sue Mckinney, vicepresidenta del departamento de transformación de desarrollo de IBM. dijo: La perspectiva del desarrollo basado en pruebas es muy atractiva para la gente, pero "es posible que hayamos pagado más en este proceso". Dave West, analista senior de Forrester, cree que el desarrollo basado en pruebas (TDD) es como ". Santo Grial", pero "si podemos lograr este objetivo, no importa cuánto paguemos, el trabajo duro vale la pena".

Creo que el primer problema en la promoción del desarrollo basado en pruebas es cambiar los conceptos de pensamiento y las ideologías formadas por los desarrolladores durante un largo período de tiempo. A los desarrolladores solo les gusta la codificación. No me gustan las pruebas y no puedo entender por qué escribo pruebas unitarias primero cuando no hay código de producto relacionado; soporte técnico, el desarrollo basado en pruebas plantea requisitos más altos para los desarrolladores, no solo para dominar las pruebas y la refactorización, sino también para comprender aspectos de diseño como los patrones de diseño.

Así como todo producto revolucionario debe pasar por un viaje difícil cuando se produce por primera vez, el desarrollo basado en pruebas también lo pasa, pero está madurando gradualmente y tiene un futuro brillante. Creo que en los próximos años, cada vez más empresas de software nacionales comenzarán a popularizar el desarrollo basado en pruebas.