Está en la página 1de 9

FACTORES CRÍTICOS EN PRUEBAS DE ESTRÉS EN

SISTEMAS DE INFORMACIÓN TRANSACCIONALES


Simba Germán, Soto Sandro, Gómez Estevan
Dirección de Postgrados; Escuela Politécnica del Ejército, Sangolquí, Ecuador
germansimba@hotmail.com; sandrosoto@hotmail.com , estevan.gomez@ute.edu.ec

methodologies and testing of real situations, which


Resumen leave a precedent to implement them and to any
El presente trabajo se produce por la necesidad de other type of additional study.
conocer y comprender los límites del desempeño
en los sistemas informáticos transaccionales, bajo Keywordse: Stress Testing, Trasactional
un enfoque de identificar los factores críticos Information System, Workload, performance.
dentro de las pruebas de estrés de dichos sistemas.
Con el creciente uso del Internet y las aplicaciones
móviles, los sistemas convencionales han visto I. INTRODUCCIÓN
incrementar considerablemente su volumen
transaccional debido a la popularidad en el uso de Cuando se habla del correcto funcionamiento de
estos canales. Se pretende realizar una revisión del una aplicación se debe tener en cuenta la suma de
Estado del Arte en cuanto a pruebas de estrés, por la totalidad de sus componentes. A un alto nivel
lo que se ha recurrido a varios autores que han podemos definir estos componentes como como el
generado grandes aportes en este tema para lograr software de la aplicación y los servidores
determinar varias conclusiones y sugerencias a la necesarios para ejecutar el software, así como la
hora de montar una fase de pruebas de estrés. Los infraestructura de red que permite que los
resultados de esta investigación bibliográfica han componentes se comuniquen. Si cualquiera de
sido satisfactorios, ya que tienen su basamento en estas áreas tiene problemas, el rendimiento de la
metodologías y experimentación de situaciones aplicación es probable que no sea el necesario o el
reales, los cuales dejan un precedente para ponerlas aceptado.
en práctica y ante cualquier otro tipo de estudio que Se podría pensar que todo lo que necesitamos hacer
se desee complementar. para asegurar un buen rendimiento de las
aplicaciones que se observe el comportamiento de
Palabras clave: pruebas de estrés, sistemas cada una de estas áreas bajo carga y el estrés y
transaccionales, carga de trabajo, desempeño. corregir cualquier problema que ocurra. La
realidad es muy diferente, porque este enfoque es
Abstract a menudo "demasiado poco, demasiado tarde" y
por lo que terminan hacer frente a los síntomas de
This work has been produced by the need to know los problemas de rendimiento antes que la causa.
and understand the limits of performance in
transactional information systems, with a focus on “La mala realización de las pruebas a un sistema
identifying the critical factors in stress testing of crea un costo neto de tiempo, dinero, y la pérdida
such systems. With the increasing use of Internet de prestigio en los usuarios de la aplicación y por
and mobile applications, conventional systems lo tanto no se pueden considerar confiables. Si una
have considerably increased its transactional aplicación es causa una sensación de beneficios,
volume due to popularity in the use of these su continuidad está definitivamente en terreno
channels. Thus, it has resorted to several authors, inestable, sin mencionarla de los arquitectos,
who have generated great contributions in this diseñadores, programadores y probadores”
issue, in order to get some conclusions and (Molyneaux, 2009)
suggestions determine when mounting a stress test
phase. The results of this work has been El 2013 en el JavaOne 2013, Adam Bien, explicó
satisfactory, as they have their foundation in que la mayoría de las pruebas no se realizan bajo
condiciones del mundo real. Menciona que
importancia de las pruebas comienza después de única fase al final del ciclo, los errores pueden
que las pruebas de unidad e integración han generar costos exorbitantes. Por lo tanto, las
evaluado que las funciones trabajen por su cuenta pruebas no deberían estar aisladas como una
–ahí es donde comienzan las pruebas de esfuerzo actividad de control. Más bien, las pruebas deben
(o estrés) del software. “Las pruebas de esfuerzo estar presentes en todo el ciclo de desarrollo del
encuentran fallas en la aplicación que simplemente software para llegar a un producto de calidad. El
no se mostrarían en una sola instancia, el objetivo Modelo en V ayuda a visualizar las actividades del
se centra en determinar o validar características de proceso de desarrollo y la correspondencia con las
rendimiento del sistema o aplicación bajo prueba actividades del proceso de pruebas durante el ciclo
cuando se someten a condiciones superiores a los de vida del desarrollo del software. Este modelo
previstos durante las operaciones de producción. representa la secuencia de pasos del desarrollo
Las pruebas de estrés también pueden incluir describiendo las actividades y resultados que se
pruebas centradas en determinar o validar producen. El lado izquierdo representa la
características de rendimiento del sistema o descomposición de los requerimientos y la
aplicación cuando se somete a otras condiciones de creación de las especificaciones del sistema. El
estrés, como la memoria limitada, suficiente lado derecho representa la integración de las partes
espacio en disco, o falla en el servidor. Estas y su verificación.
pruebas están diseñadas para determinar en qué
condiciones una aplicación fallará, cómo va a
fallar, y qué indicadores pueden ser monitoreados
para advertir de un fracaso inminente.”
Tener un plan de pruebas crea confianza en la
calidad de productos y disminuye los lanzamientos
fallidos.
Finalmente, un problema que comúnmente las
empresas se encuentran hoy en día, es con la
necesidad de probar en un corto plazo sus sistemas
bajo nuevas condiciones; por ejemplo, un sitio
Web u otro sistema basado en Internet. Este
problema generalmente se presenta cuando una
empresa está a punto de desplegar en su sitio Web Figura 1: Modelo en V del proceso de desarrollo
nuevas aplicaciones, o crear más servicios dentro
de él, por ejemplo su servicio de comercio Para esto es importante saber los distintos de
electrónico (Scarlart, 2002) pruebas existes.
Con base a esto, se inicia el presente estudio a fin
de localizar los factores críticos de éxito que 2.1. PRUEBAS DINÁMICAS VS ESTÁTICAS
permitan llegar a probar los límites en la capacidad
de los sistemas de información transaccionales. 2.1.1. Dinámicas._Proporciona información en
tiempo de ejecución sobre el funcionamiento de un
II. MARCO TEÓRICO software. Se logra a través de la instrumentación
del programa de prueba. (Martìnez, 2010)
La fase de pruebas es, a veces, incorrectamente En el tipo de pruebas dinámicas se hacen pruebas
pensada como una actividad a realizar después de al comportamiento de la aplicación. Esto es, se
que el desarrollo está terminado. Lo correcto sería revisa la respuesta física del sistema a variables
pensar que las pruebas sean realizadas en cada que no son constantes y cambian con el tiempo. En
etapa de desarrollo del producto. ellas el software debe ser ejecutado basándose en
unos casos de prueba. Adicionalmente, implica
El desarrollo tiene las siguientes etapas "Análisis trabajar con el software, dada unas entradas
de Requerimientos", "Diseño", "Programación / iniciales se valida si la salida es la esperada.
Construcción" y "Operación y Mantenimiento" Las pruebas unitarias, las pruebas de integración,
(Pressman, 2010), el proceso de control de la las pruebas de sistema y las pruebas de aceptación
calidad tiene que estar relacionado en cada una son algunas de las metodologías de pruebas
dichas etapas. Si las pruebas están aisladas en una dinámicas.
2.1.2. Estáticas._Se lleva a cabo sin ejecutar el áreas: Eficiencia, exactitud, recordación y
software para testear y pueden ser detectados los respuesta emocional. Los resultados de la primera
siguientes errores: prueba se usan como base y las siguientes se
• Código inaccesible. comparan con esta para ver los niveles de mejora:
• Variables no usadas.  Desempeño
• Tipo de parámetro inconsistente.  Exactitud
• Funciones y procedimientos que no son  Recordación
ejecutados.  Respuesta Emocional
• Posible violación a los índices de los
arreglos. 2.2.2.3. Pruebas De Seguridad._ (Security
Testing) consisten en verificar los mecanismos de
2.2. FUNCIONAL VS NO FUNCIONAL control de acceso al sistema para evitar
(Myers, 2004) alteraciones indebidas en los datos.
Las Pruebas de Seguridad pretenden medir la
2.2.1. Pruebas Funcionales Confidencialidad, Integridad y Disponibilidad de
los datos, desde la perspectiva del aplicativo, es
Son un proceso para procurar encontrar decir, partiendo de identificar amenazas y riesgos
discrepancias entre el programa y la especificación desde el uso o interface de usuario final. Las
funcional. Una especificación funcional es una pruebas de seguridad pretenden medir y cuantificar
descripción exacta del comportamiento del los riesgos a los cuales se ven expuestos los
programa desde el punto de vista del usuario final. aplicativos, tanto en la infraestructura interna
Las pruebas funcionales son una actividad de caja como externa, valiéndose de la filosofía del
negra. Para realizar una prueba funcional, la Hacking ético. Las pruebas de seguridad simulan
especificación se analiza para derivar un conjunto un ataque informático desde cualquier perspectiva
de casos de prueba utilizando las diferentes (Internet, red interna, redes asociadas, acceso
técnicas de caja negra. remoto, etc.) para establecer qué tan posible sería
para un atacante, comprometer la seguridad de la
2.2.2. Pruebas no funcionales
información y validar la posible ocurrencia de un
fraude.
Se enfocan a tipos de prueba como las de
performance. 2.2.2.4. Pruebas De Rendimiento._
Se distinguen los siguientes tipos de pruebas no (Performance Testing) El rendimiento del sistema
funcionales suele ser evaluado en términos de tiempo de
respuesta y tasas de rendimiento bajo diferentes
2.2.2.1. Pruebas De Volumen._ (Volume
condiciones de procesamiento y de configuración.
Testing) son pruebas hechas a una aplicación de
Los problemas de rendimiento son a menudo el
software para un cierto volumen de datos. Este
resultado de una configuración del cliente o del
volumen puede ser en términos generales, el
servidor, inadecuada o un problema de
tamaño de la base de datos o también el tamaño de
construcción de la aplicación.
un archivo de interfaz.
Las pruebas de rendimiento se dividen en los
2.2.2.2. Pruebas De Usabilidad._ (Usability siguientes géneros:
Testing) Según la norma ISO/IEC 9126-1, la
2.2.2.4.1. Pruebas De Carga (Load Testing)
usabilidad es la capacidad de un producto software
Consisten en comprobar el funcionamiento del
de ser entendido, aprendido, usado y atractivo para
sistema en el umbral límite de los recursos,
el usuario, cuando es usado bajo unas condiciones
sometiéndole a cargas masivas. El objetivo es
específicas. Por lo tanto, las pruebas de usabilidad
establecer los puntos extremos en los cuales el
consisten en comprobar la adaptabilidad del
sistema empieza a operar por debajo de los
sistema a las necesidades de los usuarios, tanto
requisitos establecidos.
para asegurar que se acomoda a su modo habitual
de trabajo, como para determinar las facilidades 2.2.2.4.2. Pruebas De Estrés (Stress Testing)
que aporta al introducir datos en el sistema y Las pruebas de estrés tratan de la calidad de la
obtener los resultados. Normalmente se mide la aplicación en el ambiente. La idea es crear un
respuesta del sujeto que hace las pruebas en 4
ambiente más exigente del que la aplicación 2.2.2.6. Pruebas De Instalación
tendría bajo cargas normales de trabajo. Esta es la (Installation Testing) Algunos tipos de sistemas de
categoría más difícil y más compleja del testing ya software tienen complicados procedimientos de
que requiere un esfuerzo conjunto de todos los instalación. Las pruebas de los procedimientos de
equipos. instalación son una parte importante del proceso de
pruebas del sistema. Al funcionar incorrectamente
2.2.2.4.3. Pruebas De Resistencia (Endurance el programa de instalación podría generar una
Testing) Las pruebas de resistencia se hacen para experiencia desagradable al usuario con el sistema.
determinar si la aplicación puede mantener una La primera experiencia de un usuario es cuando
carga continua. Durante estas pruebas, se instala la aplicación. Si esta fase se realiza mal,
monitorea la utilización de la memoria para entonces el usuario puede perder confianza en la
detectar las posibles fallas. El objetivo es asegurar validez de la aplicación o incluso se pueden
que el rendimiento o los tiempos de respuesta generar errores en la aplicación debido a una mala
después de un largo periodo de actividad son tan instalación.
buenos como al inicio de la prueba o mejores.
2.2.2.7. Pruebas De Comunicación._
2.2.2.4.4. Pruebas De Aislamiento (Isolation (Communication Testing) Pruebas que determinan
Testing) Pruebas de los componentes individuales que las interfaces entre los componentes del
de forma aislada a partir de componentes sistema funcionan adecuadamente, tanto através de
circundantes para repetir la ejecución de una dispositivos remotos, como locales. Así mismo, se
prueba que dio lugar a un problema en la realizan pruebas sobre las interfaces hombre -
aplicación. A menudo se utiliza para aislar y máquina.
confirmar el fallo.
2.2.2.8. Pruebas De
2.2.2.4.5. Pruebas De Configuración Recuperación._(Recovery Testing) Pruebas no
(Configuration Testing) Las pruebas de funcionales que fuerzan el fallo del software de
configuración son otra variante de las pruebas de muchas formas y verifican que la recuperación se
rendimiento tradicional. En lugar de hacer las lleva a cabo apropiadamente.
pruebas de rendimiento desde la perspectiva de la
carga, lo que se prueba son los efectos de los 2.2.2.9. Pruebas De
cambios de configuración en el rendimiento y el Almacenamiento._(Storage Testing) Los
comportamiento de las aplicaciones. programas tienen de vez en cuando objetivos de
almacenamiento que indican, por ejemplo, la
2.2.2.4.6. Pruebas De Comportamiento cantidad de memoria principal y secundaria que el
Crítico._ (Spike Testing) Estas pruebas se realizan programa usa y el tamaño de los archivos
aumentando el número de usuarios para entender temporales. Se diseñan casos de prueba para
el comportamiento de la aplicación, para saber si el demostrar que estos objetivos de utilización de
rendimiento se verá afectado, si la aplicación recursos se satisfacen.
fallará o no, o si será capaz de manejar cambios
drásticos en la carga. 2.2.2.10. Pruebas De Documentación._
(Documentation Testing) Estas pruebas verifican
2.2.2.5. Pruebas De Compatibilidad._ la calidad de la documentación, por ejemplo las
(Compatibility Testing) Programas tales como guías de usuario o los manuales de instalación. La
sistemas operativos, sistemas de gerencia de base documentación del usuario debe ser el tema de una
de datos, y programas de conmutación de mensajes inspección, comprobándola para saber si hay
soportan una variedad de configuraciones de exactitud y claridad. Cualquiera de los ejemplos
hardware, incluyendo varios tipos y números de ilustrados en la documentación se debe probar.
dispositivos de entrada - salida y líneas de
comunicaciones, o diversos tamaños de memoria. 2.2.2.11. Pruebas De Implantación._
A menudo el número de configuraciones posibles (Resilience Testing) El objetivo de las pruebas de
es demasiado grande para probar cada uno, pero en implantación es comprobar el funcionamiento
lo posible se debe probar el programa con cada tipo correcto del sistema integrando el hardware y
de dispositivo de hardware y con la configuración software en el entorno de operación, y permitir al
mínima y máxima usuario que, desde el punto de vista de operación,
realice la aceptación del sistema una vez instalado  Cuando se ejecutan pruebas de estrés o pruebas
en su entorno real y con base en el cumplimiento de esfuerzo se tienen claramente definidas dos
de los requisitos no funcionales especificados. grupos de entidades: entradas y salidas.

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.

VIII. REFERENCIAS BIBLIOGRAFICAS

BIBLIOGRAFÍA
Bansode, P., & Meier, J. (2007). Performance Testing
Guidance for Web Applications.

Martìnez, M. F. (2010). FRAMEWORK PARA EL


PROCESO DE TESTING. MEDELLÍN.

También podría gustarte