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.
http://josepablosarco.wordpress.com/performance-testing/
El sector del Testing de Software está en constante evolución. Sin embargo, algunos aspectos profesionales como la situación salarial son poco conocidos. A menudo, en las escalas profesionales se olvida el puesto de tester o QA mientras es más popular el de programador, por citar un ejemplo.El objetivo de esta segunda encuesta es situar en el mapa la figura del Tester o del QA y cómo está valorado en la escala salarial respecto a otras profesiones. Por ello, agradecemos a todas las personas que han participado en ella.Esta encuesta se ha realizado en línea entre el 1º de febrero de 2013 y el 15 de marzo de 2013. La encuesta se difundió dentro de los medios afines al Software Testing, en las redes sociales, y en las redes de los organizadores de la encuesta.Los resultados presentados a continuación se limitan a las respuestas de personas trabajando en España, por las cuales se han obtenido un número de datos estadísticamente relevantes. Se han eliminado las respuestas incompletas o dudosas en cuanto a la validez de los datos.
Este trabajo es el resultado de la encuesta promovida nexo QA, ATI (Asociación de Técnicos Informáticos) y SoftQANetwork.
Se recibieron numerosas respuestas de
muchos países, pero no en un número suficientemente representativo como
para poder sacar conclusiones en terceros países.
No obstante este último comentario publicado en el site de SoftQANetwork, administrado por Javier Fernández-Pello Alvargonzález,
es muy válida esta iniciativa ya que marca un punto de inflexión entre
lo desconocido y ahora, lo conocido, por así decirlo en cuanto a
salarios de nuestra actividad.
Enlace a la Encuesta:
https://docs.google.com/file/d/0B7lIfBS4SE-KYkxpZHNTbkY0MXc/edit?usp=sharing
https://docs.google.com/file/d/0B7lIfBS4SE-KYkxpZHNTbkY0MXc/edit?usp=sharing
Ahora bien, ¿Qué les parece si hacemos una encuesta similar para Argentina? ¿Me ayudarían?
Comenzaré a prepararlas sobre esta base y las difundiré dentro de la red LinkedIn, donde se encuentra además nuestro Grupo de Discusión TESTING & QA,
para permitir mayor recepción y colaboración de sus miembros, ya que la
comunidad desde el 2009 ha crecido lo suficiente como para que tenga
recepción este tipo de noticia.
http://testingbaires.com/informe-sobre-sueldos-de-los-testers-en-espana/