Prueba unitaria


Prueba unitaria

Prueba unitaria

En programación, una prueba unitaria es una forma de probar el correcto funcionamiento de un módulo de código. Esto sirve para asegurar que cada uno de los módulos funcione correctamente por separado. Luego, con las Pruebas de Integración, se podrá asegurar el correcto funcionamiento del sistema o subsistema en cuestión.

La idea es escribir casos de prueba para cada función no trivial o método en el módulo de forma que cada caso sea independiente del resto.

Contenido

Características

Para que una prueba unitaria sea buena se deben cumplir los siguientes requisitos:

  • Automatizable: no debería requerirse una intervención manual. Esto es especialmente útil para integración continua.
  • Completas: deben cubrir la mayor cantidad de código.
  • Repetibles o Reutilizables: no se deben crear pruebas que sólo puedan ser ejecutadas una sola vez. También es útil para integración continua.
  • Independientes: la ejecución de una prueba no debe afectar a la ejecución de otra.
  • Profesionales: las pruebas deben ser consideradas igual que el código, con la misma profesionalidad, documentación, etc.

Aunque estos requisitos no tienen que ser cumplidos al pie de la letra, se recomienda seguirlos o de lo contrario las pruebas pierden parte de su función.

Ventajas

El objetivo de las pruebas unitarias es aislar cada parte del programa y mostrar que las partes individuales son correctas. Proporcionan un contrato escrito que el trozo de código debe satisfacer. Estas pruebas aisladas proporcionan cinco ventajas básicas:

  1. Fomentan el cambio: Las pruebas unitarias facilitan que el programador cambie el código para mejorar su estructura (lo que se ha dado en llamar refactorización), puesto que permiten hacer pruebas sobre los cambios y así asegurarse de que los nuevos cambios no han introducido errores.
  2. Simplifica la integración: Puesto que permiten llegar a la fase de integración con un grado alto de seguridad de que el código está funcionando correctamente. De esta manera se facilitan las pruebas de integración.
  3. Documenta el código: Las propias pruebas son documentación del código puesto que ahí se puede ver cómo utilizarlo.
  4. Separación de la interfaz y la implementación: Dado que la única interacción entre los casos de prueba y las unidades bajo prueba son las interfaces de estas últimas, se puede cambiar cualquiera de los dos sin afectar al otro, a veces usando objetos mock (mock object) para simular el comportamiento de objetos complejos.
  5. Los errores están más acotados y son más fáciles de localizar: dado que tenemos pruebas unitarias que pueden desenmascararlos.

Limitaciones

Es importante darse cuenta de que las pruebas unitarias no descubrirán todos los errores del código. Por definición, sólo prueban las unidades por sí solas. Por lo tanto, no descubrirán errores de integración, problemas de rendimiento y otros problemas que afectan a todo el sistema en su conjunto. Además, puede no ser trivial anticipar todos los casos especiales de entradas que puede recibir en realidad la unidad de programa bajo estudio. Las pruebas unitarias sólo son efectivas si se usan en conjunto con otras pruebas de software.

Herramientas

  • JUnit: Entorno de pruebas para Java creado por Erich Gamma y Kent Beck. Se encuentra basado en SUnit creado originalmente para realizar pruebas unitarias para el lenguaje Smalltalk.
  • TestNG: Creado para suplir algunas deficiencias en JUnit.
  • JTiger: Basado en anotaciones, como TestNG.
  • SimpleTest: Entorno de pruebas para aplicaciones realizadas en PHP.
  • CPPUnit: Versión del framework para lenguajes C/C++.
  • NUnit: Versión del framework para la plataforma.NET.
  • MOQ : Framework para la creacion dinamica de objetos simuladores (mocks). http://code.google.com/p/moq/
Obtenido de "Prueba unitaria"

Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Prueba unitaria — En programación, una prueba unitaria es una forma de probar la corrección de un módulo de código. La idea es escribir casos de prueba para cada función no trivial o método en el módulo de forma que cada caso sea independiente del resto …   Enciclopedia Universal

  • Prueba de tensión (material) — Saltar a navegación, búsqueda Se denomina prueba de tensión al ensayo que permite conocer las características de un material cuando se somete a esfuerzos de tracción. El objetivo es determinar la resistencia a la rotura y las principales… …   Wikipedia Español

  • Dosis unitaria — La dosis unitaria (en inglés unit dose) es la cantidad de un producto tal como un fármaco o café que se administra al consumidor en una única dosis contenida en un recipiente no reutilizable. También existen los neologismos sinónimos unidosis y… …   Wikipedia Español

  • JUnit — Desarrollador Kent Beck, Erich Gamma, David Saff http://junit.sourceforge.net Información general Última versión estable …   Wikipedia Español

  • Desarrollo guiado por pruebas — Desarrollo guiado por pruebas, o Test driven development (TDD) es una práctica de programación que involucra otras dos prácticas: Escribir las pruebas primero (Test First Development) y Refactorización (Refactoring). Para escribir las pruebas… …   Wikipedia Español

  • PHPUnit — Desarrollador Sebastian Bergmann http://www.phpunit.de Información general Última versión estable 3.6 …   Wikipedia Español

  • Pruebas de validación — Saltar a navegación, búsqueda Las pruebas de validación en la ingeniería de software son el proceso de revisión que el sistema de software producido cumple con las especificaciones y que cumple su cometido. Es normalmente una parte del proceso de …   Wikipedia Español

  • Pruebas de regresión — Se denominan Pruebas de regresión a cualquier tipo de pruebas de software que intentan descubrir las causas de nuevos errores (bugs), carencias de funcionalidad, o divergencias funcionales con respecto al comportamiento esperado del software,… …   Wikipedia Español

  • Pruebas de integración — Saltar a navegación, búsqueda Pruebas integrales o pruebas de integración son aquellas que se realizan en el ámbito del desarrollo de software una vez que se han aprobado las pruebas unitarias. Únicamente se refieren a la prueba o pruebas de… …   Wikipedia Español

  • Depuración de programas — Saltar a navegación, búsqueda Una foto apócrifa del primer bug real, el cual fue depurado ( debuged ) en 1947 Depuración de programas es el proceso de identificar y corregir errores de programación. En inglés se le conoce como debugging, ya que… …   Wikipedia Español