fbpx
Wikipedia

Prueba unitaria

En programación, una prueba unitaria o test unitario (del inglés: unit test) es una forma efectiva de comprobar el correcto funcionamiento de las unidades individuales más pequeñas de los programas informáticos [1]​. Por ejemplo en diseño estructurado o en diseño funcional una función o un procedimiento, en diseño orientado a objetos una clase. Esto sirve para asegurar que cada unidad funcione correcta y eficientemente por separado. Además de verificar que el código hace lo que tiene que hacer, verificamos que sea correcto el nombre, los nombres y tipos de los parámetros, el tipo de lo que se devuelve, que si el estado inicial es válido, entonces el estado final es válido tambié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. Luego, con las Pruebas de Integración, se podrá asegurar el correcto funcionamiento del sistema o subsistema en cuestión.

Características

Para que una prueba unitaria tenga la calidad suficiente 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.
  • Rápidas: Deben poder ejecutarse en fracciones de segundo, caso contrario serán obviadas.
  • 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:

  • Fomentan el cambio: Las pruebas unitarias facilitan que el programador cambie el código para mejorar su estructura[2]​ (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 defectos.
  • 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.
  • Documenta el código: Las propias pruebas son documentación del código, puesto que ahí se puede ver cómo utilizarlo.
  • 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 maquetados (mock object - maqueta) que habilitan de forma aislada (unitaria) el comportamiento de objetos complejos.
  • 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. Algunos enfoques se basan en la generación aleatoria de objetos para amplificar el alcance de las pruebas de unidad.[3]​ Esta técnica se conoce como testing aleatorio (RT, por random testing). 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

  • Typemock[1]: Entorno de pruebas para C++, C# y .NET - incluso puedes probar el código legado con él.
  • 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.
  • PHPUnit: Sistema para la realización pruebas unitarias en PHP.
  • Jest: Librería para escribir pruebas en JavaScript/TypeScript.
  • CPPUnit: Versión del framework para lenguajes C/C++.
  • NUnit: Versión del framework para la plataforma.NET.
  • FoxUnit: Entorno OpenSource de pruebas unitarias para Microsoft Visual FoxPro.
  • MOQ: Entorno para la creación dinámica de objetos simuladores (mocks). «MOQ». 
  • QUnit: Biblioteca para pruebas unitarias en Javascript. Creada por la fundación jQuery, ha sido reescrita para ser independiente de la biblioteca jQuery.
  • : Biblioteca portable para pruebas unitarias en C++ que usa el nuevo estándar C++11.
  • CUnit: Entorno para escribir, administrar y correr test unitarios en lenguaje C.
  • PyUnit: Framework para la elaboración de pruebas unitarias en python.
  • QtTest: Clases para pruebas unitarias en la biblioteca Qt (C++).
  • utPLSQL: Framework para la elaboración de pruebas unitarias en PLSQL.

Referencias

  1. «Unit testing: la prueba de calidad para software». IONOS Digitalguide. Consultado el 14 de junio de 2022. 
  2. «Diferencia entre pruebas unitarias y de integración.». 
  3. Barrientos, Pablo Andrés (04 de 2014). Enfoque para pruebas de unidad basado en la generación aleatoria de objetos. p. 101. Consultado el 28 de abril de 2014. 
  •   Datos: Q907375

prueba, unitaria, programación, prueba, unitaria, test, unitario, inglés, unit, test, forma, efectiva, comprobar, correcto, funcionamiento, unidades, individuales, más, pequeñas, programas, informáticos, ejemplo, diseño, estructurado, diseño, funcional, funció. En programacion una prueba unitaria o test unitario del ingles unit test es una forma efectiva de comprobar el correcto funcionamiento de las unidades individuales mas pequenas de los programas informaticos 1 Por ejemplo en diseno estructurado o en diseno funcional una funcion o un procedimiento en diseno orientado a objetos una clase Esto sirve para asegurar que cada unidad funcione correcta y eficientemente por separado Ademas de verificar que el codigo hace lo que tiene que hacer verificamos que sea correcto el nombre los nombres y tipos de los parametros el tipo de lo que se devuelve que si el estado inicial es valido entonces el estado final es valido tambien La idea es escribir casos de prueba para cada funcion no trivial o metodo en el modulo de forma que cada caso sea independiente del resto Luego con las Pruebas de Integracion se podra asegurar el correcto funcionamiento del sistema o subsistema en cuestion Indice 1 Caracteristicas 2 Ventajas 3 Limitaciones 4 Herramientas 5 ReferenciasCaracteristicas EditarPara que una prueba unitaria tenga la calidad suficiente se deben cumplir los siguientes requisitos Automatizable No deberia requerirse una intervencion manual Esto es especialmente util para integracion continua Completas Deben cubrir la mayor cantidad de codigo Rapidas Deben poder ejecutarse en fracciones de segundo caso contrario seran obviadas Repetibles o Reutilizables No se deben crear pruebas que solo puedan ser ejecutadas una sola vez Tambien es util para integracion continua Independientes La ejecucion de una prueba no debe afectar a la ejecucion de otra Profesionales Las pruebas deben ser consideradas igual que el codigo con la misma profesionalidad documentacion 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 funcion Ventajas EditarEl 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 codigo debe satisfacer Estas pruebas aisladas proporcionan cinco ventajas basicas Fomentan el cambio Las pruebas unitarias facilitan que el programador cambie el codigo para mejorar su estructura 2 lo que se ha dado en llamar refactorizacion puesto que permiten hacer pruebas sobre los cambios y asi asegurarse de que los nuevos cambios no han introducido defectos Simplifica la integracion Puesto que permiten llegar a la fase de integracion con un grado alto de seguridad de que el codigo esta funcionando correctamente De esta manera se facilitan las pruebas de integracion Documenta el codigo Las propias pruebas son documentacion del codigo puesto que ahi se puede ver como utilizarlo Separacion de la interfaz y la implementacion Dado que la unica interaccion entre los casos de prueba y las unidades bajo prueba son las interfaces de estas ultimas se puede cambiar cualquiera de los dos sin afectar al otro a veces usando objetos maquetados mock object maqueta que habilitan de forma aislada unitaria el comportamiento de objetos complejos Los errores estan mas acotados y son mas faciles de localizar Dado que tenemos pruebas unitarias que pueden desenmascararlos Limitaciones EditarEs importante darse cuenta de que las pruebas unitarias no descubriran todos los errores del codigo Algunos enfoques se basan en la generacion aleatoria de objetos para amplificar el alcance de las pruebas de unidad 3 Esta tecnica se conoce como testing aleatorio RT por random testing Por definicion solo prueban las unidades por si solas Por lo tanto no descubriran errores de integracion problemas de rendimiento y otros problemas que afectan a todo el sistema en su conjunto Ademas 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 solo son efectivas si se usan en conjunto con otras pruebas de software Herramientas EditarTypemock 1 Entorno de pruebas para C C y NET incluso puedes probar el codigo legado con el 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 PHPUnit Sistema para la realizacion pruebas unitarias en PHP Jest Libreria para escribir pruebas en JavaScript TypeScript CPPUnit Version del framework para lenguajes C C NUnit Version del framework para la plataforma NET FoxUnit Entorno OpenSource de pruebas unitarias para Microsoft Visual FoxPro MOQ Entorno para la creacion dinamica de objetos simuladores mocks MOQ QUnit Biblioteca para pruebas unitarias en Javascript Creada por la fundacion jQuery ha sido reescrita para ser independiente de la biblioteca jQuery libunittest Biblioteca portable para pruebas unitarias en C que usa el nuevo estandar C 11 CUnit Entorno para escribir administrar y correr test unitarios en lenguaje C PyUnit Framework para la elaboracion de pruebas unitarias en python QtTest Clases para pruebas unitarias en la biblioteca Qt C utPLSQL Framework para la elaboracion de pruebas unitarias en PLSQL Referencias Editar Unit testing la prueba de calidad para software IONOS Digitalguide Consultado el 14 de junio de 2022 Diferencia entre pruebas unitarias y de integracion Barrientos Pablo Andres 04 de 2014 Enfoque para pruebas de unidad basado en la generacion aleatoria de objetos p 101 Consultado el 28 de abril de 2014 Datos Q907375 Obtenido de https es wikipedia org w index php title Prueba unitaria amp oldid 144441113, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos