En el mundo rápidamente cambiante de los microservicios Cada equipo de ingeniería tiende a crear su propia combinación única de tecnologías y herramientas. que es como un paraíso para los lingüistas políglotas Esta diversidad, sin embargo, promueve la innovación. Pero trae consigo importantes desafíos cuando se trata de pruebas. Los equipos pueden elegir sus propios lenguajes de programación y kits de herramientas. Pero los contenedores y Kubernetes nos han enseñado que estandarizar la implementación y el tiempo de ejecución tiene un gran valor. La necesidad de coherencia se extiende a las pruebas. Este es un ámbito lleno de decisiones, como qué pruebas deben priorizarse. ¿Qué indicadores deberían perseguirse? ¿Y hasta qué punto debería automatizarse?
“Tenemos un equipo que quiere trabajar rápido. Por lo tanto, no es necesario escribir pruebas automatizadas. Y simplemente pruebe y vuelva a la producción. Y tenemos otros equipos. Eso lleva demasiado tiempo.mi ¡Automatiza cada parte del código y entrega muy lentamente!
– Jefe de Ingeniería de Productividad en una importante empresa de comercio electrónico
Esta desigualdad no sólo es ineficiente; Pero también hay un alto costo. Esto se debe a que requiere trabajo redundante y mayores costos de mantenimiento. Si no hay una prueba estandarizada Los equipos pueden utilizar herramientas y procesos duplicados. Esto a menudo resulta en problemas de producción de costos más altos que consumen muchos recursos y pueden afectar los ingresos.
Problemas con pruebas no estándar
Imagine un equipo que automatiza diligentemente las pruebas de integración con Docker Compose en CI. mientras que otro equipo conserva energía para las pruebas de extremo a extremo (E2E) que se ejecutan todas las noches en la fase de prueba. Un tercer grupo puede limitarse principalmente a las pruebas manuales. y sólo ocasionalmente es vulnerable a la automatización. Este enfoque fragmentado no sólo pone en peligro la fiabilidad de los componentes individuales; sino también el sistema en su conjunto. También eclipsa cualquier esfuerzo. eso también armonizará las métricas de calidad, velocidad y costos en toda la organización de ingeniería. Además, recuerde el viejo dicho: Un sistema es tan fuerte como su eslabón más débil. Las inconsistencias en los estándares de prueba pueden dejar todo su sistema vulnerable a defectos incluso en los componentes menos confiables. Esto puede abrir las compuertas a problemas mayores en el futuro.
El papel de la ingeniería de plataformas
Ingeniería de plataforma Es una evolución de los principios de DevOps, enfocada en desarrollar herramientas internas que estandaricen los procesos técnicos y brinden capacidades de autoservicio a los desarrolladores. En el contexto de las pruebas de microservicios Los ingenieros de plataforma (PE) pueden trabajar con equipos de control de calidad para crear herramientas estándar y mejores prácticas que puedan ser utilizadas por el equipo de ingeniería en general. Por lo tanto, la coherencia y la eficiencia están garantizadas.
Áreas importantes para la estandarización mediante ingeniería de plataformas
Los conocimientos recientes de la industria, como los del «Estado de la ingeniería de plataformas 2023» de Puppet y las «Prioridades de ingeniería de software 2024 de Gartner», destacan los objetivos y desafíos clave que impactan directamente a los equipos de ingeniería de plataformas. Estos informes enfatizan la importancia de la eficiencia. fiabilidad y velocidad de entrega de software Enfatiza la necesidad de operaciones ágiles durante todo el ciclo de vida de desarrollo de software (SDLC), con énfasis en las pruebas. Este es un paso importante del SDLC. Estos aspectos se pueden mejorar mucho. Así es como los ingenieros de plataformas pueden alinear sus estrategias con estas iniciativas clave:
- Entorno de prueba:Ambos informes señalan el costo excesivo y la complejidad de gestionar múltiples entornos de prueba, consolidando el desarrollo. Control de calidad, preparación y aceptación en un entorno de preproducción único y optimizado. Esto permite a los equipos de la plataforma reducir significativamente los costos y simplificar los flujos de trabajo. Este enfoque no sólo reduce los costos de infraestructura; sino que también acelera el proceso de prueba. Esto está en línea con el impulso de la industria hacia prácticas de desarrollo más eficientes.
- Vista previa de cambios de código básicos:La importancia de la retroalimentación temprana Y la recursividad es un tema recurrente en las discusiones actuales sobre ingeniería de software. La adopción de un entorno de vista previa estándar permite a los desarrolladores colaborar de manera más eficiente con los gerentes de producto, el control de calidad y los equipos de UX. Sin embargo, hay complejidades involucradas. Pero la creación de estos entornos es esencial para mejorar los ciclos de retroalimentación en las arquitecturas de microservicios. Por tanto, mejora la calidad del producto y acelera la velocidad de iteración.
- Pruebas automatizadas de desplazamiento a la izquierda:De las palabras de líderes de la industria La detección temprana y la resolución de problemas es un factor clave para mantener una alta eficiencia de producción y calidad del producto. Los ingenieros de la plataforma se asegurarán de que los errores puedan identificarse y corregirse lo antes posible. Al estandarizar las pruebas automatizadas antes de fusionar las solicitudes de extracción, este enfoque proactivo no solo mejora la estabilidad de la versión, sino que también mejora la estabilidad de la versión. Pero también se alinea con el objetivo más amplio de aumentar la productividad y la productividad de los desarrolladores.
El área estratégica de estas normas no es sólo la mejora de los procesos individuales. Pero también es una parte importante para mejorar la eficacia y eficiencia generales de la función de ingeniería de la plataforma.
Principios importantes para guiar los estándares de prueba
En el panorama de la ingeniería de plataformas Los beneficios para los desarrolladores son muchos. Desde una mayor productividad hasta una mejor calidad del software. especialmente Los desarrolladores destacan las ventajas de una reducción de errores y una aplicación más estable. Esto es importante en un entorno de desarrollo acelerado.
Esto se debe a que intentamos evitar métricas inútiles como el porcentaje de cobertura de código o el volumen de pruebas automatizadas. Esto puede ser más engañoso que informativo. Por lo tanto, es necesario centrarse en los conocimientos prácticos que proporcionan las pruebas y no sólo en su existencia. Aquí hay algunas pautas para garantizar que sus esfuerzos de prueba sean realmente efectivos:
- Los resultados son más que productividad:Céntrese en métricas que impactan directamente en la calidad del software y la experiencia del usuario, como las tasas de escape de errores o la frecuencia de eventos. Más que resultados que sólo cuentan actividades
- Pruebas basadas en valores:Elegir la prueba adecuada implica no sólo decidir entre métodos manuales o automatizados. Pero también es necesario evaluar el retorno de la inversión (ROI) y el esfuerzo de mantenimiento. El enfoque apropiado varía según el contexto empresarial. Por ejemplo, una empresa de comercio electrónico podría centrarse en flujos de transacciones que son fundamentales para sus ingresos. Las empresas B2B, por otro lado, pueden centrarse en flujos de usuarios esenciales. Aunque las pruebas de extremo a extremo (E2E) requieren muchos recursos, Pero el potencial para proteger los flujos de usuarios de alto valor puede valer la pena. Una estrategia de prueba eficaz está estrechamente alineada con los objetivos comerciales. Garantizando que los esfuerzos se centren en lo que aportan el mayor valor.
- Mejoras iterativas:Utilizar indicadores para mejorar continuamente los métodos de prueba. Si algunas pruebas proporcionan pocos o ningún dato procesable, Puede que haya llegado el momento de modificar o abandonar dichas pruebas.
Al centrarse en estos principios y adoptar nuevas tecnologías, los equipos podrán alinear mejor las estrategias de prueba con los objetivos clave. Esto aumenta tanto la eficiencia como la eficacia en el proceso de desarrollo.
Conclusión
Cuando se trata de mejorar la eficiencia de la ingeniería, reducir costos y aumentar la confiabilidad del sistema, Estandarizar el proceso de prueba es un paso importante.
En Signadot, creamos herramientas que ayudan a los equipos de plataformas a simplificar y estandarizar sus entornos de prueba y vista previa. Esto permite un enfoque de desplazamiento a la izquierda del ciclo de desarrollo y al mismo tiempo minimiza los costos de infraestructura. Por ejemplo, los ingenieros de plataformas de Brex pudieron escalar las pruebas de los desarrolladores a cientos de ingenieros sin duplicar la infraestructura, y Earnest permite a los desarrolladores realizar pruebas iniciales en un entorno de producción. . Esto permite una detección de problemas más rápida y costos reducidos.
¿Te gustaría saber más sobre cómo incorporar estas estrategias en tu proceso de desarrollo? Visite el sitio web de Signadot para obtener más información.
Sitio web YOUTUBE.COM/THENEWSTACK
La tecnología avanza rápidamente No te pierdas ni un solo episodio. Suscríbase a nuestro canal de YouTube para transmitir podcasts, entrevistas, demostraciones y más.
Solicitar membresía