2. Pruebas o Testing (Tipos)
⚫ Pruebasunitarias *
⚫ Pruebas funcionales : Es un proceso para procurarencontrardiscrepancias
entre las funcionalidades del programay laespecificación funcional.
⚫ Pruebasde Integración : Es cuando se han aprobado las pruebasunitarias, se
prueban todos los elementosque 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
programadesdeel punto devista del usuario.
⚫ Pruebasdesistema : Es lacomprobación que se le realizaal producto en
formacompleta.
⚫ Pruebasdeaceptación : Es lacomprobación que realiza un grupo de
usuarios oclientes , paraasegurarseque el sistemadesarrolladocumple 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ésde realizadoun cambioyque 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 botellasen laaplicación
⚫ Pruebas de prestaciones: Es simular la normal utilización del sistema para
identificar problemasde rendimiento y desgracian de recursospara facilitarsu
corrección.
4. Introducción a TCA
⚫Quees TCA (Test After Coding)
Son los test que se realizan, después que el códigoya esta
escrito .
implementar el modulo cuyo funcionamiento
Los casos de prueba se suelen escribir después de
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:
Escribirprimero las pruebas unitarias, o sea, escribirel testantesde
escribirel programay refactoring.
⚫ Ciclodel TDD:
1. Escribirun teste intentarcompilar, aunqueaun no sea posible
porque no sedesarrollo la funcionalidad correspondiente.
2. Escribir la mínimacantidad decódigo posible paraque la
prueba unitariacompiley ejecutarla. Deberá fallar,ya que no
tiene la funcionalidad requerida.
3. Escribirel testde tal manera, que al serejecutado, este no falle.
La idea es que la función escrita no sea lo más elegante y
optimoposible, sinoque simplemente, permitapasarel test
unitarioexitosamente.
4. Refactorizar el código de la función, para que sea lo más
optimoposible. Es muy posibleque existanvarias instanciasde
refactorización del código de la función en distintas etapas del
proyecto.
5. Escribirun nuevo test unitarioparaotra funcionalidad.
7. Test Unitario (Unit Test)
⚫Un test unitario (Unit Test) es un trozo de
códigodesarrolladocon el únicoobjetivode
verificarque una rutinao función de nuestro
códigoestá funcionandosegún esperamos.
⚫Testsimples que cubren las instancias de
clases en diferentesescenarios.
⚫Condicionesde pruebasdiseñadas.
⚫Resultadosverificados.
8. Test Unitario (Unit Test)
¿Porqué usar Test Unitario (UnitTest) ?
1. Facilita los cambios en la aplicación ya que las pruebas nos
asegurarán que los nuevoscambios no han introducidoerrores.
2. Simplifica la integración gracias aque permiten llegara la fase de
integración con un grado alto de seguridad de que el código está
funcionandocorrectamente. De esta manera se facilitan las pruebas
de integración.
3. Documentael código. Las propias pruebas son un libroabierto
sobreel funcionamientode la funcióny los resultadosesperados.
4. Separaciónde la interfazy la implementación. Dadoque 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 afectaral otro.
5. Los errores están más acotados y son más fáciles de localizar:
dadoque tenemos preparado un testparacada funciónque puede
desenmascararlo.
6. Aunque pueda parecer mentira, los testunitarios aceleran el
desarrollo de nuestrosoftware.
7. Ayudaa tenerun códigodesacoplado gracias aque cada unade
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
hastadíade hoy. Algunas han surgidoen formade frameworks, otras en formato plug-
in bajoel control dealgún browsero inclusocomo librerías parasu usoen plataformas
deprogramación.
Entre los quepodemoscitara:
⚫JUnit: Entornodepruebaspara Javacreadopor Erich Gammay Kent Beck.
⚫HttpUnit: vienea serun clienteweb programable. Se puedeusarde formaaisladao
comocomplementodel framework Junit.
⚫DBUnit: en realidad es unaextensiónde JUnitquetienecomoventajael podertener
en cuenta laexistenciade una basededatosa la horade realizar las pruebasde los test
⚫SimpleTest: Entornode pruebas paraaplicaciones realizadasen PHP.
⚫PHPUnit: framework para realizarpruebas unitariasen PHP.
⚫CPPUnit: Versióndel framework para lenguajes C/C++.
⚫NUnit: Versióndel framework para la plataforma.NET.
⚫FoxUnit: framework OpenSourcede pruebas unitariaspara MicrosoftVisual FoxPro.
⚫TestNG: Creadoparasupliralgunasdeficiencias en JUnit.
⚫JTiger: Basadoen anotaciones, como TestNG.
⚫Selenium: es toda una herramienta dedicada al Test-driven Development, tiene
distintos formatos en los quepuedeserutilizadosyaporta una importante cantidad de
funcionalidades nuevaspara lacreaciónde los test.
10. Test Unitario (Unit Test)
Assert
La mayoriade las herramientas tienenassert, queson afirmaciones queson usadapara
comprobar suposiciones en el programa, colocada donde el desarrollador considera
quesu ennunciadoes siempreverdadero.
Esto da lugar a que existan afirmaciones y por lo tanto condiciones antes
(precondiciones)ydespues (postcondiciones) de laejecucióndedeterminadas lineas
decódigo, loqueda lugara las pruebas unitarias.
Ejemplo
int b= 3;
b= b+8;
System.out.println(“b tiene valor: “, b);
(b==11) //assert
b= b*2;