Buenas prácticas en el diseño de pruebas de rendimiento

LIBP-0075 (Libro de pautas)

A continuación se enumera una serie de buenas prácticas a la hora de diseñar, realizar y planificar las pruebas de rendimiento sobre una aplicación.

Las pruebas de rendimiento pueden servir para diferentes propósitos.

  • demostrar que el sistema cumple los criterios de rendimiento.

  • comparar dos sistemas para encontrar cual de ellos funciona mejor.

  • medir que partes del sistema o de carga de trabajo provocan que el conjunto rinda mal.

Para su diagnóstico, los ingenieros de software utilizan herramientas como pueden ser monitorizaciones que midan qué partes de un dispositivo o software contribuyen más al mal rendimiento o para establecer niveles (y umbrales) del mismo que mantenga un tiempo de respuesta aceptable.

Pautas

TítuloCarácter
Detección temprana de erroresObligatoria
Equipo para las pruebas de rendimientoObligatoria
Fiabilidad de las pruebas.Obligatoria
Cualificación del personalObligatoria
HerramientasObligatoria
Pruebas de cargaRecomendada
Pruebas de estrésRecomendada
Pruebas de estabilidadRecomendada
Pruebas de picosRecomendada

Detección temprana de errores

Planificar las tareas que tienen que ver con el rendimiento como cualquier otra tarea paralela al desarrollo de la aplicación con objetivos y metas

No tiene sentido realizar las pruebas de rendimiento una vez que entregan el producto al cliente y el cliente se queja por los tiempos de respuesta altísimos de la aplicación.

Las pruebas de rendimiento pueden realizarse sin que la aplicación esté estable o esté terminada la interfaz de usuario. En general, cerca del 80% de las veces, los problemas de rendimiento residen en la arquitectura o tecnología adoptadas. Para poder visualizar estos problemas y tratar de darles solución es recomendable planificar las tareas de rendimiento como cualquier otra tarea paralela al desarrollo de la aplicación con objetivos y metas, las cuales pueden ser administradas.

Equipo para las pruebas de rendimiento

Formar un equipo especializado que realice las pruebas de rendimiento

Es necesario organizar un equipo de testing formado tanto por expertos en testing así como personas encargadas del desarrollo de la aplicación que cooperen para detectar los problemas y proponer posibles soluciones.

Fiabilidad de las pruebas.

Garantizar que en el servidor de aplicaciones no haya ninguna otra aplicación desplegada

Para obtener unos resultados lo más reales posibles, es necesario garantizar que en el servidor de aplicaciones no haya ninguna otra aplicación desplegada, ya que esta puede consumir recursos e interferir en los resultados de las pruebas.

Cualificación del personal

Asignar personal cualificado a la ejecución de las pruebas

Es necesario conocer los conceptos estadísticos, técnicos y metodológicos de testing enfocado a pruebas de rendimiento antes de empezar a utilizar las herramientas y simular las diferentes pruebas que se quieran realizar.

En muchas ocasiones se intenta llegar a la práctica antes de conocer la teoría. Este problema siempre se destaca en el momento de querer analizar los resultados que la herramienta nos da, ya que no somos capaces de interpretar los resultados, ni capaces de determinar si la aplicación ha superado o no las pruebas.

Herramientas

Medir el costo/beneficio de cada una de las herramientas disponibles a partir de los requerimientos

En las pruebas de rendimiento la elección de la herramienta se debe basar en los requerimientos que tengamos. A partir de los requerimientos debemos medir el costo/beneficio de cada una de las herramientas disponibles para determinar la que nos permite cubrir nuestros requerimientos en tiempo y forma. Madeja realiza recomendaciones para cubrir los aspectos fundamentales y para motorizar el rendimiento.

Pruebas de carga

Realizar pruebas de carga, siempre que el tipo de aplicación lo requiera

Siempre que el tipo de aplicación lo requiera, será aconsejable realizar pruebas de carga, que proporcionan información del funcionamiento de la aplicación ante una carga de trabajo esperado.

Pruebas de estrés

Realizar pruebas de estrés, siempre que el tipo de aplicación lo requiera

Siempre que el tipo de aplicación lo requiera, será aconsejable realizar pruebas de estrés que sirven para determinar la solidez de la aplicación en los momentos de carga extrema y ayuda a determinar si la aplicación rendiría lo suficiente en caso de que la carga real supere a la carga esperada.

Pruebas de estabilidad

Realizar pruebas de estabilidad, si el tipo de aplicación lo requiere

Siempre que el tipo de aplicación lo requiera, será aconsejable realizar pruebas de estabilidad que determinan si la aplicación puede aguantar una carga esperada continuada de trabajo

Pruebas de picos

Realizar pruebas de picos, si el tipo de aplicación lo requiere

Siempre que el tipo de aplicación lo requiera, será aconsejable realizar pruebas de pico de que observan el comportamiento del sistema variando el número de usuarios, tanto cuando bajan, como cuando tiene cambios drásticos en su carga.