banner

Noticias

Nov 05, 2023

Aplicar prueba

InfoQ Inicio Noticias Aplicación del desarrollo basado en pruebas en la nube

Este artículo en japonés.

25 de mayo de 2023 Lectura de 4 minutos

por

Ben Linders

En la nube, el desarrollo de aplicaciones se puede abordar de un extremo a otro con la infraestructura que lo acompaña. Esto hace posible utilizar el desarrollo basado en pruebas (TDD) y la refactorización en la aplicación completa, lo que puede reducir los costos de mantenimiento.

Michal Svoboda dará una charla sobre el desarrollo basado en pruebas de aplicaciones en la nube en XP 2023. Esta conferencia se llevará a cabo del 13 al 16 de junio en Ámsterdam, Países Bajos.

Para las aplicaciones en la nube, las aplicaciones se pueden desarrollar e implementar junto con la infraestructura que las acompaña como una pieza de código coherente. Según Svoboda, eliminar la "infraestructura" como un elemento separado nos permite aplicar técnicas de ingeniería ágiles como TDD y refactorización en el alcance de toda la aplicación, incluidos sus recursos en la nube.

La latencia y la naturaleza asincrónica de la nube pueden ser un problema. Esperar a que se aprovisionen los recursos o que transcurran los tiempos de espera obstruye el rápido ciclo de TDD. Svoboda sugiere cambiar a un modelo de actualización incremental, es decir, no destruir recursos al final de cada prueba y tener una implementación limpia solo al integrar:

Las técnicas de aceleración de prueba se extrajeron de nuestra bolsa de trucos TDD. Usar tácticamente pruebas basadas en estados o probar solo partes modificadas del código serían algunos ejemplos. Vale la pena recordar que los obstáculos en las pruebas brindan información útil para todo el ciclo de desarrollo. Esta retroalimentación nos hizo sopesar cuidadosamente nuestra arquitectura y nuestras opciones de procedimiento.

Según Svoboda, TDD reduce los costes de mantenimiento de las aplicaciones, que son, con diferencia, la mayor parte del TCO del software. Con TDD, es fácil agregar funciones o refactorizar en cualquier lugar, ya sea su propio código o el uso de los recursos de la nube, incluso años después.

InfoQ entrevistó a Michal Svoboda sobre el desarrollo de la nube utilizando TTD.

InfoQ: ¿Cómo ha impactado la nube la forma en que aprovisionamos la infraestructura?

Michal Svoboda : A través de las API, se pueden crear y destruir recursos en la nube de forma totalmente automatizada. (Estrictamente hablando, esto no es sólo la nube. Los proveedores de la nube simplemente hacen que esta función sea extremadamente accesible). No necesitamos pensar en la "infraestructura", como en servidores y redes que existen independientemente de las aplicaciones. La "infraestructura" ya no requiere un enfoque especial.

Además de la infraestructura clásica, la nube proporciona servicios de especialidad única, como almacenamiento, funciones o transmisiones. Muchas aplicaciones en la nube no sólo se ejecutan en la nube, sino que consisten en la nube.

InfoQ: ¿Cómo se realiza el desarrollo basado en pruebas para aplicaciones en la nube?

Svoboda : TDD de aplicaciones en la nube es similar a TDD de otras aplicaciones. En lugar de llamar a constructores y funciones para crear objetos en la memoria, llamamos a API para crear recursos en la nube. En el pseudocódigo siguiente se ilustra una prueba de "organizar, actuar y afirmar" para un recurso de flujo:

[Pruebe que la transmisión se pueda escribir y leer]

Esta es una prueba funcional muy simple. Las pruebas basadas en estado se pueden realizar mediante llamadas API que "consultan la configuración" de los recursos. Se pueden probar configuraciones de recursos más complejas utilizando el mismo principio.

Según TDD, dejamos que la prueba se escriba primero, falla y seguimos con la implementación. Es importante destacar que escuchamos los comentarios y dejamos que cualquier dificultad de las pruebas impulse nuestro desarrollo. Nuestra tecnología, arquitectura y opciones de procedimientos se basan en la facilidad de realización de pruebas.

InfoQ: ¿Qué desafíos ha enfrentado y cómo los abordó?

Svoboda : Las herramientas disponibles fueron un problema. Para que este enfoque de TDD en la nube funcione bien, el código de implementación de recursos debe ser de primera clase en el lenguaje de programación elegido. Las herramientas contemporáneas proporcionan interfaces de línea de comandos sobre un modelo en sus propios idiomas en forma de "Makefile en la nube". Debido a que estas herramientas siguen el paradigma de "infraestructura separada", puede resultar complicado comunicarse con ellas. Esta fue una excelente retroalimentación también al principio de nuestro desarrollo y dirigió nuestras decisiones sobre herramientas y proveedores.

InfoQ: Además de los costos más bajos, ¿qué beneficios obtuvo al utilizar TDD para aplicaciones en la nube?

Svoboda : Las pruebas permiten tener en cuenta casos extremos. Las aplicaciones son estables y sabemos qué esperar. ¡Incluso solucionamos algunos problemas con nuestro proveedor de nube!

Debido a que nuestro enfoque hizo que fuera muy fácil configurar y probar recursos, también nos beneficiamos en la fase de creación de prototipos. La nube es un entorno complejo y fallamos más veces de las que puedo contar debido a errores de programación y suposiciones de funcionalidad incorrectas. Al utilizar este enfoque, fallamos rápidamente.

Muchas preguntas importantes fueron respondidas pragmáticamente al principio del desarrollo. ¿Qué tecnologías usaremos? ¿Cómo implementaremos y operaremos nuestra aplicación? ¿Cómo gestionaremos el estado a largo plazo y los datos confidenciales?

InfoQ: ¿Cuál es su consejo para las personas que quieran probar TDD para su aplicación en la nube?

Svoboda : Comience lentamente con un proyecto de menor escala primero. Hay algunas cosas que necesitarán un arranque antes de que se pueda pasar la primera prueba. Acostúmbrate a la mecánica. Asegúrate de refactorizar agresivamente. Aprenda de los comentarios. ¡Buena suerte!

Presentado por: Michal Svec - Ingeniero líder de soluciones en Apollo GraphQL

Guarda tu asiento

Escribir para InfoQ ha abierto muchas puertas y aumentado las oportunidades profesionales. para mí. Pude interactuar profundamente con expertos y líderes de opinión para aprender más sobre los temas que cubrí. Y también puedo difundir mis conocimientos a la comunidad tecnológica en general y comprender cómo se utilizan las tecnologías en el mundo real.

¡Descubrí el programa de colaboradores de InfoQ a principios de este año y lo he disfrutado desde entonces! Además de brindarme una plataforma para compartir aprendizaje con una comunidad global de desarrolladores de software, el sistema de revisión entre pares de InfoQ ha mejorado significativamente mi escritura. . Si está buscando un lugar para compartir su experiencia en software, comience a contribuir a InfoQ.

Comencé a escribir noticias para la cola InfoQ .NET como una forma de mantenerme actualizado con la tecnología, pero saqué mucho más provecho de ello. Conocí gente conocedora, obtuve visibilidad global y mejoré mis habilidades de escritura..

Convertirme en editor de InfoQ fue una de las mejores decisiones de mi carrera . Me ha desafiado y me ha ayudado a crecer de muchas maneras. . Nos encantaría tener más gente.Unete a nuestro equipo.

InfoQ busca un editor en jefe a tiempo completo para unirse al equipo internacional y siempre remoto de C4Media. Únase a nosotros para cubrir las tecnologías más innovadoras de nuestro tiempo, colabore con los profesionales de software más brillantes del mundo y ayude a más de 1,6 millones de equipos de desarrollo a adoptar nuevas tecnologías y prácticas que superan los límites de lo que el software y los equipos pueden ofrecer.

Todos los martes se envía un resumen del contenido de la semana pasada en InfoQ. Únase a una comunidad de más de 250.000 desarrolladores senior. Ver un ejemplo

Protegemos su privacidad.

Debe registrar una cuenta InfoQ o iniciar sesión o iniciar sesión para publicar comentarios. Pero hay mucho más detrás de estar registrado.

Aproveche al máximo la experiencia InfoQ.

HTML permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Únase a una comunidad de expertos.InfoQ: ¿Cómo ha impactado la nube la forma en que aprovisionamos la infraestructura?Michal SvobodaInfoQ: ¿Cómo se realiza el desarrollo basado en pruebas para aplicaciones en la nube?SvobodaInfoQ: ¿Qué desafíos ha enfrentado y cómo los abordó?SvobodaInfoQ: Además de los costos más bajos, ¿qué beneficios obtuvo al utilizar TDD para aplicaciones en la nube?SvobodaInfoQ: ¿Cuál es su consejo para las personas que quieran probar TDD para su aplicación en la nube?SvobodaBen Lindersha abierto muchas puertas y ha aumentado las oportunidades profesionalesVivian HuEl sistema de revisión entre pares de InfoQ ha mejorado significativamente mi escrituraOghenewede EmeniObtuve visibilidad global y mejoré mis habilidades de escritura.Edin Kapicmejores decisiones de mi carrerame ayudó a crecer de muchas manerasUnete a nuestro equipoThomas Bettseditor en jefe a tiempo completoLa información QAproveche al máximo la experiencia InfoQ.
COMPARTIR