Proyecto de Sistema de Registro de las Actividades de Extensión de Profesores y Estudiantes de la Universidad Simón Bolívar Documento de Herramientas de SW Libre que soportan Pruebas Versión <1.0> Herramientas de Software Libre que soportan pruebas. El objetivo de esta actividad es conocer herramientas de Software Libre que soporten pruebas, para su posterior uso. A continuación, se presentan algunas: Junit JUnit es un conjunto de librerías que son utilizadas en programación para hacer pruebas unitarias de aplicaciones Java. JUnit es un conjunto de clases (framework) que permite realizar la ejecución de clases Java de manera controlada, para poder evaluar si el funcionamiento de cada uno de los métodos de la clase se comporta como se espera. Es decir, en función de algún valor de entrada se evalúa el valor de retorno esperado; si la clase cumple con la especificación, entonces JUnit devolverá que el método de la clase pasó exitosamente la prueba; en caso de que el valor esperado sea diferente al que regresó el método durante la ejecución, JUnit devolverá un fallo en el método correspondiente. JUnit es también un medio de controlar las pruebas de regresión, necesarias cuando una parte del código ha sido modificado y se desea ver que el nuevo código cumple con los requerimientos anteriores y que no se ha alterado su funcionalidad después de la nueva modificación. En la actualidad las herramientas de desarrollo como NetBeans y Eclipse cuentan con plug-ins que permiten que la generación de las plantillas necesarias para la creación de las pruebas de una clase Java se realice de manera automática, facilitando al programador enfocarse en la prueba y el resultado esperado, y dejando a la herramienta la creación de las clases que permiten coordinar las pruebas. Este framework se encuentra actualmente en la versión 4.4. Spec Explorer Spec Explorer es una herramienta para realizar pruebas basadas en modelo, para detectar defectos en el diseño, especificación e implementación de programas. Es un desarrollo del centro de investigación de Microsoft que se puede descargar gratuitamente para usos no comerciales. Ayuda a los equipos de desarrollo a detectar errores de diseño, especificación e implementación Tiene 3 componentes: - Un verificador que ejecuta las pruebas de comportamiento - Un motor que desenvuelve el estado final resultante - Los lenguajes de modelado de software Spec# y AsmL Abbot: Abbot sirve tanto para probar componentes de manera aislada como para grabar y reproducir una secuencia de acciones. La herramienta viene con un editor (llamado Costello) muy completo que facilita la tarea de grabar secuencias, construir casos de prueba, y reproducirlas. Con el editor se ejecuta la aplicación y captura todas las pulsaciones de ratón perfectamente. El editor, además, registra todos los componentes (JMenuBar, JPane, JTextPane, etc. ) implicados en la secuencia. Abbot almacena los casos de prueba en un XML bastante complejo, lo que hace difícil hacer pruebas sin grabar/reproducir. La descripción de errores es muy poco clara, ya que se limita simplemente a mostrar el texto de la excepción. Push to Test Test Maker TestMaker es una aplicación de comprobación de servicios Web de PushToTest. Requiere Java 1.4 para funcionar. La instalación es simple. Las pruebas de TestMaker están agrupadas en scripts llamados “Test Agents”. El producto hace honor a su nombre al proporcionar un Agent Wizard que leerá una definición WSDL y creará automáticamente un agente de prueba delgado. Debemos aclarar que TestMaker no está limitado a probar servicios Web; también puede ser usado para probar aplicaciones Web. Los agentes de prueba de TestMaker están escritos en Jython (Python escrito en Java). Por un lado, los scripts de TestMaker pueden ser tan poderosos como lo permitan sus habilidades de programador. Jython puede acceder a todas las librerías de Java, así como las clases y métodos proporcionados con TestMaker. La librería más grande de TestMaker es TOOL (Test Object Oriented Library: Librería de Pruebas Orientadas a Objetos), e incluye clases para manejo de toda clase de protocolos de comunicación: HTTP, HTTPS, SOAP, POP3, JDBC, y más. Su curva de aprendizaje es mayor que la de otras herramientas. Marathon Herramienta de prueba simple y flexible para aplicaciones Java GUI desarrolladas usando Swing (biblioteca gráfica) Puede ser usado para desarrollar pruebas antes de que la aplicación este disponible Esta herramienta sólo sirve para pruebas de sistema/aceptación, no permitirnedo escribir pruebas para componentes de manera individual. En esta herramienta las pruebas no se guardan en XML sino en Python (y se procesan con JPython). Esto hace que el código sea muy compacto, muy legible y que tengamos toda la potencia de Python a nuestra disposición. Aunque el editor no es tan completo como el editor de Abbot, incluye un menú contextual sobre la aplicación a prueba que permite añadir comprobaciones al mismo tiempo que se graba. Sin embargo también presenta problemas. El más importante es que no se ha capturado la interacción con el diálogo para abrir un archivo. Cactus Cactus Spam Filter es un software que puede ser usado con cualquier cliente de correo, por ejemplo: Thunderbird, Outlook, Outlook Express, Eudora, etc. Cactus Spam Filter funciona sobre Windows 2000 y Windows XP. El funcionamiento de Cactus Spam Filter es muy simple, pero efectivo, lo que hace es inspeccionar y modificar los correos que bajamos a través nuestro cliente de correo con el protocolo POP3, revisando el encabezado del correo que se esta recibiendo y en caso de detectarlo como Spam, cambia el “subject” o “asunto” insertando el tag “*** CACTUS SPAM ***”, pudiendo asi crearse una regla en el cliente de correo que cuando encuentre el tag, lo envie a la papelera. Simple y efectivo. La efectividad de Cactus Spam Filter aumenta a medida que lo utilizamos y le enseñamos que es Spam y que no lo es. Cuando llega un correo Spam que no fue identificado como tal, le enseñamos al software que ese correo es Spam, así irá aprendiendo los patrones de Spam que recibimos en nuestro email. Si nos llega correos de amigos o familiares desde cuentas de Hotmail o Gmail que son marcadas como Spam por Cactus Spam Filter, lo entrenamos para poner a nuestros contactos en la lista blanca. Un software altamente recomendado por su efectividad y lo fácil de usar para quienes tienen cuentas de correo electrónico que no poseen un servicio antispam phpAsserUnit Es un tipo de herramienta o framework para hacer pruebas en PHP (freeware). Se basa en jsAsserUnit. Es un tipo de wrapper para los metodos, por lo que provee las mismas funcionalidades, pero en un ambiente de desarrollo de PHP. Trabaja bajo las plataformas soportadas por PHP. PhpUnit Es un tipo de herramienta o framework para hacer pruebas con PHP (freeware). Es igual que Junit para Java pero este es para PHP. Trabaja bajo las plataformas soportadas por PHP. Al igual que JUnit, PHPUnit es un framework para unit testing en específico a PHP, que nos permite realizar prueba rápidamente, que son fáciles de hacer, leer y analizar e independientes entre sí, entre otros. PHPUnit es un framework para PHP que nos facilita la creación de juegos de tests y la ejecución de estos y analiza sus resultados. Aunque inicialmente PHP empezó como complemento dinámico para pequeñas páginas web, actualmente PHP se utiliza para desarrollar aplicaciones web complejas, por lo que es importante poder realizar las pruebas pertinentes a nuestro código. Entre las características nos encontramos con: Forma parte del grupo de frameworks de xUnit Puerto completo deJUnit para PHP5. Soporte para Mock Objects (jMock). Almacena los resultados en una Test Database. Se integra con varias aplicaciones de test. Cuadro comparativo Cactus JUnit Generación de reportes Spec Test Explorer Maker si si si si si si si Marathon Abbot Multiplataforma si si Diseño simple si si si si si si si si si si Pruebas lógicas si si si si si si Pruebas funcionales Pruebas desempeño de si si si si Bibliografía - http://es.wikipedia.org/wiki/JUnit - http://junit.sourceforge.net/ - http://en.wikipedia.org/wiki/Cactus - http://research.microsoft.com/specexplorer/ - http://www.navegapolis.net/content/view/462/88/ - http://www.centronsoftware.com/tcbasic.html - http://www.members.thebigbus.com/resources/TestMaker/index.htm - http://en.wikipedia.org/wiki/Marathon - http://abbot.sourceforge.net/doc/overview.shtml - http://www.testingfaqs.org/t-unit.html#phpAsserUnit - http://www.testingfaqs.org/t-unit.html#PhpUnit - http://www.appperfect.com/products/teststudio.html?gclid=CMit1d3Jjp MCFQ-WGgodNwVUgQ - http://www.opensourcetesting.org/unit_php.php - http://www.exefind.com/php-testing/