Performance Testing

Quisiera empezar con las definiciones básicas utilizadas en todo lo referido a las pruebas de carga y performance Testing (Performance & Load Testing).

Performance Testing

Definición según la IEEE:
“El grado en que un sistema o componente realiza sus funciones designadas dentro de las limitaciones dadas, tales como la velocidad, precisión, o el uso de la memoria.”

Enfocadas en ¿Cuanto? y ¿Que tan rápido? funciona la aplicación, no se hace juicio de la aplicación solo se mide y analiza.

Durante estas pruebas no se busca encontrar errores, pero si se busca enfocarse en procesos individuales de la aplicación  (Base de Datos, Algoritmos, Red, etc…) en busca de probables cuellos de botella (Les dejo una presentación sobre esto realizada por Scott Barber) y poder determinar una base a considerar en futuros cambios de la aplicación.

Se considera como principal objetivo, predecir anticipadamente problemas de rendimiento y degradación de recursos del sistema antes de su paso a producción y así facilitar su corrección.

Puede implicar pruebas cuantitativas realizadas en un laboratorio (tiempo de respuesta de la aplicación, rendimiento, etc ..) así como  también pruebas cualitativas como confiabilidad, escalabilidad y la interoperabilidad.

Se espera que las pruebas se realicen sobre una aplicación estable sonde sea posible la ejecución de los distintos escenarios que se consideren críticos (telemarketer que necesita información rápidamente para poder realizar la venta) o frecuentes (lo que implica mayor cantidad de usuarios concurrentes y una necesidad de disponibilidad de la aplicación) desde el lado del negocio. Además es vital tener objetivos claros para poder definir correctamente las métricas que vamos a utilizar y como las vamos a utilizar.

Performance Validation es la etapa donde se apunta a medir si se cumplen con los requerimientos establecidos por el cliente, donde se juzga los resultados medidos y analizados para poder determinar el porque y como solucionar estos. Se estima que en el 80 % de los casos los problemas de performance se deben a una incorrecta elección de la arquitectura de la aplicación. Para prevenir estos  casos existe PASA (Ver).

Performance Engineering es la etapa final donde se realizan los cambios necesarios (tunning) para alcanzar lo esperado por la aplicación, esto puede incluir cambios de codigo, hard o red entre los principales para luego ser testeado nuevamente.

Les dejo una presentación que realice sobre Performance Testing, pueden bajarla aqui

Conceptos más puntuales:

Availability:  El grado en que un sistema es funcional, estable y eficiente. Se mide por el tiempo de funcionamiento (el tiempo entre fallos).

Baseline: Referencia del rendimiento del sistema utilizada para comparar el rendimiento contra otras / pruebas de carga.

Capacity Planning: La medición, la previsión y la planificación para el crecimiento del sistema en el tiempo.

Latency: El tiempo de retraso entre el momento en que se inicia una transacción y el momento en que se completa. A veces se denomina tiempo de respuesta en forma incorrecta, ya que forma parte del tiempo de respuesta latency + Processing Time= Response time pero no es igual al tiempo de respuesta.

Load: La cantidad de demanda o de trabajo en un sistema. Para una aplicación web, esto significa transacciones de usuarios concurrentes o conexiones.

Reliability: La capacidad de un sistema para ser funcional, estable y eficiente, tanto en circunstancias de rutina como en condiciones adversas.

Scalability: La capacidad de un sistema para crecer a la par de la carga sobre este o  de incrementar su capacidad. Esta se mide por los cambios de uso de recursos como unidades de trabajo al crecer en número o tamaño. El último objetivo es que el rendimiento tenga una escalabilidad lineal, lo que significa que el rendimiento disminuye a un ritmo constante en relación con la carga.

Test Harness: Un programa informático utilizado para realizar pruebas y recoger los resultados.

Throughput: La tasa de operaciones por unidad de tiempo.

Virtual User: Un usuario creado para aplicar la carga a un sistema. Cada usuario virtual simula las acciones reales de los usuarios mediante el envío de peticiones HTTP a un servidor de la misma manera que un cliente.

Bottleneck: Punto donde la congestión y los retrasos se producen en una aplicación, ralentizando la tramitación de las solicitudes y causando que los usuarios experimenten retrasos inaceptables en el servicio.

Profiling: Recolección de datos sobre el funcionamiento de la aplicación. Ejemplos Jprofiler, JProbe, JXInsight y dynaTrace.

Anuncios

15 comentarios en “Performance Testing”

  1. Muy bueno!!!!
    Nos ayudarías mucho si pudieras subir el glosario completo de la ISTQB en castellano o si existe un link compartelo por favor, muchas gracias!!!

    Me gusta

  2. Hola!!! No volviste a postear nada, estas bien verdad? Espero que todo bien por tu vida, ya que me gustan mucho tus articulos.

    Saludos desde Colombia-Bogotá D.C

    Me gusta

    1. Javier,

      Gracias por la preocupación!!!

      En realidad estoy con bastante trabajo (por suerte 😀 ) y no he podido dedicarle el tiempo que quisiera al blog, en estos días voy a estar posteando sobre Selenium 2 un tutorial que vengo armando de a poco ;).

      Muchas Gracias por el apoyo,

      José

      Me gusta

  3. Recién hoy descubrí tu Blog, me parecen muy interesantes los temas que tratas, estaré por aquí seguido haciendo lectura de tus posts.

    Un saludos cordial y mis mas sinceras felicitaciones

    Me gusta

  4. Buenas tardes,

    Una pregunta para saber si se puede especificar con Jmetter,

    necesitariamos realizar un servidor en el que se reciban peticiones https (no que las generemos) y poder contestar a dichas peticiones recibidas.

    Si se puede me pueden reenviar al link correspondiente, no doy con ello en la ayuda.

    No queremos grabar un escenario y luego reproducirlo como hemos hecho con el Servidor Proxy Http.

    Muchas Gracias por adelantado

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Articulos y Herramientas de Testing, pero en Español

A %d blogueros les gusta esto: