SlideShare una empresa de Scribd logo
PRUEBA UNITARIA
QUÉ ES LA PRUEBA UNITARIA
 En programación, una prueba unitaria es una
forma de comprobar el correcto
funcionamiento de una unidad de código. 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
correctamente 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
MOTIVOS PARA REALIZAR UN TEST UNITARIO
 Las pruebas unitarias demuestran que la lógica del código está en buen estado y que funcionará
en todos los casos.
 Aumentan la legibilidad del código y ayudan a los desarrolladores a entender el código base, lo
que facilita hacer cambios más rápidamente.
 Los test unitarios bien realizados sirven como documentación del proyecto.
 Se realizan en pocos milisegundos, por lo que podrás realizar cientos de ellas en muy poco tiempo.
 Las unit testing permiten al desarrollador refactorizar el código más adelante y tener la garantía de
que el módulo sigue funcionando correctamente. Para ello se escriben casos de prueba para todas
las funciones y métodos, para que cada vez que un cambio provoque un error, sea posible
identificarlo y repararlo rápidamente.
 La calidad final del código mejorará ya que, al estar realizando pruebas de manera continua, al
finalizar el código será limpio y de calidad.
 Como las pruebas unitarias dividen el código en pequeños fragmentos, es posible probar distintas
partes del proyecto sin tener que esperar a que otras estén completadas.
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.
 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 (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. 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
PARA REALIZAR LAS
PRUEBAS
 Typemock: 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.
 SimpleTest: Entorno de pruebas para aplicaciones realizadas en
PHP.
 PHPUnit: Sistema para la realización pruebas unitarias en PHP.
 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).
JORGE JEFFER ROSENDO FELIX
#21

Más contenido relacionado

PDF
Técnicas de programación y control PERT-CPM
DOC
Plan de pruebas_inces
PPTX
Agile Qa Framework Jacky Wu
PDF
2.4 ventajas y desventajas cobit
PDF
Principios programacion
PDF
Gestión requerimientos
ODP
Java EE Pattern: Entity Control Boundary Pattern and Java EE
PDF
TMAP Quality Engineering workshop on A4Q congress by Rik Marselis
Técnicas de programación y control PERT-CPM
Plan de pruebas_inces
Agile Qa Framework Jacky Wu
2.4 ventajas y desventajas cobit
Principios programacion
Gestión requerimientos
Java EE Pattern: Entity Control Boundary Pattern and Java EE
TMAP Quality Engineering workshop on A4Q congress by Rik Marselis

Similar a Prueba unitaria (20)

PPTX
Pruebas unitarias 7mo -b
PDF
Pruebas unitarias
PDF
Pruebas Unitarias
PPTX
Testeo unitario
PPS
Unit Testing
PDF
Desambiguación del Término - Pruebas Unitarias - por Jorge H. Abad abad L.
PDF
No debuggearás - Introducción al Unit Testing y TDD
PPTX
pruebasunitarias-110921232512-phpapp02.pptx
PPT
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
PPTX
Pruebas Unitarias
PPTX
Pruebas Automatizadas
PPT
Prueba software orientado a objetos
PPTX
PDF
Clean code 9
PDF
Conceptos básicos de Unit Test
PDF
presentacion de programacion Software testing.pdf
PPTX
Pruebas automaticas
PDF
Workshop - Pruebas Unitarias (con Java)
DOCX
Ingenieria de sw Junit
PPT
Act 4.3 pruebas de software
Pruebas unitarias 7mo -b
Pruebas unitarias
Pruebas Unitarias
Testeo unitario
Unit Testing
Desambiguación del Término - Pruebas Unitarias - por Jorge H. Abad abad L.
No debuggearás - Introducción al Unit Testing y TDD
pruebasunitarias-110921232512-phpapp02.pptx
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias
Pruebas Automatizadas
Prueba software orientado a objetos
Clean code 9
Conceptos básicos de Unit Test
presentacion de programacion Software testing.pdf
Pruebas automaticas
Workshop - Pruebas Unitarias (con Java)
Ingenieria de sw Junit
Act 4.3 pruebas de software
Publicidad

Último (20)

PDF
capacitación de aire acondicionado Bgh r 410
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
Distribucion de frecuencia exel (1).pdf
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PPT
Protocolos de seguridad y mecanismos encriptación
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
CyberOps Associate - Cisco Networking Academy
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
modulo seguimiento 1 para iniciantes del
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
capacitación de aire acondicionado Bgh r 410
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
Documental Beyond the Code (Dossier Presentación - 2.0)
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
la-historia-de-la-medicina Edna Silva.pptx
Distribucion de frecuencia exel (1).pdf
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Protocolos de seguridad y mecanismos encriptación
MANUAL de recursos humanos para ODOO.pdf
CyberOps Associate - Cisco Networking Academy
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
Presentacion de Alba Curso Auditores Internos ISO 19011
ccna: redes de nat ipv4 stharlling cande
modulo seguimiento 1 para iniciantes del
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
informe_fichas1y2_corregido.docx (2) (1).pdf
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Publicidad

Prueba unitaria

  • 2. QUÉ ES LA PRUEBA UNITARIA  En programación, una prueba unitaria es una forma de comprobar el correcto funcionamiento de una unidad de código. 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 correctamente 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
  • 3. MOTIVOS PARA REALIZAR UN TEST UNITARIO  Las pruebas unitarias demuestran que la lógica del código está en buen estado y que funcionará en todos los casos.  Aumentan la legibilidad del código y ayudan a los desarrolladores a entender el código base, lo que facilita hacer cambios más rápidamente.  Los test unitarios bien realizados sirven como documentación del proyecto.  Se realizan en pocos milisegundos, por lo que podrás realizar cientos de ellas en muy poco tiempo.  Las unit testing permiten al desarrollador refactorizar el código más adelante y tener la garantía de que el módulo sigue funcionando correctamente. Para ello se escriben casos de prueba para todas las funciones y métodos, para que cada vez que un cambio provoque un error, sea posible identificarlo y repararlo rápidamente.  La calidad final del código mejorará ya que, al estar realizando pruebas de manera continua, al finalizar el código será limpio y de calidad.  Como las pruebas unitarias dividen el código en pequeños fragmentos, es posible probar distintas partes del proyecto sin tener que esperar a que otras estén completadas.
  • 4. 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.  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.
  • 5. 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 (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.
  • 6. 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. 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.
  • 7. HERRAMIENTAS PARA REALIZAR LAS PRUEBAS  Typemock: 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.
  • 8.  SimpleTest: Entorno de pruebas para aplicaciones realizadas en PHP.  PHPUnit: Sistema para la realización pruebas unitarias en PHP.  CPPUnit: Versión del framework para lenguajes C/C++.
  • 9.  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).
  • 10. JORGE JEFFER ROSENDO FELIX #21