Temas técnicos

¿Qué es la ingeniería de rendimiento?

Ilustración de elementos informáticos centrada en una bombilla

Visión general

La ingeniería de rendimiento consiste en la comprobación y supervisión proactivas, continuas e integrales del rendimiento de las aplicaciones. Permite una colaboración sin fisuras entre equipos, herramientas y procesos a través de bucles de retroalimentación continuos. Aquí, no son solo los probadores los responsables de garantizar la calidad, sino también los desarrolladores, los ingenieros de rendimiento, los propietarios de productos y los analistas empresariales.

Aprovechando las herramientas adecuadas que abarcan desde los desarrolladores hasta los ingenieros de rendimiento, la ingeniería de rendimiento permite realizar pruebas de rendimiento con cambio a la izquierda y supervisar el rendimiento de las aplicaciones con cambio a la derecha. Es difícil apreciar hasta qué punto la ingeniería del rendimiento se aleja de las pruebas de rendimiento tradicionales si no se comprenden las pruebas de rendimiento clásicas.

Ingeniería de rendimiento

¿Cuál es la diferencia entre las pruebas de rendimiento y la ingeniería de rendimiento?

Las pruebas de rendimiento clásicas son un subconjunto de la ingeniería de rendimiento. Suele consistir en realizar una única ronda de pruebas de carga como parte del ciclo de garantía de calidad (QA) posterior al desarrollo. Las pruebas de rendimiento consisten en comprobar la velocidad, fiabilidad, escalabilidad, estabilidad, tiempo de respuesta y uso de recursos de una aplicación bajo la carga de trabajo prevista. Antes de entrar en las diferencias entre la ingeniería de rendimiento y las pruebas de rendimiento, primero echaremos un vistazo a las pruebas de rendimiento de forma aislada y por qué, por sí solas, ya no son sostenibles.

  • En primer lugar, las pruebas se ven de forma aislada y se tratan como una ocurrencia tardía que sólo comienza al final de las pruebas funcionales.
  • En segundo lugar, trabajar en silos provoca grandes lagunas de comunicación entre los subequipos del proyecto e impide la colaboración necesaria para entregar un producto de alta calidad.
  • En tercer lugar, cuando llegan las pruebas de rendimiento, la organización ya ha invertido mucho tiempo, esfuerzo y dinero en el diseño, desarrollo y promoción de la aplicación.
  • En cuarto lugar, las pruebas de rendimiento suelen considerarse una ocurrencia tardía y no se incluyen en los criterios de "hecho" que preceden al lanzamiento. En esta coyuntura, la empresa necesita la aplicación en producción urgentemente y no espera retrasos. En este contexto, los comentarios del departamento de control de calidad llegan demasiado tarde para corregirlos por completo antes de la publicación. Inevitablemente, un gran número de problemas de rendimiento llegarían innecesariamente al entorno de producción sólo para que el lanzamiento se mantuviera dentro del plazo previsto. Corregir un defecto en producción es mucho más caro y perjudicial que hacerlo al principio del desarrollo.
  • En quinto lugar, las pruebas de rendimiento tradicionales pueden haber sido perfectas para el modelo Waterfall, pero están fuera de lugar en el mundo actual centrado en DevOps. DevOps reduce la tasa de fallos de las nuevas versiones al acortar el tiempo entre el momento en que se confirma un cambio en el sistema y el momento en que el cambio se pone en producción. La integración continua y la entrega continua (CI/CD) garantizan que el software esté siempre en un estado liberable durante todo su ciclo de vida. DevOps también se centra en realinear la organización para apoyar la colaboración de extremo a extremo entre las partes interesadas, las funciones y las herramientas. Para satisfacer las demandas de entrega rápida de DevOps, el desarrollo de software necesita un enfoque de pruebas de rendimiento más evolucionado. Ese nuevo enfoque es la ingeniería del rendimiento del software.

Profundicemos ahora en las diferencias clave entre ingeniería de rendimiento y pruebas de rendimiento.

  • En primer lugar, las pruebas de rendimiento son un control de calidad de la gestión de la carga y la capacidad de respuesta de la aplicación. Establece hasta qué punto el sistema soportará una carga de producción y anticipa los problemas que podrían surgir en condiciones de carga pesada. La ingeniería de rendimiento trata de diseñar la aplicación desde el principio teniendo en cuenta las métricas de rendimiento y facilitar el descubrimiento de problemas en una fase temprana del desarrollo.
  • En segundo lugar, las pruebas de rendimiento son un proceso de control de calidad que suele tener lugar cuando se ha completado una ronda de desarrollo de software. La ingeniería de rendimiento es un proceso continuo que se integra en todas las fases del ciclo de desarrollo del software, desde el diseño hasta el desarrollo y la experiencia del usuario final.
  • En tercer lugar, las pruebas de rendimiento las realiza el equipo de control de calidad, mientras que en la ingeniería de rendimiento participan RND y QA.

Conceptos de ingeniería de rendimiento

A través de los siguientes conceptos, DevOps y la ingeniería de rendimiento ofrecen resultados de rendimiento de producción coherentes, lo que permite a los clientes desplegar aplicaciones de forma eficiente con más confianza y poner en marcha software estable y de alto rendimiento que cumpla las expectativas de los usuarios.

Optimización de extremo a extremo

La ingeniería de rendimiento ofrece una optimización integral del sistema mediante un proceso continuo de pruebas y supervisión. Esto traslada las pruebas de rendimiento y carga al proceso de desarrollo. A diferencia de las pruebas de rendimiento tradicionales, en las que las pruebas se realizaban una vez estabilizadas las pruebas funcionales y liberado el código.

Una vez liberado el código, la ingeniería de rendimiento realiza un seguimiento de la aplicación en producción aprovechando las herramientas de supervisión del rendimiento de las aplicaciones (APM).

Equipo interfuncional de partes interesadas en el rendimiento

La ingeniería del rendimiento permite la colaboración entre las partes interesadas del proyecto, desde los analistas empresariales hasta los desarrolladores. Mantener altos niveles de rendimiento que mejoren la experiencia del cliente, seguir el ritmo del negocio y gestionar el rendimiento de extremo a extremo convierte a todos, no sólo a los ingenieros de control de calidad/rendimiento, en administradores del rendimiento del producto. He aquí cómo.

Centro de pruebas de excelencia

El Centro de Excelencia de Pruebas (CoE) actúa como asesor de pruebas de confianza y custodio de las mejores prácticas. El CoE da soporte a diferentes unidades de negocio, diferentes métodos de pruebas (como DevOps y Agile), y tiene la flexibilidad de recomendar pruebas de rendimiento y herramientas de pruebas según sea necesario. Para construir mejores modelos de pruebas y mejorar la calidad de las pruebas, el CoE actúa como punto único de consolidación y reutilización de los datos de pruebas que se han generado y recopilado en múltiples unidades de negocio a lo largo del tiempo.

Ingeniero de rendimiento

El ingeniero de rendimiento proporciona una visión holística de todo el código en desarrollo para garantizar que los criterios de las pruebas de rendimiento sean exhaustivos, abarquen el panorama general y tengan en cuenta todas las piezas distintas del código en desarrollo. El ingeniero de rendimiento es el principal usuario de las herramientas de pruebas de rendimiento y tiene un alto grado de experiencia en la creación de scripts, el diseño, la ejecución y el análisis de los resultados de las pruebas. La ingeniería de rendimiento lleva al ingeniero de rendimiento a la fase inicial del desarrollo, donde puede proporcionar las métricas de rendimiento y los escenarios necesarios para que el código se considere listo para su lanzamiento. Una participación temprana significa que el ingeniero de rendimiento puede garantizar que la solución satisface las expectativas de rendimiento establecidas al principio del desarrollo. También confirma que la arquitectura y el diseño son coherentes durante todo el desarrollo.

Desarrollador de software

Los desarrolladores son expertos en codificación, pero a menudo poco expertos en pruebas funcionales y de rendimiento. Trabajan en su entorno de desarrollo integrado (IDE) y tienden a utilizar sus herramientas preferidas con poca inclinación a aprender otras nuevas. La ingeniería de rendimiento desplaza a la izquierda las pruebas de rendimiento, lo que las sitúa en el ámbito de responsabilidad del desarrollador de software. Con la ayuda del ingeniero de rendimiento, los desarrolladores de software pueden realizar pruebas de rendimiento mientras escriben el código. El desarrollador no publica su código antes de que supere los criterios de las pruebas de rendimiento.

DevTester

El "devtester" no existe en las pruebas de rendimiento clásicas, ya que hay distinciones claras entre los desarrolladores de software y los ingenieros de rendimiento. Con la ingeniería de rendimiento, el "devtester" surge como una parte interesada que conecta los equipos de ingenieros de rendimiento y desarrolladores. Salvan las distancias al contar con sólidos conocimientos de codificación y pruebas, aunque no al mismo nivel de experiencia que el desarrollador y el ingeniero de rendimiento. Pueden realizar pruebas con rapidez y tienen mucha más flexibilidad que los desarrolladores para utilizar distintas herramientas en función de las necesidades.

Analistas de negocio e ingenieros de aplicaciones

Al dar un giro a las pruebas, la ingeniería de rendimiento incorpora analistas de negocio e ingenieros de aplicaciones. Esto garantiza que los requisitos de rendimiento de la empresa y la aplicación que definen la calidad de la experiencia del usuario se incorporan a los criterios de rendimiento. Estas dos funciones supervisan la aplicación en producción para garantizar un rendimiento de primer nivel en todo momento.


Consiga el socio de ingeniería de rendimiento adecuado

La ingeniería del rendimiento está transformando el panorama del desarrollo de software, así como las descripciones de los puestos de trabajo de todos los que participan en él. Y con un mayor número de funciones implicadas, la necesidad de herramientas y tecnología para agilizar el proceso es mayor que nunca. La ingeniería de rendimiento exige una integración y colaboración de extremo a extremo, de derecha a izquierda y de izquierda a derecha, junto con información y análisis en tiempo real. Los proveedores tradicionales de pruebas de rendimiento no están adecuadamente equipados para hacer frente a esta ola de cambios caóticos. OpenText , sin embargo, cuenta con la experiencia demostrada y las soluciones tecnológicas para convertir el caos de las pruebas en un orden de ingeniería.

OpenText La arquitectura abierta de Performance Engineering permite realizar pruebas en cualquier protocolo y tipo de aplicación en cualquier entorno de desarrollo. Permite a las partes interesadas, desde desarrolladores hasta analistas empresariales, utilizar numerosas herramientas de proveedores y de código abierto para posibilitar una integración completa de CI/CD a escala. OpenText las integraciones de herramientas proporcionan la capacidad de eliminar rápidamente el tiempo de espera del desarrollo y las pruebas que ralentizan la entrega de aplicaciones. Las integraciones lo consiguen permitiendo la creación rápida de simulaciones realistas de API, condiciones de red y servicios virtuales. OpenText las soluciones de ingeniería de rendimiento se basan en la infraestructura existente en las instalaciones o en la nube y promueven la reutilización de activos para aprovechar las inversiones existentes. Esto ayuda a escalar rápidamente para satisfacer las demandas de pruebas de rendimiento de múltiples aplicaciones en toda la empresa.

Las pruebas de rendimiento tradicionales no empezaban hasta que finalizaban las pruebas funcionales y no empezaban a identificar los defectos y las causas fundamentales hasta el final de las pruebas de rendimiento. OpenText la ingeniería de rendimiento implica la medición continua de extremo a extremo y el análisis de los defectos para identificar la causa fundamental en tiempo real, incluso antes de que finalice la prueba de rendimiento. Los criterios de rendimiento se incluyen en la definición y los requisitos de "hecho". OpenText los análisis en tiempo real ayudan al ingeniero de rendimiento a proporcionar rápidamente información al desarrollador para iniciar la resolución de problemas en una fase temprana del proceso de desarrollo. La monitorización sintética y la monitorización de usuarios reales en producción proporcionan información sobre los problemas de rendimiento que han escapado a las pruebas y que deben solucionarse en la próxima versión. Capture y el análisis de la opinión del usuario final desde la perspectiva del rendimiento proporcionan información más específica a los desarrolladores para optimizar la aplicación y mejorar el rendimiento.

Notas a pie de página