Estas en:

Catálogo de servicios
Autentia (PDF 6,2MB)

tríptico de Autentia
En formato comic...

Acceso de usuarios registrados:

Deseo registrarme

He olvidado mis datos de acceso

Registra tu empresa:

Descubre las ventajas de registrar tu empresa en AdictosAlTrabajo...

Registrar mi empresa

Listado de empresas ya registradas

Google

Últimos tutoriales

+Noticias Destacadas

+Comentarios Cómic

  2009-08-28 - 11:17:42 AM
   rcanales escribío:
    Completamente de acuerdo contigo. Yo no se quien hace las cuentas en tu empresa [...]
  2009-08-28 - 07:01:44 AM
   Anonimo escribío:
    pues yo tengo el cuello rigido como una piedra porque el aire acondicionado esta [...]
  2009-07-23 - 10:32:12 PM
   Jaime escribío:
    definitivamente la parte mas divertida es la de programar, y la explotacion lo v [...]
  2009-05-13 - 11:26:33 PM
   williarim escribío:
    Quiero felicitar al autor de estas historietas! Gracias por compartir con todos [...]
  2009-05-13 - 04:40:59 PM
   rcanales escribío:
    Hola Brunoise: Todo tiene perspectiva. El función de tus forma de ser y ver e [...]

+Enlaces


Tutorial desarrollado por

Carlos García Pérez

Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

Técnico especialista en informática de empresa (CEU)

Ingeniero Técnico en Informática de Sistemas (UPM) *

Puedes encontrarme en Autentia

Catálogo de servicios de Autentia

Descargar (6,2 MB)

Descargar en versión comic (17 MB)

AdictosAlTrabajo.com es el Web de difusión de conocimiento de Autentia.

Catálogo de cursos

Fecha de creación del tutorial: 2006-06-02

Pruebas Mediante JUnit 4

JUnit 4. Pruebas de Software Java

Introducción

Yo trabajo en Autentia, una empresa en donde velamos por la calidad de nuestros desarrollos en todas las fases del ciclo de vida del software. Una fase importantísima es la Fase de Pruebas.

JUnit es un framework para realizar y automatizar pruebas de aplicaciones Java. Es decir, JUnit se sitúa en la fase de pruebas dentro del ciclo de Ingeniería del Software.

Este documento no trata de ser una referencia teórica sobre pruebas. Se centra en introducir al lector en el uso y las nuevas características de la versión JUnit 4 respecto a las anteriores.

Si quería remarcar dos conceptos teóricos:

  1. Nunca se puede asegurar que una aplicación funcionará correctamente siempre, pues es inviable económicamente realizar pruebas de todos los componentes individuales y de todos los componentes como conjunto.
  2. Las pruebas deben ser diseñadas para descubrir fallos y no para demostrar que el software funciona. Siendo más razonable diseñar pruebas de aquellas partes en donde la probabilidad de fallo es mayor.
  3. Las pruebas deben ser diseñadas por personas distintas a las personas que desarrollan el componente que se desea probar. De todos es bien sabido que conocemos los fallos de nuestros componentes y si el componente es ejecutado por las personas que lo desarrollan cuando lo enseñan, no van a ser tan ingenuos de hacer que falle.

Instalación de JUnit 4

JUnit 4 puede descargarse desde la siguiente dirección http://www.junit.org.

JUnit se distribuye como un fichero comprimido, lo descomprimimos y añadimos el fichero junit.jar al CLASSPATH de nuestro sistema.

Para realizar pruebas con JUnit 4.0, se requiere una versión de Java 5.0 o superior.

Ejemplo

A continuación presentamos una clase sobre la que vamos a realizar pruebas utilizando JUnit 4. La clase aporta una seria de funcionalidad sobre un array de cadenas de caracteres:

String getMaxLength()
Devuelve la cadena que más caracteres tenga.
int getTotalLength()
Devuelve la suma de la longitud de todas las cadenas de caracteres.
int getIndexOf(String) throws java.util.NoSuchElementException
Devuelve la posición que ocupa una determinada cadena o lanza una java.util.NoSuchElementException si la cadena no existe.

Bueno ya tenemos la clase sobre la que vamos a realizar las pruebas de unidad, ahora vamos a diseñar otra clase con las pruebas a realizar.

BeforeClass:
Sólo puede haber un método con este marcador.
Este método será invocado una vez al principio del lanzamiento de todas las pruebas. Se suele utilizar para inicializar los atributos comunes a todas las pruebas o para realizar acciones que tardan un tiempo considerarse en ejecutarse.
AfterClass:
Sólo puede haber un método con este marcador. Este método será invocado un sóla vez cuando finalizen todas las pruebas.
Before:
Los métodos marcados con está anotación, serán invocados antes de iniciarse cada prueba.
After:
Los métodos marcados con está anotación, serán invocados después de ejecutarse cada prueba.
Test:
Representa un test que se debe ejecutar.
Puede tener dos tipos de modificadores:
  • Test(timeout=X) que significa que el test será válido si se ejecuta en un tiempo máximo de X milisegundos.
  • Test(expected = java.util.NoSuchElementException.class). Que significa que el test será válido si se lanza una determinada excepción.
Ignore:
Los métodos marcados con esta anotación no serán ejecutados. Se suelen poner para desactivar las pruebas que no pueden ser realizadas por algún motivo.
Puede tener un parámetro que indica un texto que se visualizará en la la plataforma donde se ejecuten los test.
Ejemplo: Ignore("Se desactiva esta prueba hasta que tengamos privilegios de conexión con la base de datos.");

Conclusiones

Al igual que la gran mayoría de las tecnologías del mundo Java, JUnit evoluciona para aportar nuevas mejoras y hacernos la vida más fácil a los programadores, diseñadores de pruebas, etc.

Ahora JUnit incorpora las siguientes ventajas y modificaciones respecto a versiones anteriores

  • Las clases que contienen los métodos que representan las pruebas ya no tienen que ser subclases de junit.framework.TestCase
  • Los métodos que representan las pruebas a realizar ya no tienen que tener el prefijo "test" en su nombre sino que se indican con la anotación @Test
  • Sustitución del método 'setUp' por la anotación o anotaciones @Before.
  • Sustitución del método 'tearDown' por la anotación o anotaciones @After.
  • Se pueden realizar pruebas en donde el tiempo de ejecución es crítico. De manera que una prueba falle si tarda más de X milisegundos en ser ejecutada.
  • Se pueden realizar pruebas en donde se debe controlar que una excepción es lanzada.
  • Se pueden desactivar pruebas, a través de la anotación @Ignore.

¿Qué te ha parecido el tutorial? Déjanos saber tu opinión y ¡vota!

Muy malo Malo Regular Bueno Muy bueno
 


(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Anímate y coméntanos lo que pienses sobre este tutorial

Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.


(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Autor Mensaje de usuario registrado
jcarmonaloeches Fecha de envío: 2009-10-20 - 06:19:20
Una aportación más:

En un entorno ideal, es conveniente que las pruebas las realiza una persona, y el desarrollo otra diferente. El objetivo de las pruebas es DETECTAR errores, y si las realiza un programador, inconscientemente puede programarlas para que estas sean correctas.
Un sistema de pruebas es efectivo CUANTO MAS errores detecte, no olvidemos este concepto y el ideal de desarrollo de Software (que en muchas ocasiones, choca con la practicidad del mundo real).


jcarmonaloeches Fecha de envío: 2009-10-20 - 06:05:11
Otra observación:
En un entorno ideal, se realizan las siguientes pruebas:
Pruebas Unitarias, Pruebas de Integración, Pruebas de Sistema.

La ventaja de aplicar JUnit es que las pruebas unitarias se automatizan. La ventaja es que si realizamos modificaciones en el código, podemos reutilizar este banco de pruebas para ver si nuevos requisitos interfieren en el funcionamiento antiguo.

Una maravilla tecnológica.
jcarmonaloeches Fecha de envío: 2009-10-20 - 06:01:12
Animo a la gente a probar la siguiente opción.
Una BD de desarrollo, otra BD de preproducción, otra BD de producción.
Las pruebas del sistema se desarrollan en una BD emulada, con datos introducidos mediante DBUnit.

Una aplicación sencilla en Java, con BD en MySQL, puede ser testeada con una BD HSQLDB utilizando JUnit para pruebas y DBUnit para introducir los datos que deseemos.

Saludos cordiales,
Jaime.
jcarmonaloeches Fecha de envío: 2009-10-20 - 05:58:28
Es un buen tutorial, como la mayoría de esta página.
Una vez más, gracias por compartir tiempo y conocimiento con todos nosotros. Vuestra implicación en el mundo de la informática es digno de admiración.
Autor Mensaje de usuario anónimo
nencer calderon Fecha de envío: 2009-07-01 - 12:02:35 AM
el programa esta muy completo queria pedirte el favor de que si sabes de software freware para hacer procesos de pruebas durante todo el ciclo de un proyecto. ejemplo: software para hacer pruebas de recorrido. software para hacer pruebas de integridad de datos. software para hacer pruebas funcionales. software para hacer pruebas de ciclo de negocio. software para hacer pruebas de desempeño. software para hacer pruebas de carga. software para hacer pruebas de estres. software para hacer pruebas de volumen. software para hacer pruebas de seguridad. software para hacer pruebas de seguridad en el codigo. software para hacer pruebas de tolerancia a fallas. software para hacer pruebas de configuracion. software para hacer pruebas de instalacion. si sabes de alguna herramienta para hacer cualquiera de estos tipos de prueba te lo agradeceria. correo alterno: nen.calderon@misena.edu.co


Creative Commons License Esta obra está licenciada bajo licencia Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5

Recuerda

Autentia te regala la mayoría del conocimiento aquí compartido (Ver todos los tutoriales). Somos expertos en: J2EE, Struts, JSF, C++, OOP, UML, UP, Patrones de diseño ... y muchas otras cosas.

¿Nos vas a tener en cuenta cuando necesites consultoría o formación en tu empresa?, ¿Vas a ser tan generoso con nosotros como lo tratamos de ser con vosotros?

Somos pocos, somos buenos, estamos motivados y nos gusta lo que hacemos ...

Autentia = Soporte a Desarrollo & Formación.

info@autentia.com

Tutoriales recomendados

Nombre Resumen
Fecha
Visitas Valoración Votos Pdf
JMeter. Uso de funciones. En este tutorial tratamos el uso de las funciones más habituales de la herramienta JMeter. 2010-01-26 462 - -
JMeter. Gestión de usuarios En este tutorial tratamos la simulación de distintos usuarios, en la herramienta JMeter, mediante el archivo externo users.xml o mediante la función Counter. 2010-01-14 696 - -
JMeter y JSF. Extracción del parámetro ViewState En este tutorial ofrecemos una solución a la parametrización del atributo ViewState, de JSF (Java Server Faces), cuando ejecutamos scripts de pruebas de carga mediante la herramienta JMeter. 2010-01-11 661 - -
PHP Vs Java El cometido de este documento es el de realizar un análisis en profundidad de dos tecnologías ampliamente aceptadas por la comunidad diseñadora de portales web, como son PHP y Java. 2010-01-04 1637 - -
Procesador Inteligente de Eventos (IEP) con OpenESB En este tutorial mostramos un ejemplo practico de gestion de eventos en SOA con IEP (Intelligent Event Processor) de OpenESB y probamos el resultado con soapUI 2010-01-04 702 - -
Tutorial de BPEL con OpenESB (I) En este tutorial vamos a aprender a crear procesos BPEL practicando con un ejemplo: un proceso de negocio de venta online de libros. 2009-12-29 1416 - -
Tutorial de BPEL con OpenESB (II) Continuación del Tutorial de BPEL con OpenESB (I). 2009-12-29 1076 - -
Pruebas funcionales de servicios web con soapUI Las pruebas unitarias en cualquier paradigma de programación son, más que una buena práctica, una garantía para obtener un software robusto y (más) fácilmente mantenible. Como responsables de diseño o desarrollo de web services hemos de aplicar estas buen 2009-12-28 1117 - -
JavaBean Datasource Ireport La particularidad del caso que nos ocupa, es conseguir que la fuente de datos del informe sea una lista de JavaBeans y no una consulta definida previamente en el informe. 2009-12-14 1257 Bueno 1
Analizando la calidad del código Java con Sonar En este tutorial vamos a dar a conocer la herramienta Sonar para el control de la calidad del código de nuestros proyectos 2009-12-07 1591 - -

Nota:

Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento. Los contenidos y comentarios de los tutoriales son responsabilidad de sus respectivos autores. En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de sus respectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene más que solicitarlo. Si alguien encuentra algún problema con la información publicada en este Web, rogamos que informe al administrador rcanales@adictosaltrabajo.com para su resolución.