Únase a nosotros el 30 de abril: Presentación de la prueba CT de Parasoft C/C++ para pruebas continuas y excelencia en el cumplimiento | Regístrese ahora

Cómo optimizar las pruebas de rendimiento con un enfoque de cambio a la izquierda

Logotipo del cubo de Parasoft 300x300
14 de diciembre de 2023
5 min leer

Las pruebas de rendimiento en las primeras etapas del ciclo de desarrollo (enfoque de desplazamiento a la izquierda) dan como resultado productos que ofrecen mejor rendimiento y más retorno de la inversión. Descubra cómo puede optimizar las pruebas de rendimiento con un enfoque de desplazamiento hacia la izquierda.

Cada sprint es fundamental y las decisiones que se toman en el futuro son ultrarrápidas. Para facilitar el proceso de retroalimentación rápido, los equipos de prueba deben validar minuciosamente sus aplicaciones, de un extremo a otro, en un período de tiempo muy corto. Para maximizar este esfuerzo, los equipos de pruebas pueden modernizar su enfoque de las pruebas para obtener el mejor retorno de la inversión posible en las primeras etapas posibles de las pruebas de software.

¿Qué es la prueba de rendimiento Shift-Left?

Cambiar las pruebas de rendimiento a la izquierda significa permitir que los desarrolladores y evaluadores realicen pruebas de rendimiento en las primeras etapas de los ciclos de desarrollo. Tradicionalmente, las pruebas de rendimiento son una tarea que se realiza al final de los ciclos de desarrollo porque requiere un conjunto de herramientas y habilidades especializadas, es decir, hardware costoso en entornos dedicados por ingenieros de pruebas de rendimiento capacitados. En cambio, una estrategia de prueba de rendimiento de cambio a la izquierda permite que los evaluadores realicen pruebas de rendimiento ad hoc más pequeñas contra componentes individuales a medida que se desarrollan.

Para lograr esto, los equipos deben comenzar a crear pruebas de rendimiento junto con pruebas unitarias y funcionales, cuando se implementa la funcionalidad, y configurar esas pruebas de rendimiento para que se ejecuten automáticamente e informen de una manera que le advierta sobre disminuciones en el rendimiento. Para ejecutar las pruebas automáticamente, la ejecución de la prueba de rendimiento debe estar estrechamente integrada como parte del proceso de CI / CD, en el que después de cada verificación de código, las pruebas de rendimiento se ejecutan en entornos locales junto con las pruebas funcionales y unitarias.

Este proceso permite a las organizaciones comprender el impacto sutil de los nuevos componentes que se agregan al rendimiento agregado de su aplicación y, en última instancia, permite el descubrimiento de defectos relacionados con el rendimiento mucho antes en el ciclo de vida de la entrega. Desde la perspectiva de la cultura de la empresa, cambiar las pruebas de rendimiento a la izquierda también significa involucrar más a los desarrolladores. En la mayoría de los casos, los equipos de desarrollo pueden realizar mejoras de optimización un día después de descubrir la degradación del rendimiento, en lugar de esperar hasta que se compile toda la aplicación.

¿Qué tiene que hacer la organización para lograr un desempeño de cambio a la izquierda?

  1. En primer lugar, necesita una aceptación organizativa bien establecida. Abordar la calidad como un proceso y no como una reacción es esencial para cambiar las pruebas de rendimiento que quedan en toda la empresa. Los jugadores clave en este proceso son los gerentes de producto porque las pruebas de rendimiento y el tiempo de desarrollo asociado tienen un costo de implementación, lo que puede ralentizar el ciclo de desarrollo. Los equipos de gestión de proyectos deben comprender por qué se lleva a cabo este proceso y comprender que el valor proviene de la reducción de las correcciones urgentes y las optimizaciones del rendimiento.
  2. A continuación, definir SLA a nivel de componente adición a los el nivel de la aplicación permite la retroalimentación de la etapa anterior y ayuda a los desarrolladores a comprender el impacto de la modificación del código en los componentes individuales que están desarrollando. Esta prueba de rendimiento granular facilita que las partes interesadas aprendan dónde se producen los puntos de acceso.
  3. Es importante migrar la mayor parte de su práctica de pruebas de las pruebas centradas en la interfaz de usuario a pruebas automatizadas como API y pruebas de base de datos. Estos tipos de prácticas de prueba, además de ser más fáciles de mantener y escalables, se pueden aprovechar de inmediato en las pruebas de rendimiento, pueden identificar la causa raíz de los problemas de rendimiento y son muy resistentes a los cambios.
  4. Finalmente, las organizaciones deben integrar las pruebas de rendimiento en el proceso de compilación para que las pruebas de rendimiento básicas se ejecuten al verificar el código y se ejecute un conjunto completo de pruebas de rendimiento todas las noches. Para hacer esto, debe considerar el hardware. Las pruebas de rendimiento automatizadas requieren más recursos informáticos que las pruebas funcionales, por lo que los equipos de desarrollo deben estar preparados para ello. Revisar si la infraestructura de desempeño existente se ajusta a las enfoque de desplazamiento a la izquierda o requiere modificación (es decir, agentes en la nube) también sería una de las consideraciones clave en la transición a la automatización de pruebas de rendimiento.

Roles de desarrollador y tester en Shift-Left Performance

Los desarrolladores SON PROPIOS del rendimiento de sus aplicaciones. Los desarrolladores deben crear aplicaciones que estén listas para las pruebas de rendimiento mediante el uso de microservicios, API REST / SOAP y arquitecturas de diseño modular, de modo que las piezas individuales se puedan probar a medida que se desarrollan.

Los evaluadores pueden alinear sus casos de prueba con los flujos de trabajo clave en la aplicación para que puedan aprovecharse en el proceso de prueba de rendimiento. Centrarse en las capas de API de la aplicación hace que sea más resistente al cambio y manejable. Ambos equipos consumen informes que han caído fuera de los SLA para que la aplicación identifique áreas problemáticas en función de la verificación de código reciente para ayudarlos a identificar qué componentes deben optimizarse.

¿Cómo se integran las herramientas para habilitar Shift-Left Performance?

Seleccionar las herramientas adecuadas para un proceso de prueba de rendimiento de cambio a la izquierda es importante, pero no tan importante como usarlas juntas en flujos de trabajo automatizados. Las pruebas de rendimiento en la etapa inicial a menudo ocurren en bolsillos, donde los probadores y desarrolladores inteligentes individuales idean técnicas utilizando una variedad de herramientas de código abierto y disponibles comercialmente, pero esto finalmente se pasa por alto porque no está integrado como parte de todo el proceso automatizado.

En cambio, los evaluadores deberían utilizar herramientas comerciales especializadas que les permitan crear pruebas de rendimiento de forma automatizada. Los desarrolladores pueden utilizar herramientas similares para optimizar sus esfuerzos o para crear scripts de bajo nivel para impulsar la automatización y la carga. Entonces, ¿qué herramientas necesitas?

Las siguientes herramientas simplifican el mantenimiento, se pueden administrar de manera centralizada y proporcionan una interfaz de usuario fácil de usar para comprender los resultados.

Herramienta de prueba funcional

Las pruebas funcionales ya deberían ser parte de su estrategia de pruebas continuas. La herramienta que seleccione para la automatización de pruebas funcionales debe centrarse tanto en la capa API de la aplicación para simplificar la acción de ejecución y el mantenimiento del caso de prueba, como en la capa UI para las pruebas de experiencia del usuario y de un extremo a otro. Las herramientas de prueba funcional se utilizan para crear rutas de ejecución de referencia (reutilización), ya sea en el nivel de la interfaz de usuario o en el nivel de la API. Estas rutas de ejecución coinciden con las historias de usuario, por lo que habrá una correlación entre el resultado de la prueba de rendimiento y la historia de usuario afectada.

Herramienta de prueba de rendimiento

Específicamente, necesitas un herramienta de prueba de rendimiento que puede consumir los artefactos de prueba funcionales y ejecutarlos bajo carga. Estas herramientas deben tener una variedad de parámetros de control de carga, como la cantidad de usuarios virtuales o transacciones a lo largo del tiempo. Luego, estas herramientas deberían informar en un panel centralizado para agregar resultados.

Herramienta de virtualización de servicios

Herramientas de virtualización de servicios aborde los componentes faltantes de las aplicaciones monolíticas en las primeras etapas de las pruebas de rendimiento de desplazamiento a la izquierda. Uno de los principales desafíos que enfrentará en las primeras etapas de las pruebas de rendimiento es la falta de infraestructura de soporte, debido a esfuerzos de desarrollo paralelos o componentes de terceros. Al establecer la línea de base de esos sistemas dependientes y modelarlos en servicios virtuales, puede crear condiciones de línea de base de aplicaciones similares a la producción y centrarse en el rendimiento de los componentes individuales durante la prueba.

Herramienta de integración continua

Las pruebas de rendimiento de Shift-left funcionan mejor cuando se trata de un proceso automatizado. Si se implementa la automatización, "pruebas de rendimiento" significa simplemente la revisión / mantenimiento de las pruebas de rendimiento automatizadas, lo que reduce el tiempo para ejecutar las pruebas a largo plazo, ya que el proceso es automatizado y no manual.

Al alinear su estrategia de pruebas de rendimiento con su estrategia de pruebas continuas e integrarlas con herramientas como Jenkins, Bamboo, Microsoft VSTS, etc., puede crear un proceso totalmente automatizado. Sus herramientas de CI deberían permitirle ejecutar las pruebas de rendimiento como una función de la verificación del código para que se puedan ejecutar pruebas de rendimiento consistentes todas las noches.

Además, sus herramientas de CI deben integrarse con su panel de informes y análisis, y publicar automáticamente los resultados para que pueda comprender rápidamente los datos de tendencias.

Panel centralizado para agregar resultados

Hablando de tu panel de informes y análisis, un panel centralizado es importante porque permite a los usuarios comprender el impacto incremental de las pruebas de rendimiento de los componentes al mostrar información de tendencias por proyecto, componente, API, etc.

Su panel de control centralizado debe brindar la capacidad de automatizar las pruebas de rendimiento, definir SLA que conviertan las pruebas de rendimiento en indicadores de aprobación / falla y ver tendencias históricas. Además, el panel de informes debe proporcionar detalles que vinculen las pruebas de rendimiento con sus requisitos iniciales para que la empresa pueda priorizar adecuadamente los problemas que surjan, así como la vista de alto nivel de aprobación / falla y, al mismo tiempo, cada pequeño detalle, para que usted puede determinar las causas de los fallos una vez detectados.

El enfoque de desplazamiento hacia la izquierda agrega desarrolladores como usuarios del panel, además de administradores y evaluadores, por lo que el panel debe tener los detalles de bajo nivel que los desarrolladores buscan para investigar y establecer de manera efectiva las causas de las fallas de SLA o las tendencias históricas.

Resumen

Los consumidores están agotados con constantes parches calientes y actualizaciones de optimización del rendimiento. Tienen hambre de nuevas características y funcionalidades. Dado que las pruebas de rendimiento se realizan tradicionalmente al final del ciclo, inevitablemente afectan los plazos de entrega y, como tal, se miran a través de una lente negativa. Al federar el proceso de pruebas de rendimiento y permitir que los equipos ágiles cambio de prueba a la izquierda Con un enfoque iterativo, los problemas se pueden identificar tempranamente. Esto no solo garantiza que las decisiones tecnológicas tomadas puedan evaluarse fácilmente para determinar la degradación del rendimiento, sino que, en última instancia, proporciona un producto con mayor rendimiento en general al optimizar cada área y centrarse en el rendimiento.

Guía de mejores prácticas de pruebas de rendimiento