herramientas open source para testing de aplicaciones web ......herramientas open source para...

35
Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff Anahí S. Rodríguez Valeria Soria {javier.diaz, claudia.banchoff, anahi.rodriguez, valeria.soria}@linti.unlp.edu.ar LINTI. Fac. de Informática, Universidad Nacional de La Plata. La Plata, 1900, ARGENTINA

Upload: others

Post on 11-Aug-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas open source para testing de aplicaciones

Web. Evaluación y usos.

F. Javier DíazClaudia M. Banchoff Tzancoff

Anahí S. RodríguezValeria Soria

{javier.diaz, claudia.banchoff, anahi.rodriguez, valeria.soria}@linti.unlp.edu.ar

LINTI. Fac. de Informática, Universidad Nacional de La Plata.La Plata, 1900, ARGENTINA

Page 2: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Aplicación Web

• Myers: “Las aplicaciones de Internet son aplicaciones cliente-servidor donde el cliente es un navegador Web y el servidor es un servidor Web o una aplicación servidor”

Page 3: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Objetivo

• El objetivo de este trabajo es presentar una serie de herramientas que asisten en la tarea de testing durante el desarrollo de una aplicación web.

• Este trabajo se ha focalizado en el análisis de aplicaciones Web. Se presentarán herramientas de código abierto agrupadas según el tipo de prueba realizar.

Page 4: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Testing• Es someter un software a ciertas

condiciones que puedan demostrar si es válido o no, verificando que el software se ajusta a los requerimientos y además validar que las funciones se implementan correctamente.

• Es en definitiva agregar valor a un producto y no solamente al producto, sino al proceso de desarrollo, siempre que se consideren los resultados generados.

Page 5: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Etapas de testing

• Al igual que el desarrollo de software, las pruebas también tienen diferentes etapas, como ser: Planificación y Control, Análisis y Diseño, Implementación y Ejecución, Evaluación y Cierre.

Page 6: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Calidad de Software• IEEE std. 610: “El conjunto de programas

de ordenador, los procedimientos y posiblemente, la documentación asociada y los datos relativos a la operación del sistema informático”.

• Algunos autores afirman que los valores de calidad que tiene mayor relevancia en las aplicaciones Web son: Usabilidad, Funcionabilidad, Fiabilidad, Seguridad, Eficiencia y Mantenibilidad.

Page 7: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Caso de PruebaUn caso de prueba es un conjunto de entradas, precondiciones de ejecución, resultados esperados y poscondiciones de ejecución, realizadas para un objetivo particular, tal como ejecutar un camino en particular o verificar la concordancia con los requerimientos.

Page 8: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Caso de Prueba• Un caso de prueba debe probar un item

(en teoría) y luego realizar un análisis del resultado esperado.

• Si se descubre un nuevo caso, documentarlo y no ejecutarlo.

• Se tiende agrupar casos de prueba, pero asi se pueden enmascarar errores.

Page 9: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Caso de Prueba• Objetivo: la carácteristica del sistema a

probar.• Datos de entrada y de ambiente: datos a

introducir al sistema que se encuentra en condiciones preestablecidas.

• Comportamiento esperado: la salida o la acción esperada en el sistema de acuerdo a los requerimientos del mismo.

• Comprobación del resultado esperado: método o forma de realizarlo.

Page 10: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Tipos de pruebas• Pruebas de aceptación

– Alfa– Beta

• Pruebas de sistema– Usabilidad– Interfaz de usuario– Seguridad– Rendimiento– Configuración

Page 11: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Tipos de pruebas• Pruebas funcionales

• Pruebas de integración– Big Bang– Top Down– Bottom Up

• Pruebas de unidad

Page 12: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Probando aplicaciones Web• El tipo de pruebas no depende del tipo

de aplicación, ya sea Web o escritorio.

• Se recomienda realizar las siguientes pruebas básicas:– Pruebas de aceptación– Pruebas estáticas de código– Pruebas unitarias– Pruebas funcionales– Pruebas de rendimiento

Page 13: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas

• Según Whittaker, la utilización de una herramienta puede ser útil para mejorar y agilizar las pruebas a realizar.

• Por ejemplo, a la hora de simular una cantidad determinada de usuarios accediendo a un sitio al mismo tiempo, o la carga de datos en un sistema, etc.

Page 14: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas - Ventajas

• El trabajo repetitivo se reduce.

• Una mayor coherencia y repetibilidad.

• Evaluación Objetiva.

• Fácil visualización de los resultados.

Page 15: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas - Desventajas

• Se pueden llegar a tener expectativas irrealistas sobre las herramientas.

• Sobrestimar el tiempo.

• La incorporación de la herramienta a las pruebas realizadas puede demandar más tiempo que el previsto.

Page 16: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas – Pruebas de aceptación

• FitNesse: permite comparar lo que debe hacer el software con lo que realmente hace. Se pueden realizar pruebas de aceptación y pruebas de reglas de negocio.

http://fitnesse.org/

• Avignon: permite a los usuarios expresar pruebas de aceptación de una forma no ambigua antes que comience el desarrollo. Trabaja en conjunto con JUnit, HTTPUnit, etc.

http://www.nolacom.com/avignon/index.asp

Page 17: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

FitNesse

Page 18: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Tablas comparativasPruebas de aceptación

Herramienta UI Licencia Plata-forma

Lenguaje Ult.Actual.

Documen-tación

FitNesse WEB GPL Win / Linux

Java, C#, PHP, Ruby,

.NET, etc.

Julio2009

Guía de Usuarios

Avignon GUI GPL Win / Linux

Java, .NET, etc.

Octubre2006

Insuficiente

Page 19: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas – Pruebas estáticas de código

• PHPLint: permite mejorar las tareas de programación, ya sea comenzando la codificación con esta herramienta o mejorando código ya existente. Permiten dar seguridad en el código, errores de sintaxis, variables no utilizadas, código muerto, etc.

http://www.icosaedro.it/phplint/

• RATS: realiza chequeo de seguridad en el código, determinando la criticidad de fallos, como así también una evaluación del código.

http://www.fortify.com/security-resources/rats.jsp

• YASCA: permite encontrar vulnerabilidades de seguridad, calidad en el código, rendimiento, etc. Aprovecha la funcionalidad de los plugins FindBugs, PMD y Jlint.

http://www.yasca.org/

Page 20: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas – Pruebas estáticas de código

• PMD: puede ser integrado a varias herramientas: JDeveloper, Eclipse, JEdit, etc. Permite encontrar en el código errores en el manejo de excepciones, código muerto, código sin optimizar, código duplicado, etc.

http://pmd.sourceforge.net/

• FindBugs: puede integrarse a Eclipse. Realiza un escaneo de código encontrando errores comunes, malas prácticas de programación, código vulnerable, rendimiento, seguridad, etc.

http://findbugs.sourceforge.net/

Page 21: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Tablas comparativasPruebas estáticas de código

Herramienta UI Licen-cia

Plata-forma

Lenguaje Ult.Actual.

Documen-tación

PHPLint GUI BSD Win / Linux

PHP Mayo2009

Tutorial / Manual

RATS CLI GPL Win / Linux

C++, Perl, PHP y Python

Septiembre2009

Sin Datos

YASCA CLI GPL Win / Linux

Java, .NET, PHP, HTML,

CSS, etc.

Mayo2009

Manual

PMD CLI BSD Win / Linux

Java Febrero2009

Tutorial/ Manual

FindBugs GUI / CLI

GPL Win / Linux

Java Marzo2009

Tutorial/ Manual

Page 22: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas – Pruebas Unitarias

• JUnit: automatiza las pruebas unitarias y de integración. Provee clases y métodos que facilitan la tarea de realizar pruebas en el sistema y así asegurar la consistencia y funcionalidad.

http://www.junit.org/

• PHPUnit: permite crear y ejecutar tests unitarios de manera simple. Está basado en el framework “JUnit” para java.

http://www.phpunit.de/

• SimpleTest: pruebas de unidad en PHP y pruebas Web. Cuenta con un navegador Web interno, lo que permite que las pruebas naveguen los sitios Web, ingresen datos en formularios y páginas de prueba.

http://www.simpletest.org/

Page 23: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Tablas comparativasPruebas Unitarias

Herramienta UI Licen-cia

Intetgración Ult.Actual.

Documen-tación

JUnit Integra-da

CPL Eclipse / NetBeans

Mayo2009

Coockbook/Foro/FAQ

PHPUnit CLI PHP No Aplica Junio 2009

Manual

SimpleTest CLI LGPL Eclipse Abril2008

Tutorial / How to

Page 24: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas – Pruebas Funcionales• Chequeadores de Enlace

– XENU: permite encontrar los enlaces rotos en un análisis en profundidad

http://home.snafu.de/tilman/xenulink.html

– LINK Checker W3C: herramienta On-Line que permite encontrar enlaces rotos, anclas mal definidas, advertir sobre redirecciones, etc.

http://validator.w3.org/checklink

– DRKSpider: permite encontrar enlaces rotos, tiene niveles de profundidad y genera un árbol jerárquico con los enlaces del sitio en prueba, con información detallada.

http://www.drk.com.ar/index.php

– Link Evaluator: se integra a la interfaz del navegador. Se procesa sólo la página actual y no realiza un análisis en profundidad, resaltando en distintos colores el estado de los enlaces.

https://addons.mozilla.org/es-ES/firefox/addon/4094

Page 25: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

XENU

Page 26: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

W3C Validator

Page 27: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Tablas comparativasPruebas funcionales – Chequeadores de enlaces.

Herramienta UI Licencia Procesa-miento

Plata-forma

Ult.Actual.

Documen-tación

XENU GUI Freeware Remoto / Local

Win Abril 2009

FAQ

LINKChecker

W3C

WEB GPL Remoto Win / Linux

No Aplica Manual

DRKSpider GUI GPL Remoto / Local

Win Abril2009

Foro

Link Evaluator WEB Apache License

Remoto / Local

Win / Linux

Mayo2009

How to / Ejemplos

Page 28: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas – Pruebas Funcionales• Funcionalidad

– Selenium IDE: plug-in del Firefox. Permite grabar clicks, tipeo y otras acciones para realizar test. Se puede exportar en distintos lenguajes para su posterior adaptación y utilización.

http://seleniumhq.org/projects/ide

– HTTPUnit: Se basa en la metodología XP. Se pueden realizar pruebas funcionales antes de que estén generadas las páginas Web. No se basa en los controles que tenga la página, si no que se basa en los valores de entrada que el usuario pueda ingresar.

http://httpunit.sourceforge.net/index.html

– Badboy: Permite grabar y luego reproducir las acciones realizadas por los usuarios, luego este script puede ser utilizado en otras herramientas, como ser JMeter. Se puede integrar al navegador Web Internet Explorer.

http://www.badboy.com.au/

– SAHI: Permite grabar y luego reproducir script. Tiene soporte funciones realizadas en lenguaje Javascript.

http://sahi.co.in/w/

Page 29: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Selenium

Page 30: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Tablas comparativasPruebas funcionales – Funcionalidad

Herramienta UI Licencia Plata-forma

Ult. actual. Documentación

Selenium IDE GUI Apache Varios Junio 2008 Tutorial/ Manual/Wiki

HTTPUnit WEB Propia Win / Linux

Mayo 2008 Tutorial/ Manual/FAQ

Badboy WEB LGPL Win Diciembre 2008

Manual/ Foro

Sahi GUI Apache Win / Linux

Mayo 2009 Manual/ FAQ

Page 31: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Herramientas – Pruebas de Rendimiento

• JMeter: permite realizar pruebas de rendimiento, de stress, de carga y de volumen, sobre recursos estáticos o dinámicos.

http://jakarta.apache.org/

• OpenSTA: permite captar las peticiones del usuario generadas en un navegador Web, luego guardarlas, y poder editar para su posterior uso.

http://www.opensta.org/

• WEbLoad: permite realizar pruebas de rendimiento, a través de un entorno gráfico en el cual se pueden desarrollar, grabar y editar script de pruebas.

http://www.webload.org

• Grinder: Es un framework escrito en Java, con el cual se pueden realizar pruebas de rendimiento, a través de script escritos en lenguaje Jython. Permite grabar las peticiones del cliente sobre un navegador Web para ser luego reproducido.

http://grinder.sourceforge.net/

Page 32: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

JMeter

Page 33: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Tablas comparativasPruebas de rendimiento

Herramienta UI Licen-cia

Plata-forma

Conc. usuarios

Ult.Actual

Documen-tación

JMeter GUI Apache License

Win / Linux

SI Junio 2009

Tutorial

OpenSTA GUI GPL Win SI Octubre 2007

Guía de usuario

WebLoader GUI GPL * Win SI Abril2007

Tutorial

Grinder GUI GPL Win / Linux

SI Febrero2009

Guía de usuario / FAQ

(*) Existen dos tipos de licencias: GPL y profesional

Page 34: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

Conclusiones• Al utilizar herramientas open source, no

sólo se encuentran disponibles para su uso, sino que también se las podría adaptar a los requerimientos propios del proyecto.

• Existen muchas herramientas que ayudan al equipo de testing de un proyecto. Elegir las más adecuadas no es una tarea sencilla.

Page 35: Herramientas open source para testing de aplicaciones Web ......Herramientas open source para testing de aplicaciones Web. Evaluación y usos. F. Javier Díaz Claudia M. Banchoff Tzancoff

MUCHAS GRACIAS!!!