Buenas prácticas en el diseño de pruebas de rendimiento
- Área: Verificación de Entrega Software
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
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ítulo | Carácter |
---|---|
Detección temprana de errores | Obligatoria |
Equipo para las pruebas de rendimiento | Obligatoria |
Fiabilidad de las pruebas. | Obligatoria |
Cualificación del personal | Obligatoria |
Herramientas | Obligatoria |
Pruebas de carga | Recomendada |
Pruebas de estrés | Recomendada |
Pruebas de estabilidad | Recomendada |
Pruebas de picos | Recomendada |
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.