SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Universidad Nacional de San Juan
 Facultad de Ciencias Exactas, Físicas y Naturales
                          23 de Noviembre de 2010




           José Luis Rodríguez Roldan
                     joseluis.rodriguezroldan@gmail.com
Pruebas o Testing (Tipos)
Pruebas unitarias *
Pruebas funcionales : Es un proceso para procurar encontrar discrepancias
entre las funcionalidades del programa y la especificación funcional.
Pruebas de Integración : Es cuando se han aprobado las pruebas unitarias, se
prueban todos los elementos que componen un proceso.
Pruebas de validación : Es el proceso de comprobación que lo que se a
desarrollado es lo que el usuario quería , es como se debe de comportar el
programa desde el punto de vista del usuario.
Pruebas de sistema : Es la comprobación que se le realiza al producto en
forma completa.
Pruebas de aceptación : Es la comprobación que realiza un grupo de
usuarios o clientes , para asegurarse que el sistema desarrollado cumple sus
requisitos.
Pruebas de regresión: Es la comprobación que intenta descubrir las causas
de errores, falta de funcionalidades o cualquier comportamiento no esperado
después de realizado un cambio y que anteriormente no se producía.
Pruebas de carga: Es para observar el comportamiento de una aplicación bajo
una cantidad de peticiones esperadas. Tienen el propósito de encontrar cuellos
de botellas en la aplicación
Pruebas de prestaciones: Es simular la normal utilización del sistema para
identificar problemas de rendimiento y desgracian de recursos para facilitar su
corrección.
Pruebas o Testing (Tipos)
Introducción a TCA
              Que es TCA (Test After Coding)
Son los test que se realizan, después que el código ya esta
escrito .
Los casos de prueba se suelen escribir después de
implementar el modulo cuyo funcionamiento se
pretende verificar.
A veces se preparan en paralelo si el programador y la
persona que realizan las pruebas (tester) no son la
misma persona.
Introducción a TDD
                Que es TDD (Test Driven Development)
Es una metodología de programación que involucra 2 prácticas:
Escribir primero las pruebas unitarias, o sea, escribir el test antes de
escribir el programa y refactoring.
                             Ciclo del TDD:
1. Escribir un test e intentar compilar, aunque aun no sea posible
    porque no se desarrollo la funcionalidad correspondiente.
2. Escribir la mínima cantidad de código posible para que la
    prueba unitaria compile y ejecutarla. Deberá fallar, ya que no
    tiene la funcionalidad requerida.
3. Escribir el test de tal manera, que al ser ejecutado, este no falle.
    La idea es que la función escrita no sea lo más elegante y
    optimo posible, sino que simplemente, permita pasar el test
    unitario exitosamente.
4. Refactorizar el código de la función, para que sea lo más
    optimo posible. Es muy posible que existan varias instancias de
    refactorización del código de la función en distintas etapas del
    proyecto.
5. Escribir un nuevo test unitario para otra funcionalidad.
Ciclo del TDD
Test Unitario (Unit Test)
Un test unitario (Unit Test) es un trozo de
código desarrollado con el único objetivo de
verificar que una rutina o función de nuestro
código está funcionando según esperamos.
Test simples que cubren las instancias de
clases en diferentes escenarios.
Condiciones de pruebas diseñadas.
Resultados verificados.
Test Unitario (Unit Test)
     ¿Por qué usar Test Unitario (Unit Test) ?
1.   Facilita los cambios en la aplicación ya que las pruebas nos
     asegurarán que los nuevos cambios no han introducido errores.
2.   Simplifica la integración gracias a 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 un libro abierto
     sobre el funcionamiento de la función y los resultados esperados.
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.
5.   Los errores están más acotados y son más fáciles de localizar:
     dado que tenemos preparado un test para cada función que puede
     desenmascararlo.
6.   Aunque pueda parecer mentira, los test unitarios aceleran el
     desarrollo de nuestro software.
7.   Ayuda a tener un código desacoplado gracias a que cada una de
     nuestras funciones está pensada para devolver un resultado que
     podrá ser testeado.
Test Unitario (Unit Test)
                                   Herramientas
Debido al gran éxito que esta metodología está teniendo en el mundo de la ingeniería
del software, son muchas y variadas las herramientas que se han ido desarrollando
hasta día de hoy. Algunas han surgido en forma de frameworks, otras en formato plug-
in bajo el control de algún browser o incluso como librerías para su uso en plataformas
de programación.
Entre los que podemos citar a:
 JUnit: Entorno de pruebas para Java creado por Erich Gamma y Kent Beck.
 HttpUnit: viene a ser un cliente web programable. Se puede usar de forma aislada o
como complemento del framework Junit.
 DBUnit: en realidad es una extensión de JUnit que tiene como ventaja el poder tener
en cuenta la existencia de una base de datos a la hora de realizar las pruebas de los test
 SimpleTest: Entorno de pruebas para aplicaciones realizadas en PHP.
 PHPUnit: framework para realizar pruebas unitarias en PHP.
 CPPUnit: Versión del framework para lenguajes C/C++.
 NUnit: Versión del framework para la plataforma.NET.
 FoxUnit: framework OpenSource de pruebas unitarias para Microsoft Visual FoxPro.
 TestNG: Creado para suplir algunas deficiencias en JUnit.
 JTiger: Basado en anotaciones, como TestNG.
 Selenium: es toda una herramienta dedicada al Test-driven Development, tiene
distintos formatos en los que puede ser utilizados y aporta una importante cantidad de
funcionalidades nuevas para la creación de los test.
Test Unitario (Unit Test)
                                      Assert
La mayoria de las herramientas tienen assert, que son afirmaciones que son usada para
comprobar suposiciones en el programa, colocada donde el desarrollador considera
que su ennunciado es siempre verdadero.
Esto da lugar a que existan afirmaciones y por lo tanto condiciones antes
(precondiciones) y despues (postcondiciones) de la ejecución de determinadas lineas
de código, lo que da lugar a las pruebas unitarias.

Ejemplo
int b= 3;
b= b+8;
System.out.println(“b tiene valor: “, b);
(b==11) //assert
b= b*2;
Test Unitario (Unit Test)
       Assert Junit (java)
Demo

Más contenido relacionado

La actualidad más candente

Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionAbner Gerardo
 
Ppt de ingenieria de requerimiento
Ppt de ingenieria de requerimientoPpt de ingenieria de requerimiento
Ppt de ingenieria de requerimientomely1930
 
mapa mental sobre ingeniería de requisitos.pdf
mapa mental sobre ingeniería de requisitos.pdfmapa mental sobre ingeniería de requisitos.pdf
mapa mental sobre ingeniería de requisitos.pdfCarlosEspinel10
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosFranklin Parrales Bravo
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareGustavo Cuen
 
Ejemplo plan de_pruebas
Ejemplo plan de_pruebasEjemplo plan de_pruebas
Ejemplo plan de_pruebasnicolas2100
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de softwareisisparada
 

La actualidad más candente (20)

Requerimientos norma ieee830
Requerimientos norma ieee830Requerimientos norma ieee830
Requerimientos norma ieee830
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacion
 
Ppt de ingenieria de requerimiento
Ppt de ingenieria de requerimientoPpt de ingenieria de requerimiento
Ppt de ingenieria de requerimiento
 
Factores de calidad del software
Factores de calidad del softwareFactores de calidad del software
Factores de calidad del software
 
mapa mental sobre ingeniería de requisitos.pdf
mapa mental sobre ingeniería de requisitos.pdfmapa mental sobre ingeniería de requisitos.pdf
mapa mental sobre ingeniería de requisitos.pdf
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Plan de pruebas
Plan de pruebasPlan de pruebas
Plan de pruebas
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitos
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Guia iso 9126
Guia iso 9126Guia iso 9126
Guia iso 9126
 
Ensayo Cliente Servidor
Ensayo Cliente ServidorEnsayo Cliente Servidor
Ensayo Cliente Servidor
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
ejemplos de pruebas unitarias y de integracion
ejemplos de pruebas unitarias y de integracion ejemplos de pruebas unitarias y de integracion
ejemplos de pruebas unitarias y de integracion
 
Ejemplo plan de_pruebas
Ejemplo plan de_pruebasEjemplo plan de_pruebas
Ejemplo plan de_pruebas
 
Pruebas Unitarias
Pruebas Unitarias Pruebas Unitarias
Pruebas Unitarias
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de software
 

Destacado

Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...carlblakc
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETLa Red DBAccess
 
Software caja negra y caja blanca
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blancaStudentPc
 
Estrategias de aplicaciones para las pruebas de integración
Estrategias  de aplicaciones para las pruebas de integraciónEstrategias  de aplicaciones para las pruebas de integración
Estrategias de aplicaciones para las pruebas de integraciónPablo Navarrete
 
PRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNPRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNadark
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de softwarexpjair
 
Plan de pruebas 2.7.9
Plan de pruebas 2.7.9Plan de pruebas 2.7.9
Plan de pruebas 2.7.9Johana201225
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web modernoSebastián Rocco
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVCSebastián Rocco
 
Vision Actual Del Universo Y Su Forma Ppt
Vision Actual Del Universo Y Su Forma PptVision Actual Del Universo Y Su Forma Ppt
Vision Actual Del Universo Y Su Forma Pptfernando jimenez
 
Quality testing genexus day v5 (1)
Quality testing genexus day v5 (1)Quality testing genexus day v5 (1)
Quality testing genexus day v5 (1)GeneXus
 
Estrategias y técnicas de pruebas de software
Estrategias y técnicas de pruebas de softwareEstrategias y técnicas de pruebas de software
Estrategias y técnicas de pruebas de softwarepadrino98
 
Propuesta adadolescentes y desercionolescentes embarazo
Propuesta adadolescentes y desercionolescentes embarazoPropuesta adadolescentes y desercionolescentes embarazo
Propuesta adadolescentes y desercionolescentes embarazoEmidsen Flores
 
Gestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo softwareGestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo softwareLaura M. Castro
 
Clase 05c niveles de pruebas
Clase 05c niveles de pruebasClase 05c niveles de pruebas
Clase 05c niveles de pruebasDemián Gutierrez
 

Destacado (20)

Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
Software caja negra y caja blanca
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blanca
 
Estrategias de aplicaciones para las pruebas de integración
Estrategias  de aplicaciones para las pruebas de integraciónEstrategias  de aplicaciones para las pruebas de integración
Estrategias de aplicaciones para las pruebas de integración
 
PRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNPRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓN
 
Pruebas de caja blanca y negra
Pruebas  de caja blanca y negraPruebas  de caja blanca y negra
Pruebas de caja blanca y negra
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
 
Plan de pruebas 2.7.9
Plan de pruebas 2.7.9Plan de pruebas 2.7.9
Plan de pruebas 2.7.9
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVC
 
Vision Actual Del Universo Y Su Forma Ppt
Vision Actual Del Universo Y Su Forma PptVision Actual Del Universo Y Su Forma Ppt
Vision Actual Del Universo Y Su Forma Ppt
 
Quality testing genexus day v5 (1)
Quality testing genexus day v5 (1)Quality testing genexus day v5 (1)
Quality testing genexus day v5 (1)
 
Estrategias y técnicas de pruebas de software
Estrategias y técnicas de pruebas de softwareEstrategias y técnicas de pruebas de software
Estrategias y técnicas de pruebas de software
 
Propuesta adadolescentes y desercionolescentes embarazo
Propuesta adadolescentes y desercionolescentes embarazoPropuesta adadolescentes y desercionolescentes embarazo
Propuesta adadolescentes y desercionolescentes embarazo
 
Gestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo softwareGestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo software
 
Clase 05c niveles de pruebas
Clase 05c niveles de pruebasClase 05c niveles de pruebas
Clase 05c niveles de pruebas
 
prueba de aplicaciones convencionales
prueba de aplicaciones convencionalesprueba de aplicaciones convencionales
prueba de aplicaciones convencionales
 

Similar a Pruebas unitarias

pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxCompusoftnetCiaLtda
 
Mapa conseptual tipos de pruebas.
Mapa conseptual tipos de pruebas.Mapa conseptual tipos de pruebas.
Mapa conseptual tipos de pruebas.LuisManuelPoot
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.Juan Ravi
 
Pruebas software (1)
Pruebas  software (1)Pruebas  software (1)
Pruebas software (1)René Pari
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de softwareLuis Domingo
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de softwareLuis Domingo
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de softwareLuis Domingo
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de softwareLuis Domingo
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de softwareGomez Gomez
 
Estrategias de aplicación de pruebas
Estrategias de aplicación de pruebasEstrategias de aplicación de pruebas
Estrategias de aplicación de pruebasAldo Sánchez
 
Estrategias de aplicación de pruebas
Estrategias de aplicación de pruebasEstrategias de aplicación de pruebas
Estrategias de aplicación de pruebasAldo Sánchez
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -bJairoSimbaa
 
Act 4.3 pruebas de software
Act 4.3 pruebas de softwareAct 4.3 pruebas de software
Act 4.3 pruebas de softwareRodrigo Santiago
 
Act 4.3 pruebas de software
Act 4.3 pruebas de softwareAct 4.3 pruebas de software
Act 4.3 pruebas de softwareRodrigo Santiago
 

Similar a Pruebas unitarias (20)

pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptx
 
Prueba unitaria
Prueba unitariaPrueba unitaria
Prueba unitaria
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 
Mapa conseptual tipos de pruebas.
Mapa conseptual tipos de pruebas.Mapa conseptual tipos de pruebas.
Mapa conseptual tipos de pruebas.
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.
 
Presentation_1368477015714
Presentation_1368477015714Presentation_1368477015714
Presentation_1368477015714
 
Pruebas software (1)
Pruebas  software (1)Pruebas  software (1)
Pruebas software (1)
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de software
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de software
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de software
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de software
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
ESTRATE
ESTRATEESTRATE
ESTRATE
 
Prubea de software
Prubea de softwarePrubea de software
Prubea de software
 
Estrategias de aplicación de pruebas
Estrategias de aplicación de pruebasEstrategias de aplicación de pruebas
Estrategias de aplicación de pruebas
 
Estrategias de aplicación de pruebas
Estrategias de aplicación de pruebasEstrategias de aplicación de pruebas
Estrategias de aplicación de pruebas
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -b
 
7iSF-4 test driver development
7iSF-4   test driver development7iSF-4   test driver development
7iSF-4 test driver development
 
Act 4.3 pruebas de software
Act 4.3 pruebas de softwareAct 4.3 pruebas de software
Act 4.3 pruebas de software
 
Act 4.3 pruebas de software
Act 4.3 pruebas de softwareAct 4.3 pruebas de software
Act 4.3 pruebas de software
 

Pruebas unitarias

  • 1. Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales 23 de Noviembre de 2010 José Luis Rodríguez Roldan joseluis.rodriguezroldan@gmail.com
  • 2. Pruebas o Testing (Tipos) Pruebas unitarias * Pruebas funcionales : Es un proceso para procurar encontrar discrepancias entre las funcionalidades del programa y la especificación funcional. Pruebas de Integración : Es cuando se han aprobado las pruebas unitarias, se prueban todos los elementos que componen un proceso. Pruebas de validación : Es el proceso de comprobación que lo que se a desarrollado es lo que el usuario quería , es como se debe de comportar el programa desde el punto de vista del usuario. Pruebas de sistema : Es la comprobación que se le realiza al producto en forma completa. Pruebas de aceptación : Es la comprobación que realiza un grupo de usuarios o clientes , para asegurarse que el sistema desarrollado cumple sus requisitos. Pruebas de regresión: Es la comprobación que intenta descubrir las causas de errores, falta de funcionalidades o cualquier comportamiento no esperado después de realizado un cambio y que anteriormente no se producía. Pruebas de carga: Es para observar el comportamiento de una aplicación bajo una cantidad de peticiones esperadas. Tienen el propósito de encontrar cuellos de botellas en la aplicación Pruebas de prestaciones: Es simular la normal utilización del sistema para identificar problemas de rendimiento y desgracian de recursos para facilitar su corrección.
  • 4. Introducción a TCA Que es TCA (Test After Coding) Son los test que se realizan, después que el código ya esta escrito . Los casos de prueba se suelen escribir después de implementar el modulo cuyo funcionamiento se pretende verificar. A veces se preparan en paralelo si el programador y la persona que realizan las pruebas (tester) no son la misma persona.
  • 5. Introducción a TDD Que es TDD (Test Driven Development) Es una metodología de programación que involucra 2 prácticas: Escribir primero las pruebas unitarias, o sea, escribir el test antes de escribir el programa y refactoring. Ciclo del TDD: 1. Escribir un test e intentar compilar, aunque aun no sea posible porque no se desarrollo la funcionalidad correspondiente. 2. Escribir la mínima cantidad de código posible para que la prueba unitaria compile y ejecutarla. Deberá fallar, ya que no tiene la funcionalidad requerida. 3. Escribir el test de tal manera, que al ser ejecutado, este no falle. La idea es que la función escrita no sea lo más elegante y optimo posible, sino que simplemente, permita pasar el test unitario exitosamente. 4. Refactorizar el código de la función, para que sea lo más optimo posible. Es muy posible que existan varias instancias de refactorización del código de la función en distintas etapas del proyecto. 5. Escribir un nuevo test unitario para otra funcionalidad.
  • 7. Test Unitario (Unit Test) Un test unitario (Unit Test) es un trozo de código desarrollado con el único objetivo de verificar que una rutina o función de nuestro código está funcionando según esperamos. Test simples que cubren las instancias de clases en diferentes escenarios. Condiciones de pruebas diseñadas. Resultados verificados.
  • 8. Test Unitario (Unit Test) ¿Por qué usar Test Unitario (Unit Test) ? 1. Facilita los cambios en la aplicación ya que las pruebas nos asegurarán que los nuevos cambios no han introducido errores. 2. Simplifica la integración gracias a 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 un libro abierto sobre el funcionamiento de la función y los resultados esperados. 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. 5. Los errores están más acotados y son más fáciles de localizar: dado que tenemos preparado un test para cada función que puede desenmascararlo. 6. Aunque pueda parecer mentira, los test unitarios aceleran el desarrollo de nuestro software. 7. Ayuda a tener un código desacoplado gracias a que cada una de nuestras funciones está pensada para devolver un resultado que podrá ser testeado.
  • 9. Test Unitario (Unit Test) Herramientas Debido al gran éxito que esta metodología está teniendo en el mundo de la ingeniería del software, son muchas y variadas las herramientas que se han ido desarrollando hasta día de hoy. Algunas han surgido en forma de frameworks, otras en formato plug- in bajo el control de algún browser o incluso como librerías para su uso en plataformas de programación. Entre los que podemos citar a: JUnit: Entorno de pruebas para Java creado por Erich Gamma y Kent Beck. HttpUnit: viene a ser un cliente web programable. Se puede usar de forma aislada o como complemento del framework Junit. DBUnit: en realidad es una extensión de JUnit que tiene como ventaja el poder tener en cuenta la existencia de una base de datos a la hora de realizar las pruebas de los test SimpleTest: Entorno de pruebas para aplicaciones realizadas en PHP. PHPUnit: framework para realizar pruebas unitarias en PHP. CPPUnit: Versión del framework para lenguajes C/C++. NUnit: Versión del framework para la plataforma.NET. FoxUnit: framework OpenSource de pruebas unitarias para Microsoft Visual FoxPro. TestNG: Creado para suplir algunas deficiencias en JUnit. JTiger: Basado en anotaciones, como TestNG. Selenium: es toda una herramienta dedicada al Test-driven Development, tiene distintos formatos en los que puede ser utilizados y aporta una importante cantidad de funcionalidades nuevas para la creación de los test.
  • 10. Test Unitario (Unit Test) Assert La mayoria de las herramientas tienen assert, que son afirmaciones que son usada para comprobar suposiciones en el programa, colocada donde el desarrollador considera que su ennunciado es siempre verdadero. Esto da lugar a que existan afirmaciones y por lo tanto condiciones antes (precondiciones) y despues (postcondiciones) de la ejecución de determinadas lineas de código, lo que da lugar a las pruebas unitarias. Ejemplo int b= 3; b= b+8; System.out.println(“b tiene valor: “, b); (b==11) //assert b= b*2;
  • 11. Test Unitario (Unit Test) Assert Junit (java)
  • 12. Demo