



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Información sobre las pruebas de performance, su objetivo, cómo estudiar la arquitectura de un sistema, componentes para realizar pruebas, clasificación de pruebas y herramientas utilizadas. Además, se incluyen ejemplos y definiciones de términos relacionados.
Tipo: Apuntes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




¿Qué son las pruebas de performance? Las pruebas de performance buscan obtener información sobre el sistema construido y sus componentes, y evaluar si cumple con los requerimientos de calidad. La performance de un sistema es el grado en que este o uno de sus componentes ejecutan sus funcionalidades dentro de las restricciones de velocidad, precisión o uso de memoria. Con esta prueba se evaluará si se cumple con los requerimientos especificados, como por ejemplo calidad y tiempo de respuesta. “El testing de performance tiene como objetivo determinar el rendimiento de una aplicación bajo un escenario de carga dado” ¿Por qué es importante estudiar la arquitectura de un sistema? Es de suma importancia estudiar la arquitectura ya que esta influye en los requerimientos de calidad de un sistema. Se entiende por arquitectura la estructura y organización de los diferentes componentes. Cada componente supone un motor de procesamiento, y una vez que se identifican y se analizan, es posible detectar posibles problemas de desempeño, llamados cuellos de botella, que pueden afectar la performance global del sistema. ¿De qué componentes se pueden realizar pruebas de performance? Es posible realizar pruebas de performance en cada algoritmo, consulta a la base de datos, así como también del sistema integrado. Las pruebas de performance unitarias y de integración permiten detectar problemas y resolverlos tempranamente, por ejemplo relacionados con la concurrencia (varios usuarios pretendiendo acceder simultáneamente a los mismos recursos del sistema). De esta manera, las pruebas que se realizan en el sistema integrado se realizan en etapas posteriores, focalizándose en ajustes y configuraciones. De esta forma, se ahorra tiempo y recursos reduciendo posibles riesgos. ¿Cuál es la diferencia entre los clientes finos y gruesos? La arquitectura de un sistema determina dónde hay más procesamiento y dónde se encuentran los motores de una aplicación. Los clientes pueden ser finos o gruesos. Los clientes finos presentan información al usuario y le permiten generar nuevas solicitudes. Mientras que los clientes gruesos requieren un procesamiento mayor. Un ejemplo de cliente fino es un componente que se ejecuta en un navegador web (chat plataforma moodle), mientras que los clientes gruesos se ejecutan directamente sobre el sistema operativo o máquinas virtuales (Skype). ¿Cómo se clasifican las pruebas de performance? Según el objetivo de las pruebas estas se pueden clasificar en: Carga: simulan la carga prevista de un sistema. Stress: se lleva el sistema a sus límites de carga que exceden los previstos. Escalabilidad: estudia la performance cuando se disminuyen y aumentan los recursos. Volumen: se estudia la performance cuando se incrementa el volumen de datos del sistema.
La elección del tipo de prueba depende de qué datos se quiere obtener y qué riesgos se quieren mitigar. ¿Es posible realizar las pruebas de performance de forma manual?¿Cuáles son los beneficios de utilizar herramientas? Si se desean hacer pruebas de forma manual, es común encontrar algunos problemas cómo conseguir los recursos humanos y equipos necesarios, elaborar guiones, sincronización de las pruebas y la monitorización de todos los motores de procesamiento. También se presentan problemas que tienen que ver con el tiempo y costos. Si bien es posible realizar pruebas de performance de forma manual, todos las dificultades enumeradas anteriormente se podrían solventar al usar herramientas de generación de carga. Al utilizar herramientas se obtienen varios beneficios, tales como que permiten ejecutar las pruebas cuantas veces sea necesario, simulando diferentes escenarios de carga variando la cantidad de usuarios. Además las pruebas son reproducibles, ya que se ejecutarán siempre los mismos pasos con los mismos puntos de validación. También es una ventaja que las pruebas se pueden ejecutar de forma desatendida y analizar los resultados más tarde. Sin embargo existen riesgos y limitaciones, por lo que será necesario evaluar las herramientas a utilizar, y además considerar los costos asociados. ¿Qué se automatiza? Las herramientas brindan soporte para la automatización y ejecución de las pruebas de performance. En vez que cada usuario deba ejecutar un guión se automatiza esta tarea. Las herramientas también pueden ofrecer funcionalidades de grabación, es decir que generan código (script) que capturan las interacciones con el software bajo prueba. ¿Para qué se utilizan las herramientas de monitorización? Se utilizan para analizar los aspectos no visibles de un sistema, y recopilar datos que se consideren relevantes. Se monitoriza el comportamiento de los componentes de software y hardware durante una prueba, y de esta forma poder detectar cuellos de botella. ¿Qué es JMeter? Jmeter es una herramienta de generación de carga. Se utilizan los denominados Samplers, para realizar peticiones contra el sistema bajo prueba: HTTP Request, Java Request, JUnit Request. Otro componente importante son los Listeners, que se utilizan para visualizar los resultados obtenidos luego de la ejecución de una prueba. ¿Qué elementos se pueden configurar para un plan de pruebas en JMeter? Cantidad de hilos: cantidad máxima de usuarios concurrentes que se simularán Tiempo de ramp up: período de entrada total de todos los usuarios al sistema. Es decir que si se tienen 120 usuarios y se definen 60 segundos, se agregaron dos hilos por segundo. Se simula el ingreso gradual en el tiempo. Cantidad de iteraciones: cantidad de veces que se ejecutará la prueba.
limita solo al hardware, si no que también incluye al software necesario. Se realiza la instalación de generadores de carga y las herramientas complementarias. Realización de las pruebas: Se ejecutan las pruebas definidas, aplicando una metodología iterativa incremental, ya que a medida que se detectan problemas estos se van solucionando. La carga se incrementa a medida que se verifica que el sistema cumple con los requerimientos. Luego de la ejecución, los datos de las diferentes monitorizaciones se recopilan y analizan, con el fin de determinar los posibles cuellos de botella de la aplicación Además a estas se le deberían sumar una etapa inicial de planificación del proyecto, y la de generación de informes al final. Etapa de Escenarios: ¿Por qué se evalúa qué transacciones se incluyen? En la etapa de definición de escenarios se debe tener en cuenta que no será posible incluir todas las funcionalidades del sistema. Cada funcionalidad, conocida como transacción, implica un costo tanto a nivel de automatización como de análisis, por lo que se debe evaluar el beneficio que se obtiene. El número de transacciones debe ser acotado, y debe cumplir con criterios como: las transacciones más utilizadas, las transacciones que implican un uso intensivo de los recursos, las transacciones donde ya se han detectado problemas de performance y las transacciones consideradas más importantes. Etapa escenario: ¿Por qué es importante saber el rol de los usuarios? También se debe saber el rol de los usuarios, cómo utilizan los usuarios estas transacciones. Esto se debe a que puede influir en la performance, ya que el número de los usuarios concurrentes se traduce a los usuarios que compiten por el uso de los recursos. Estas definiciones en la etapa de escenarios son de gran importancia, ya que de lo contrario podría resultar en una carga menor a la que se tendrá en la realidad o una superior a la deseada. Al final de esta etapa se obtiene un documento con toda la información, los criterios de conformidad y el alcance de las pruebas. Etapa automatización: ¿Qué tareas se realizan? Algunas actividades al automatizar las transacciones incluyen la generación de los primeros scripts, la parametrización de los datos, la asignación de los think times, y la distribución de generación de carga. Se utilizan herramientas de generación de carga, en el mercado existe una gran variedad y todas funcionan a nivel de protocolo de comunicación. En esta etapa se obtienen los scripts para simular la carga. Etapa de Infraestructura: ¿Qué consideraciones se debe tener en cuenta? Esta etapa se realiza en forma paralela a la etapa de automatización. Se trata de armar el ambiente de pruebas para que este sea lo más parecido posible al de producción. Como alternativa, para evitar comprar una réplica se puede optar por, si el software no debe estar disponible todo el tiempo, realizar las pruebas en horarios en los que no se usa por ejemplo en la noche. O también se pueden aprovechar los periodos de menor carga. Sin embargo se debe monitorizar continuamente en caso de que se deba detener la prueba para no alterar el servicio.
Infraestructura: ¿Que se debe realizar en relación al software? La infraestructura no se limita solo al hardware. En esta etapa puede ser que se deban realizar tareas de aplicación de parches y actualizaciones a sistemas operativos y servidores, para que las versiones coincidan con las de producción. También se debe instalar las herramientas de monitorización, así como realizar pruebas para asegurar que estas funcionen correctamente. También se instalan las generadoras de carga y otras herramientas complementarias. Ejecución: Metodología iterativa incremental Se ejecutan las pruebas definidas, aplicando una metodología iterativa incremental, ya que a medida que se detectan problemas estos se van solucionando. La carga se incrementa a medida que se verifica que el sistema cumple con los requerimientos. Luego de la ejecución, los datos de las diferentes monitorizaciones se recopilan y analizan, con el fin de determinar los posibles cuellos de botella de la aplicación Ejecución: Análisis de resultados Luego de la ejecución los datos recopilados con las herramientas de monitorización se analizan en búsqueda de posibles cuellos de botellas, y poder determinar razones por las cuales no se cumplen con los criterios establecidos de calidad. En primer lugar se analizan las métricas que dan la información más genérica, como por ejemplo uso de CPU. En caso de detectar problemas, se agregan niveles de monitorización en mayor detalle. Es de gran ayuda representar los datos recolectados en gráficas para poder estudiarlas. Guiones Transacción: Nombre de la transacción para la cual se definirá el guión Nombre de Sección: Una sección es un conjunto de pasos que se agrupan bajo un mismo nombre para poder reutilizarse en diferentes transacciones. Esto simplifica el no repetir esa secuencia de pasos una y otra vez en cada transacción relevada, haciendo a su vez más prolijo el documento. Cuando en esta columna se indica el nombre de una seccion esto indica que en ese "paso" (fila) deben ejecutarse todos los pasos que estan dentro de la sección. Por eso no se indica numero de paso, ya que la cantidad de pasos de la sección es variable. Número de paso: Por "paso" nos referimos a un conjunto de acciones que deseemos temporizar, por lo que cabe comentar que un único paso puede contener más de una acción. Realizar Acción: Acción a realizar en el paso. Por ejemplo: "Se hace clic en el botón de alta de un cliente" Resultado: Resultado esperado luego de haber realizado el paso correspondiente. Por ejemplo: "Se va a la página de completado del formulario de alta de cliente"