Testing
Testing
https://personal.us.es/javierj/
@iwt2_javier
Objetivos
• Repasar conceptos
básicos sobre pruebas
• Repasar cómo definir
pruebas utilizando
herramientas XUnit.
Objetivos
2
Actividades
1. Definiciones
2. Niveles de prueba
3. Técnicas de prueba
4. Junit y el patrón
Xunit.
5. Para terminar.
Índice
4
Definiciones
5
Definiciones
¿Funciona el teléfono?.
Valores de Acciones Resultado esperado
prueba
123-45-67-89 1. Descolgar auricular. (Pepote): “Digameee”.
2. Marcar número de Pepote.
3. Esperar contestación.
No
Distintos tipos de
pruebas en
función de lo que
se prueba y del
momento de
realizarla
Definiciones
• Pruebas unitarias:
– Cuando: Durante la construcción del sistema
– Objetivo: Comprueban la correcta unión de los
componentes entre sí a través de sus interfaces, y
si cumplen con la funcionalidad establecida .
• Ejemplo:
– Combinar el código de acceso a la base de datos
con el código de lógica de negocio y probar que
funciona correctamente.
Definiciones
• Pruebas de integración
– Cuando: Durante la construcción del sistema
– Objetivo: Comprueban la correcta unión de los
componentes entre sí a través de sus interfaces, y
si cumplen con la funcionalidad establecida .
• Ejemplo:
– Combinar el código de acceso a la base de datos
con el código de lógica de negocio y probar que
funciona correctamente.
Definiciones
• Pruebas de implantación
– Cuando: Durante la implantación en el entorno de
producción.
– Objetivo: Comprueban el correcto
funcionamiento del sistema dentro del entorno
real de producción (rendimiento, copias de
seguridad, etc.)..
• Ejemplo:
– Desplegado correcto de la instalación.
– Realización de un backup de prueba.
Definiciones
• Pruebas de aceptación
– Cuando: Después de la implantación en el entorno
de producción
– Objetivo: Verifican que el sistema cumple con
todos los requisitos indicados y permite que los
usuarios del sistema den el visto bueno definitivo.
• Ejemplo:
– Que el sistema pueda realizar una venta
correctamente (ahora en el entorno de
producción).
Tipos de prueba de sistema
19
Técnicas de prueba
Cobertura de decisiones
Cobertura de decisiones
Ejemplo
• El método HashSet::add(E e): boolean define el
siguiente comportamiento al añadir un elemento
a un conjunto.
– Añade el elemento e al conjunto si no está ya
presente.
– Devuelve true si el conjunto no contenía el elemento
e.
– Permite añadir el valor null
• Diseñe un conjunto de pruebas para el método
anterior utilizando la técnica de particiones
equivalentes / valores límites.
Técnica de prueba
Ejemplo
Tenemos dos conjuntos de valores: valores que no estaban previamente y valores que
estaban.
Aunque no debería ser necesario, podemos considerar null como valor límite y
probarlo
Ejercicio
29
JUnit
• Ejercicio.
– Implementa en Eclipse una clase con un método
suma(int, int) que devuelva el resultado de la suma de
los dos parámetros.
– Escribe un conjunto de pruebas con, al menos 2 caso
de prueba en JUnit y ejecútalos desde Eclipse.
• Ejercicio II.
– Escribe un conjunto de pruebas que, antes de la
ejecución de cada prueba cree una lista con los 10
primeros números enteros
JUnit
• ¿Qué es Junit?
– Una librería para escribir pruebas.
– Un patrón, es decir, una guía sobre cómo escribir una
prueba.
– Aunque estaba orientada a pruebas unitarias este
patrón puede utilizarse en cualquier tipo de pruebas.
– Existen implementaciones para la gran mayoría de
lenguajes.
– Existen herramientas más avanzadas, especialmente
en lenguajes con características más actuales.
JUnit
36
Buenas Pruebas
Caso de
prueba
http://stackoverflow.com/questions/155436/unit-test-naming-
best-practices
Buenas pruebas
1
Buenas pruebas
2
Buenas pruebas
3
Actividades
Actividades
46
Para terminar
47
Enlaces y referencias
http://www.dirigidoportests.com/el-libro