Pruebas de Desempeño

Anuncio
Pruebas de Desempeño
Bárbara Espinoza
Vanessa Quintas
Alexandra Vega
1
Pruebas de desempeño
†
†
†
†
†
¿Qué son?
Objetivo
Cómo analizar el desempeño
Tipos de pruebas
Consideraciones finales
2
¿Qué son las pruebas de
desempeño?
† Son un tipo de pruebas que permiten
analizar y evaluar las características
del software relacionadas con el
desempeño, por ejemplo:
„ Tiempos de respuesta
„ Throughput (tasa de atención de
peticiones)
„ Capacidad (máximo trabajo útil por
unidad de tiempo)
[RUP]
“Performance testing is a class of tests implemented and executed to characterize
and evaluate the performance-related characteristics of the target-of-test, such as
the timing profiles, execution flow, response times, and operational reliability and
limits. Different types of performance tests, each focused on a different test
objective, are implemented throughout the software development lifecycle (SDLC)”.
[Prof. Curiel]
Tiempo de Respuesta: es el intervalo de tiempo que transcurre entre la solicitud
de un usuario al
sistema y la respuesta de este último.
Throughput: es la tasa a la cual el sistema puede atender las peticiones.
Capacidad: Máxima cantidad de trabajo útil que se puede realizar por unidad de
tiempo.
3
Objetivo de las pruebas de
desempeño
† El objetivo de las pruebas de
desempeño es verificar y validar los
requisitos de desempeño que se han
especificado.
4
¿Cómo analizar el desempeño?
1. Se evalúan los resultados de una
prueba para un actor o un caso de
uso comparándolo con varias
ejecuciones de la misma.
2. Se examinan las estadísticas
resumidas recaudadas para un actor
o caso de uso en busca de
indicadores de variabilidad de las
respuestas del sistema.
[RUP]
The first level of performance analysis involves evaluating the results for a single
actor or use-case instance and comparing the results across several test
executions; for example, capturing the performance behavior of a single actor
performing a single use case without any other activity on the target-of-test and
comparing the results with several other test executions of the same actor or use
case. This first-level analysis can help identify trends that could indicate contention
among system resources, which may affect the validity of the conclusions drawn
from other performance test results.
A second level of analysis examines the summary statistics and actual data values
for specific actor or use-case execution, and the target-of-test's performance
behavior. Summary statistics include standard deviations and percentile
distributions for the response times, which provide an indication of the variability in
system responses as seen by individual actors.
A third level of analysis can help in understanding the causes and significance of
performance problems. This detailed analysis takes the low-level data and uses
statistical methods to help testers draw correct conclusions from the data. Detailed
analysis provides objective and quantitative criteria for making decisions, but it's
more time consuming and requires a basic understanding of statistics.
5
¿Cómo analizar el desempeño?
3. Se utilizan métodos estadísticos con
el fin de obtener conclusiones acerca
del desempeño del sistema,
comprender sus causas y su
importancia.
6
Tipos de pruebas de desempeño
†
†
†
†
Pruebas
Pruebas
Pruebas
Pruebas
de
de
de
de
benchmark
stress
perfil de desempeño
carga
[RUP]
The following types of tests are included in Performance Testing:
Benchmark testing: Compares the performance of new or unknown target-of-test
to a known reference standard, such as existing software or measurements.
Contention test: Verifies the target-of-test can acceptably handle multiple actor
demands on the same resource (data records, memory, and so forth).
Performance profiling: Verifies the acceptability of the target-of-test's performance
behavior using varying configurations while the operational conditions remain
constant.
Load testing: Verifies the acceptability of the target-of-test's performance behavior
under varying operational conditions (such as number of users, number of
transactions, and so on) while the configuration remains constant.
Stress testing: Verifies the acceptability of the target-of-test's performance
behavior when abnormal or extreme conditions are encountered, such as
diminished resources or an extremely high number of users.
7
Pruebas de Benchmark
† Comparan el desempeño del sujeto
de prueba con el de un sistema y
carga de trabajo de referencia.
† Benchmark es sinónimo de carga de
prueba: programas utilizados para
cargar el sistema y medir el
rendimiento del sistema o de partes
de éste.
[RUP]
Benchmark test: A type of performance test that compares the performance of a
new or unknown target-of-test to a known reference-workload and system.
8
Pruebas de Benchmark
† Cada benchmark se concentra en un
aspecto distinto del desempeño y se
debe escoger el adecuado a cada
caso:
„
„
„
„
„
Uso intensivo del CPU.
Uso intensivo de disco.
Uso intensivo de memoria.
Representación gráfica
Otros…
[Prof. Ignacio Casas]
Si el ambiente planeado va a dedicarse al cálculo numérico o al análisis estadístico
(uso intensivo de CPU), no se puede tomar una decisión en base a benchmarks de
bases de datos (uso intensivo de discos) o de representación gráfica.
9
Pruebas de Stress
† Permiten verificar la aceptabilidad del
desempeño del sistema ante
condiciones anormales o extremas:
„ Volumen de usuarios/transacciones
extremadamente alto
„ Recursos escasos:
† Poco ancho de banda
† Memoria reducida
† Espacio en disco reducido
Verifies the acceptability of the target-of-test's performance behavior when
abnormal or extreme conditions are encountered, such as diminished resources or
an extremely high number of users.
10
Pruebas de Stress
† En realidad las condiciones de stress
no se espera que sucedan en la
realidad.
† Estas pruebas también permiten
documentar las condiciones bajo las
cuales el sistema falla: límites.
11
Pruebas de perfil de desempeño
† Enfocadas a monitorear el
comportamiento de una aplicación en
ejecución con el fin de conocer dónde
invierte su tiempo:
„ Acceso a a datos
„ Llamadas a un procedimiento
„ Llamadas al sistema
† Permiten identificar cuellos de botella
y procesos ineficientes
[RUP]
A test in which the target-of-test's timing profile is monitored, including execution
flow, data access, function and system calls to identify and address both
performance bottlenecks and inefficient processes.
[Edu Metz]
Performance profiling is the means of determining
where a software system spends its execution time. It uses
trace instrumentation to gather event data. Various types
of event information can be obtained with traces, such as
component entry and exit, function calls, software
execution states, message communication, resource usage,
etc.
12
Herramientas de perfil de
desempeño
† Una herramienta de perfil de
desempeño:
„ Corre la aplicación en un ambiente
controlado
„ Realiza una traza de su flujo de
ejecución
„ Retorna un reporte del consumo de
tiempo y memoria.
[Linux Journal]
Performance profiling runs your code in a controlled environment and returns a
report listing such statistics as time spent within each function, how long each
database query takes and how much memory has been used.
By doing performance profiling on your code, you quickly can see where you may
be wasting time with slow database queries or inefficient code. Having this
information then allows you to spend your time tuning PHP and SQL where it needs
it most. No more guessing what's going on internally: performance profiling gives
you hard figures.
13
Pruebas de carga
† Permiten verificar y validar el desempeño
de un elemento de un sistema bajo
diferentes condiciones de carga:
„ Número de usuarios
„ Número de transacciones
† Son importantes cuando los sistemas
deberán soportar un gran volumen de
usuarios o transacciones concurrentes
[RUP]
The Load Testing process component is concerned with the process of testing
software under emulated production transaction and user loading.
Load Testing is an important concern in software that will support large transaction
or user volumes.
14
Pruebas de carga
† Se utilizan simulaciones de cargas de
trabajo promedio y pico dentro de los
niveles normales.
† Deben ser realizadas bajo condiciones
controladas para asegurar la precisión
de las medidas tomadas:
„ Tiempo de respuesta
„ Throughput
A type of performance test used to validate and assess acceptability of the
operational limits of a system under varying workloads while the system-under-test
remains constant. In some variants, the workload remains constant and the
configuration of the system-under-test is varied. Measurements are usually taken
based on the workload throughput and in-line transaction response time. The
variations in workload usually include emulation of average and peak workloads that
occur within normal operational tolerances.
15
Consideraciones finales
† Las pruebas de desempeño son muy
senbibles a las condiciones sobre las
cuales se aplican. Se debe ser
cuidadoso al:
„ Elegir la carga de trabajo.
„ Considerar/ignorar los distintos
parámetros que intervienen:
† Variaciones en el ambiente
† Intervención de herramientas de monitoreo
„ Realizar el análisis de los resultados.
16
Bibliografía
† Rational Unified Process. Versión
2003.06.00.65
† Prof. Mariela Curiel. Introducción a la Evaluación del
Desempeño de Sistemas Informáticos.
† Edu Metz, Efficient Instrumentation for Performance
Profiling.
http://www.cs.nmsu.edu/~jcook/woda2003/papers/M
etz.pdf
† PHP Performance Profiling, Linux Journal.
http://www.linuxjournal.com/article/7213
† Prof. Ignacio Casas. Técnicas de Pruebas de Cargas.
http://cursos.puc.cl/html/iic35321/almacen/20050222173726_Trans7x1BN_sec1.PDF
17
Descargar