Documentos de Académico
Documentos de Profesional
Documentos de Cultura
III. ENFOQUE DE LA PRUEBA DE ESTRÉS Para realizar las pruebas de estrés, es probable que
Las pruebas de estrés son pruebas de rendimiento utilice como referencia uno o más de los siguientes
enfocadas en la determinación de la robustez de elementos de entrada o insumos:
una aplicación, la disponibilidad y la fiabilidad Los resultados de las pruebas de tensión
bajo condiciones extremas. El objetivo de estas anteriores.
pruebas es identificar los problemas de la Características de uso de aplicaciones
aplicación que pueden darse o ser evidentes sólo (escenarios).
bajo condiciones extremas. Estas condiciones Los supuestos que se saben por la experiencia
pueden incluir cargas pesadas, alta concurrencia, o sobre los escenarios que podrían dar problemas
limitada recursos computacionales. Las pruebas de en condiciones extremas.
estrés bien ejecutadas son útiles en la búsqueda de Características del perfil de carga de trabajo.
errores de sincronización, problemas de bloqueo y La actual capacidad de carga máxima (obtenida
errores de pérdida de recursos. No se espera que el de las pruebas de carga).
sistema procese, por ejemplo, sobrecarga sin los
Hardware y arquitectura de red y datos.
recursos adecuados, pero si se espera que su
Evaluación del riesgo de desastres (por
comportamiento resulte de una manera aceptable,
ejemplo, la probabilidad de apagones,
por ejemplo, no se dañen o pierdan datos.
terremotos, etc.).
Las pruebas de estrés suelen incluir la simulación
de uno o más escenarios clave de producción bajo
Mientras que las salidas de una prueba de esfuerzo
una variedad de condiciones de estrés. Un caso
puede incluir:
sería implementar la aplicación en un servidor que
ya está ejecutando una aplicación de uso intensivo Medidas de la aplicación bajo condiciones de
estrés.
del procesador; de esta manera, las dos
aplicaciones compartirán recursos del procesador. Los síntomas de la aplicación bajo tensión.
Información del o los equipos que puede
3.1. PRUEBAS DE ESTRÉS (Bansode & Meier, utilizarse para hacer frente a la robustez, la
2007) disponibilidad y fiabilidad
Por otro lado, las condiciones de estrés pueden
incluir aspectos como: Los siguientes pasos están involucrados en una
prueba de estrés de una aplicación de base de
Un volumen excesivo en términos de usuarios o datos:
datos; Paso 1 - Identificar objetivos de la prueba.
Reducción de recursos simulando una fallas de Identificar los objetivos de la prueba de esfuerzo
discos. en términos de los resultados deseados de la
Sincronización inesperada. actividad de pruebas.
Apagones inesperados / recuperación Paso 2 - Identificar escenario. Identificar el
interrupción. escenario de aplicación o los casos para probar o
para identificar los problemas potenciales.
Mientras que los síntomas relacionados con el Paso 3 - Identificar la carga de trabajo. Identificar
estrés del sistema incluyen: la carga de trabajo que desea aplicar a los
escenarios identificados como críticos.
Pérdida o daños de datos. Paso 4 - Identificar las métricas. Identificar las
La utilización de recursos sigue siendo métricas que desea recopilar sobre el rendimiento
inaceptablemente alta después de eliminar el de la aplicación.
estrés. Paso 5 - Crear casos de prueba. Crear los casos de
Algunos componentes de la aplicación no prueba en el que se definen los pasos para ejecutar
responde. una sola prueba, así como los resultados esperados.
Paso 6 - Simular carga. Utilice las herramientas de
prueba para simular la carga requerida para cada
caso de prueba y capturar los resultados de los Por lo general, las metodologías empleadas para
datos métricos. este tipo de pruebas responden a técnicas basadas
Paso 7 - Analizar los resultados. Analizar los datos en el método empírico; sin embargo, se establecen
métricas capturados durante la prueba. (Bansode & varias fases contempladas dentro de una estrategia
Meier, 2007) iterativa, donde cada iteración o ciclo genera una
serie de conclusiones y mejoras para aplicar en la
siguiente iteración. Adicionalmente, se requiere de
IV. METODOLOGÍA DE PRUEBAS DE un manejador de pruebas (test driver) el cual se
ESTRÉS encarga de aumentar la carga para cada nueva
Generalmente, las metodologías empleadas para iteración, hasta gradualmente llegar al límite en el
este tipo de pruebas responden a técnicas y cual el desempeño del sistema decae y
prácticas basadas en el método empírico producido complementariamente localizar defectos en el
por simple experimentación. Sin embargo, se software.
establecen varias fases dentro de un esquema Como entradas del manejador de pruebas se
cíclico, donde cada iteración arrojará una serie de requerirá de un módulo de programación que
conclusiones y mejoras para aplicar en la siguiente registre las interacciones del usuario que se envían
iteración. al servidor de transacciones, incluyendo los
valores de los datos introducidos en las pantallas
4.1.OBJETIVOS del servidor transaccional, para poder generar una
Básicamente las metodologías deben perseguir dos prueba que sea adaptada (Weinberg, 2002).
objetivos en común:
Generalmente, una prueba de estrés debe
El objetivo de una metodología de prueba de estrés enmarcarse dentro de las siguientes fases:
es capturar la degradación del desempeño y 1. Preparación del ambiente de pruebas.
exponer los defectos del código interno, debido a 2. Selección de la carga de trabajo.
la combinación de la alta carga de trabajo y 3. Definición de los scripts y escenarios de prueba.
deficiencia en la configuración del sistema. 4. Ejecución de la carga.
5. Medición del desempeño y localización de
Adicionalmente, se pretende seguir un enfoque defectos.
incremental, donde el sistema es probado desde su 6. Definición de mejoras para el afinamiento.
configuración básica y carga normal de trabajo,
hasta llegar a una configuración más compleja y
mayor carga de trabajo, lo cual debe ser realizado
afinando la configuración de forma gradual.
4.2.HIPÓTESIS
Como parte de la metodología se presentan varias
hipótesis, mismas que deben ser comprobadas
(Meira, 2005):
1. Durante la prueba, la variación de la carga de
trabajo transaccional ejercita distintas partes del
código fuente del sistema y permite la
validación de diferentes funcionalidades Figura 2: Ciclo de vida de una prueba de estrés
2. El sistema operativo (OS) no tiene efecto sobre
los resultados de las pruebas, sea que el mismo 5.1. PREPARACIÓN DEL AMBIENTE DE
defecto sea identificado en distintos tipos de OS PRUEBAS
o el consumo de recursos permanece estable a lo Esta fase debe enfocarse en definir los elementos
largo de la prueba. de hardware y software que intervendrán en la
3. El sistema manejador de base de datos DBMS instalación y configuración base del ambiente
no utiliza todos los recursos asignados para la computacional, lo que corresponde principalmente
carga de trabajo utilizada en la prueba. a:
Características de Hardware del servidor central
V. CICLO DE UNA PRUEBA DE ESTRÉS y servidores complementarios (Branch).
Versión de OS, DBMS y aplicaciones de manejador de pruebas, para cada uno de los
servidor, sitio Web, etc. escenarios definidos en la fase anterior. Esta tarea
Plataforma de red y comunicaciones. debe realizarse dentro de una ventana de tiempo
Características de las estaciones de trabajo definida, ejemplo 1 hora. Se debe previamente
haber probado los scripts para que no contengan
5.2. SELECCIÓN DE LA CARGA DE TRABAJO fallas en la ejecución de las transacciones y así no
En esta fase se identifican las transacciones más desvirtuar los resultados.
representativas dentro de la operativa normal del
sistema. Generalmente se hace uso de los logs de 5.5. MEDICIÓN DEL DESEMPEÑO Y
las aplicaciones y de base de datos para obtener la LOCALIZACIÓN DE DEFECTOS
muestra transaccional. Paralelo a la fase de ejecución de la prueba, se
Esta fase es clave para consolidar la conocida incorpora este proceso de medición del desempeño
mezcla transaccional, la cual proveniente de todos e identificación de defectos en el sistema.
los canales de conexión al sistema central y de esta Previamente, es necesario definir ciertos
manera llegar a cubrir la mayor funcionalidad parámetros e indicadores como son los siguientes:
posible. Promedio de CPU utilizado.
Adicionalmente, es también factible determinar la Picos de uso de memoria.
meta transaccional a la cual se quiere llegar. Cantidad de operaciones de I/O.
Cantidad de transacciones por segundo (TPS)
5.3. DEFINICIÓN DE SCRIPTS Y ESCENARIOS Porcentaje de errores.
DE PRUEBA Tiempo promedio, máximo y mínimo de
Dentro de esta fase, se definen los scripts de respuesta.
pruebas que contemplan el detalle de ejecución de Tiempos muertos y períodos de latencia.
la carga y su secuencia. Para ello se utilizan Transacciones con tiempos más elevados.
mecanismos como un manejador de pruebas o bien Cantidad de bloqueos entre procesos
llamados test drivers (Meira, 2005). Entre otros
aspectos se configura este manejador con la Definidos estos índices y parámetros, se recurre a
cantidad de transacciones, número de ejecuciones herramientas especializadas para monitorear el uso
por transacción, intervalos de ejecución, de recursos durante la ventana de tiempo de la
funcionalidades que se van a probar, entre otros. ejecución.
Por otro lado, los escenarios de prueba contemplan Como tarea adicional, se intenta localizar defectos
la configuración misma del sistema, lo que en las aplicaciones que bajo cargas normales no se
involucra tomar factores como: pudieran presentar. Estos defectos o errores
Versiones de la plataforma: OS, DBMS, pueden clasificarse dependiendo de su origen en
Aplicaciones de servidor, entre otros. DBMS o aplicaciones; además se debe identificar
Cantidad de procesadores, cores o thread el nivel de impacto que ellos generan, el cual puede
asignados al motor de base de datos. ser bajo, medio y alto.
Cantidad total de memoria RAM disponible.
Subsistema de I/O, tipo de discos, espacio 5.6. DEFINICIÓN DE MEJORAS
disponible. Primeramente, se debe hacer una evaluación del
Configuración de memoria RAM asignada al resultado de la prueba para determinar si la
manejador de base de datos, así como los caches configuración actual ha soportado la carga de
de datos. trabajo. Si no es así entonces se toma con mayor
Configuraciones adicionales al DBMS importancia el análisis de resultados a fin de ajustar
Configuración de los aplicativos el ambiente para el próximo ciclo con una mayor
carga.
La configuración básica que se determina en esta Con ello, los resultados obtenidos en la fase de
fase corresponde a la línea base, sobre la cual se va monitoreo permitirán realizar análisis extensos e
a comparar con los siguientes ciclos. intensificarlos según sea su impacto, los cuales
puedan generar recomendaciones a fin de:
5.4. EJECUCIÓN DE LA CARGA Indicar los ajustes de afinamiento a la
Corresponde a la ejecución de los scritps de prueba configuración del sistema en todos sus
a través de los mecanismos provistos por el elementos: OS, DMBS, aplicaciones.
Determinar los cuellos de botella en alguno de Crear un ambiente computacional que
los componentes que conforman el sistema; y comprenda todos los elementos de la
optimizar los parámetros de configuración arquitectura del sistema que se desea probar; de
relacionados. manera que se refleje el sistema productivo con
Identificar programas o aplicaciones que tienen las características de hardware y software.
graves falencias de optimización, llegando a La selección de la carga de trabajo
determinar un plan de afinamiento de los transaccional, así como la mezcla transaccional
mismos. debe ser muy representativa, sugiriendo que un
porcentaje mayor o igual al 80% de las
Una vez determinadas las mejoras, se debe transacciones correspondan a aquellas más
elaborar un plan de ajustes para el nuevo ciclo de recurrentes y que tienen mayor impacto.
prueba de estrés, contemplando el incremento de la Si se trata de un sistema actual de producción,
carga se considera otro factor clave en enfocarse en
una muestra proveniente de una hora pico en
VI. IDENTIFICACIÓN DE FACTORES días de alta carga, por ejemplo un sistema de
CRÍTICOS ventas en festivos, sistema de pagos en fin de
A fin de cumplir con los objetivos de la mes, etc.
metodología y de la prueba en sí, se deben Incluir todos los canales que invocan
identificar varios factores críticos que afectan en el transacciones al sistema central, incluyendo
éxito de esta consecución, pero sobre todo en evitar procesos en línea y procesos batch, a fin de
desviaciones o desvirtuar la prueba y sus simular un escenario real. Esto es definitivo a
resultados. fin de contar con todos los elementos que
puedan incidir en los resultados.
6.1. FACTORES PRELIMINARES La calidad del universo de datos que se van a
Los siguientes puntos se enmarcan dentro de los utilizar como insumos de la prueba debe
aspectos preliminares a tomar en cuenta antes de corresponderá a datos consistentes e íntegros
iniciar un proceso de pruebas de estrés: para disminuir la probabilidad de errores de
ejecución de las transacciones.
El primer punto importante es entender que se
trata de un proceso donde existen varios ciclos 6.3. FACTORES INTRINSECOS
(iteraciones), hasta llegar progresivamente al Propiamente hablando ya de la ejecución de la
límite de la capacidad del sistema en cuestión. simulación, es importante resaltar los siguientes
Sin embargo, para sustentar la correcta factores como críticos a fin de lograr resultados
ejecución de la prueba es necesario tener las consistentes y valederos:
siguientes consideraciones:
La definición de un objetivo claro al llevar a Es indispensable realizar un monitoreo en el uso
cabo la ejecución de este tipo de pruebas y el de recursos del equipo y verificar si se está
aporte al mejoramiento del rendimiento del llegando al límite del desempeño, incluyendo
sistema de producción, es un punto vital antes signos de problemas o defectos que puedan
de iniciar este proceso. mostrarse bajo estas condiciones de alta carga.
Conformar un equipo técnico multidisciplinario El análisis de los resultados obtenidos durante la
que comprenda principalmente administrador prueba, para la obtención de métricas (índices e
de plataforma, administrador de base de datos, indicadores) fiables que identifiquen el grado de
arquitectos y programadores de aplicaciones, disponibilidad y productividad del ambiente, es
los cuales ponga toda su experiencia y criterio requerido para determinar si se está llegando al
para llevar a cabo esta prueba y sobre todo límite de las prestaciones.
analizar sus resultados. Finalmente, con los resultados obtenidos, se
debe comprobar si no se ha llegado al límite de
6.2. FACTORES TECNICOS las capacidades del sistema; con lo cual se
Los siguientes son aspectos netamente técnicos a puede realizar los ajustes a la configuración del
ser considerados propiamente como insumos para ambiente, a fin de preparase una vez más para
las pruebas de estrés: un nuevo escenario en el cual se aumentará la
carga.
Meira, J. e. (2005). Stress Testing Of Transactional
VII. CONCLUSIONES Database Systems. Journal of Information and
1. La ejecución de una prueba de estrés viene Data Management.
delineada por factores que se aplican en
cada paso dentro de las fases de su ciclo de Molyneaux, I. (2009). The Art of Application
vida. Estos factores son definitivos para Performance. United States of America:
garantizar la efectividad de los resultados O’Reilly Media.
de la prueba y no desvirtuar ninguno de los
análisis que tienen por finalidad ajustar la Myers, G. J. (2004). The Art of Software Testing 2nd
configuración del sistema para altas cargas Edition. New York.
de trabajo.
2. Una estrategia iterativa e incremental prevé Pressman, R. (2010). Ingenieria del software. Un
que en cada nueva iteración o ciclo se enfoque practico. McGraw Hill.
manejen mayores volúmenes de carga, con
lo cual el sistema se comportará con una Scarlart, Y. e. (2002). Service for Load Testing a
menor medida de su desempeño normal, Transactional Server Over The Internet.
siendo el monitoreo en los distintos
elementos, el que determine donde está el o Weinberg, A. e. (2002). Software System And
los puntos donde se quiebra el sistema bajo Methods For Testing The Functionality Of A
estas cargas. Transactional Server.
3. La simulación de una carga de trabajo, bajo
condiciones normales debe incluir todos
los elementos del sistema de producción,
esto se refiere a todos los canales que se
comunican con el sistema central, a fin de
no dejar de lado componentes que pueden
resultar cuellos de botella bajo altas cargas.
4. Generalmente, las pruebas de estrés no se
llevan a cabo bajo un marco riguroso, por
lo cual, este estudio al menos pretende que
se tome en cuenta los aspectos claves de la
misma, para que los resultado no se
desvirtúen y reflejen el comportamiento del
sistema bajo altas cargas de trabajo.
5. Las bases de este estudio, permiten que
futuros trabajos puedan ahondar en estos
criterios; más aún, acorde a las nuevas
tecnologías se pueda identificar nuevos
criterios de éxito para el desarrollo
efectivos de las pruebas de estrés.
BIBLIOGRAFÍA
Bansode, P., & Meier, J. (2007). Performance Testing
Guidance for Web Applications.