Sei sulla pagina 1di 7

 Integrantes: José Mejía, Danny Lasso, Luis Benítez, Francisco San

Pedro
 Materia: Ingeniería de Software I.
 Fecha: 06/10/2019.
 Tema: Tipos de pruebas de Software

Introducción
Las pruebas de rendimiento software consisten en poner a prueba, en los dispositivos en los
que deba ejecutarse el software, la velocidad de ejecución y envío de datos, verificando que
todo discurre adecuadamente y sin pérdida de información.

Esta modalidad de pruebas de rendimiento le permitirá validar que su software responde a


las expectativas de los usuarios en términos de velocidad de respuesta y comodidad en su
uso.

Objetivos
 Verificar la importancia de las pruebas de rendimiento y su utilidad en nuestros
proyectos.
 Comprobar las principales herramientas y metodologías de Pruebas de Rendimiento.
 Detectar la importancia del mejoramiento de las pruebas y sus aplicaciones.
 Obtener las conclusiones respecto a la importancia de las pruebas para garantizar la
satisfacción de los clientes tanto como usuarios con dichas pruebas.

Desarrollo
Los objetivos de estas pruebas son varios:

 Localizar cuellos de botella. Por ejemplo, si hay mucha carga de usuarios y el sistema
colapsa o los tiempos de respuesta son muy altos, estas pruebas nos sirven para
detectar dónde está el problema, si es debido a que el sistema se queda sin CPU, si se
queda sin memoria, o si el ancho de banda es insuficiente.
 Identificar y localizar problemas de rendimiento en la aplicación. Por ejemplo, si
observamos que cierta funcionalidad de la aplicación tiene un tiempo de respuesta muy
alto, a partir de ahí tenemos que ver por qué ocurre y cómo optimizarlo. Es decir, no
sólo nos permite encontrar el problema rendimiento, sino que también ayuda a
localizar dónde está ese problema de rendimiento para poder subsanarlo.
 Verificar el cumplimiento de los SLA (Acuerdos de Nivel de Servicio). Por
ejemplo, si tenemos una aplicación que prevé tener unos mil usuarios de forma
concurrente y necesitamos que los tiempos de respuesta sean inferiores a 3 segundos.
Podemos ejecutar una prueba con esas condiciones y ver esos tiempos de respuesta.

Tipos de pruebas de rendimiento

Como dijo Tim Koopmans, cofundador de Flood “La gente llega a las pruebas de rendimiento
con una base en automatización, y esperan ver resultados del tipo “Rojo/Verde”, es decir,
esperan resultados del tipo “funciona o no funciona”.

En las pruebas de rendimiento esto no es así, porque la ejecución puede haber ido bien, no
haber tenido ningún error, pero los tiempos de respuesta haber sido demasiado altos. Esto
entonces no nos sirve y nos permite identificar algún problema.

Hay varios tipos de pruebas de rendimiento, los más importantes son:

 De carga: aquellas en las que se establecen unos objetivos determinados. Por ejemplo,
para 50 usuarios concurrentes la aplicación tiene que dar unos tiempos de respuesta
determinados, pues se realizará una prueba de esas características y se mide el
resultado.
 De estrés: son pruebas en las que se aplica mucha carga, bastante más de la esperada,
para ver cómo se comportaría la aplicación ante un pico de afluencia de usuarios.
 De estabilidad: permiten probar cómo se comporta la aplicación en una prueba de una
duración larga con una carga moderada, para ver si el sistema se degrada o sigue
funcionando correctamente. Puede ser que con el paso del tiempo se vaya
consumiendo cada vez más memoria porque no esté optimizada y haya recursos sin
cerrar y el rendimiento vaya cayendo.

Herramientas

Existen muchas herramientas en el mercado que se pueden utilizar para las pruebas de
rendimiento.

Podemos destacar JMeter, LoadRunner y NeoLoad, siendo la primera Open Source, y las otras
dos permiten hasta 50 usuarios concurrentes de forma gratuita, y a partir de ahí se necesita
adquirir una licencia.

Aprende a realizar pruebas de rendimiento de aplicaciones Web con LoadRunner en diferentes


escenarios posibles y crear una aplicación más fiable.

Tareas para realizar

Las tareas para realizar una prueba de este tipo serían las siguientes:
 Decidir usar recursos internos o externos para ejecutar las pruebas, en función de la
experiencia de la casa (o falta de ella).
 Reunir u obtener requisitos de rendimiento (especificaciones) de los usuarios y/o
analistas.
 Desarrollar un plan de alto nivel, incluyendo los requisitos, recursos, plazos e hitos.
 Elaborar un plan de pruebas de rendimiento detallado (incluyendo
los escenarios detallados y casos de prueba, cargas de trabajo, información del entorno,
etc).
 Elegir la/s herramienta/s de prueba.
 Especificar los datos de prueba necesarios y la distribución de ellos (a menudo pasado
por alto, y a menudo el fracaso de una prueba de rendimiento válida).
 Desarrollar scripts de prueba de concepto para cada aplicación/componente sometido a
la prueba, utilizando la herramienta de prueba elegida y estrategias.
 Desarrollar un plan de prueba de rendimiento detallado, incluyendo todas las
dependencias y los plazos.
 Instalar y configurar los simuladores de peticiones y controladores.
 Configurar el entorno de prueba (lo ideal es que sea idéntico hardware a la plataforma
de producción), configurar los router, aislar la red (no queremos alterar los resultados
por parte de otros usuarios), desplegar la aplicación en el servidor, desarrollar la base
de datos de prueba, etc.
 Ejecutar las pruebas, probablemente en repetidas ocasiones (iterativamente), a fin de
ver si el desconocimiento de cualquier factor podría afectar a los resultados.
 Analizar los resultados - ya sea de aceptando/rechazando, o investigando el camino
crítico y recomendando medidas correctivas .

Metodología de pruebas de rendimiento de aplicaciones Web

Según Microsoft Developer Network, la Metodología de las Pruebas de Rendimiento consiste


en las siguientes actividades:

 Actividad 1. Identificar el entorno de pruebas. Identificar el entorno físico de pruebas y


el entorno de producción, así como las herramientas y recursos de que dispone el
equipo de prueba. El entorno físico incluye hardware, software y configuraciones
de red. Tener un profundo conocimiento de todo el entorno de prueba desde el
principio permite diseños más eficientes de pruebas y la planificación y ayuda a
identificar problemas en las pruebas en fases tempranas del proyecto. En algunas
situaciones, este proceso debe ser revisado periódicamente durante todo el ciclo de
vida del proyecto.
 Actividad 2. Identificar los criterios de aceptación de rendimiento. Determinar el
tiempo de respuesta, el rendimiento, la utilización de los recursos y los objetivos y
limitaciones. En general, el tiempo de respuesta concierne al usuario, el rendimiento
al negocio, y la utilización de los recursos al sistema. Además, identificar criterios
de éxito del proyecto que no hayan sido recogidos por los objetivos y limitaciones, por
ejemplo, mediante pruebas de rendimiento para evaluar qué combinación de la
configuración da lugar a un funcionamiento óptimo.
 Actividad 3. Planificar y diseñar las pruebas. Identificar los principales escenarios,
determinar la variabilidad de los usuarios y la forma de simular esa variabilidad,
definir los datos de las pruebas, y establecer las métricas a recoger. Consolidar esta
información en uno o más modelos de uso del sistema a implantar, ejecutarlo y
analizarlo.
 Actividad 4. Configurar el entorno de prueba. Preparar el entorno de prueba,
herramientas y recursos necesarios para ejecutar cada una de las estrategias, así como
las características y componentes disponibles para la prueba. Asegurarse de que el
entorno de prueba se ha preparado para la monitorización de los recursos según sea
necesario.
 Actividad 5. Aplicar el diseño de la prueba. Desarrollar las pruebas de rendimiento de
acuerdo con el diseño del plan.
 Actividad 6. Ejecutar la prueba. Ejecutar y monitorizar las pruebas. Validar las
pruebas, los datos de las pruebas, y recoger los resultados. Ejecutar pruebas válidas
para analizar, mientras se monitoriza la prueba y su entorno.
 Actividad 7. Analizar los resultados, realizar un informe y repetirlo. Consolidar y
compartir los resultados de la prueba. Analizar los datos, tanto individualmente, como
con un equipo multidisciplinario. Volver a priorizar el resto de las pruebas y volver a
ejecutarlas de ser necesario. Cuando todas las métricas estén dentro de los límites
aceptados, ninguno de los umbrales establecidos han sido rebasados, y toda la
información deseada se ha reunido, las pruebas han acabado para el escenario definido
por la configuración.

Herramienta utilizada:
JMeter
JMeter es una herramienta de testing cuyas funcionalidades se pueden resumir en tres:
 Diseñar un testplan, esto es, generar un fichero. jmx
 Ejecutar un testplan
 Ver de distintas formas los resultados de la ejecución de un testplan (vía listeners)
Para diseñar un testplan, JMeter dispone de una interfaz GUI a modo de diseñador, en la
que el tester puede ir agregando componentes de manera visual, y ejecutar los componentes
agregados, viendo el resultado. Una vez finalizado el diseño del testplan, la herramienta
permite grabar este como un fichero .jmx.
La propia herramienta permite ejecutar un fichero .jmx previamente generado, vía línea de
comandos o vía la propia interfaz GUI. La ejecución de un fichero .jmx realiza peticiones
contra la aplicación objetivo a testear (peticiones del tipo que se hayan especificado al
generar el fichero .jmx, JMeter dispone de la posibilidad de generar muchos tipos de
peticiones: HTTP, FTP, LDAP, ...). Para cada petición ejecutada, JMeter recopila ciertos
datos. Además, en el fichero .jmx se puede especificar que número de usuarios de cada tipo
ejecuta las peticiones contra la aplicación, es decir, el .jmx simula una o mas comunidades
de usuarios (roles) trabajando contra la aplicación objetivo.
Los datos generados por la herramienta para cada petición se procesan o bien con un tipo de
componente que proporciona la interfaz GUI llamados listeners, o bien con herramientas
externas. Los listeners permiten ver los resultados de una o mas ejecuciones de múltiples
maneras (cada listener de una manera).
Este manual es una introducción al uso de la herramienta JMeter. Explica los conceptos
básicos que es necesario conocer para entender la herramienta, y las posibles formas de
utilizar ésta.
Es adecuado tanto para personas con un perfil técnico sin conocimientos previos que
deseen iniciarse en el uso de la herramienta, como para diretores, jefes de proyecto y
analistas que deseen conocer las posibilidades de la herramienta en la ejecución de tests.
Los lectores interesados en profundizar en el uso de la herramienta quizás estén interesados
en las siguientes referencias:

Ventajas e inconvenientes
JMeter es una herramienta ideal para realizar pruebas de rendimiento de aplicaciones
web. Sus principales debilidades son:
 Aunque la versión actual (2.4) permite también el diseño y automatización de pruebas
funcionales, existen otras herramientas más adecuadas para esta función.
 JMeter NO se comporta como un navegador. Esto tiene varias implicaciones importantes:
por defecto no guarda ni envía cookies, no interpreta código JavaScript, … Cualquier
funcionalidad de estas debe ser implementada específicamente en el testplan
 Con JMeter el tester trabaja a nivel de protocolos: el desarrollador de un testplan ha de
descender a este nivel, por lo que normalmente el tester tiene que apoyarse en herramientas
adicionales durante el desarrollo de un testplan, como Firebug, HttpFox, SoapUI, Badboy,
...
 Los tipos de aplicaciones que se pueden testear con JMeter dependen de los protolos que
implementen las interfaces de acceso a la aplicación. Con JMeter se pueden testear los
siguientes tipos de interfaces: HTTP, HTTPS, SOAP (sobre HTTP), XML-RPC
(sobre HTTP), FTP, LDAP, POP3, IMAP, SMTP, JMS, JDBC y TCP. El testeo de otro tipo
de interfaces no es inmediato. En concreto, con JMeter no es posible (con un esfuerzo
razonable), implementar un testplan para una interfaz RMI o WebDav

Utilización de la herramienta
Una vez instalada la herramienta, la forma más habitual de utilizarla es:
1. Grabar las interacciones de cada uno de los tipos de usuarios con la aplicación
software. Esto genera un caso de pruebas para cada una de las tipologías de usuarios
(perfiles) que admite la aplicación. Posteriormente, cada uno de los casos de prueba se
ejecutarán de manera concurrente por parte de N usuarios por cada caso de prureba.
2. Adaptar el script (fichero .jmx) generado en el paso anterior. Por ejemplo, para que sea
configurable, para que se hagan comprobaciones que no se pueden generar durante la
grabación, ...
3. Comprobar que el script realiza correctamente las tareas que se desea que realice el
caso de prueba.
4. Integrar todos los scripts
5. Ejecutar el testplan
6. Visualizar los resultados de la ejecución
En los apartados que siguen explicamos los conceptos de funcionamiento de JMeter
relativos a estos cinco puntos. En este manual solo explicaremos los conceptos y
posibilidades de la herramienta. Ver Construcción de un testplan con JMeter para más
detalle sobre los cuatro primeros puntos, Ejecución de un testplan con JMeter para más
detalles sobre los dos últimos.

Figura 1: Utilizacion de la herramienta JMeter

Conclusiones
 Las pruebas de rendimiento fueron de gran utilidad porque nos permitieron verificar
el uso y funcionamiento de nuestras aplicaciones.
 Las herramientas que se probaron fueron de gran utilidad para nuestros futuros
proyectos y los componentes nos servirán para dar una mejor experiencia a los
usuarios.
 La importancia de estas pruebas permite al software funcionar de mejor manera, en
conceptos, descripción, funcionamiento, optimización, calidad y satisfacción.

Bibliografía
https://www.testergame.com/pruebas-de-rendimiento-software/
https://openwebinars.net/blog/que-es-prueba-de-rendimiento-software/

Potrebbero piacerti anche