Está en la página 1de 46

1. TESTING.

¿EN QUE
CONSISTE?
QUE EL SOFTWARE FUNCIONA ACORDE A LOS REQUISITOS
QUE TODOS LOS REQUISITOS HAYAN SIDO
COMPLETADOS
VALIDAR QUE EL ELEMENTO U OBJETO DE NUESTRAS
PRUEBAS ES EL ESPERADO
INCREMENTAR LA CONFIANZA EN EL
DESARROLLO
PREVENIR FUTUROS
DEFECTOS
ENCONTRAR FALLOS Y DEFECTOS
REPORTAR AL CLIENTE EL ESTADO DEL SOFTWARE EN
TÉRMINOS DE CALIDAD
REDUCIR EL NIVEL DE RIESGO
ASEGURAR EL CUMPLIMIENTO DE LOS ACUERDOS
ALCANZADOS CON EL CLIENTE
2.
¿POR QUÉ ES
IMPORTANTE
EL TESTING?
• AHORRA DINERO
• SEGURIDAD
REDUCIR LAS
CONFIANZA EN EL
VULNERABILIDADES
PRODUCTO
DE SEGURIDAD

SEGURIDAD DE
AHORRAR FUTUROS
DATOS DE
PROBLEMAS
USUARIOS

• PRODUCTOS DE CALIDAD
• SATISFACCIÓN DEL CLIENTE
3.
TIPOS DE
PRUEBAS
- TEST UNITARIOS
- TEST DE INTEGRACIÓN
- PRUEBAS DE SISTEMA
- PRUEBAS DE ACEPTACIÓN

- PRUEBAS FUNCIONALES
- PRUEBAS NO FUNCIONALES
- PRUEBAS DE RENDIMIENTO
3.1.
Test Unitarios
¿Qué es un test unitario?

1 ? ? ?

Test Unitarios

Test que prueba la unidad más


básica de código
¿Qué es un test
unitario?
Es la prueba que se realiza sobre la unidad más básica de nuestro
código, métodos, funciones, clases, interfaces,...

Las pruebas unitarias son el método por el cual validamos que


cada unidad desarrollada está lista para uso.
¿Para qué los
escriben?
Los test unitarios validan el correcto funcionamiento de la unidad más
pequeña de código que utiliza nuestro software, por lo tanto lo que estamos
consiguiendo es asegurar que para un conjunto de valores de entrada, nuestra
función, método o clase devuelve el valor esperado.

Uno de los métodos utilizados es el de pruebas de caja blanca o TDD (Test


Driven Development), entre otras, las cuales se detallaran más adelante.
Ventaja
s

1 2 3 4
Desventaja
s 03 Empiezan a darme muy
buenos frutos

Crear test unitarios que


validan nuestro código

01 02
Los ejecuto en cada
despliegue

Acabamos teniendo muchísimos test unitarios, muchos de ellos sin


utilidad.
3.2.
Test de
integración
¿Que es un test de integración?

1 2 ? ?

Test Unitarios Test de Integración

Test que prueba la unidad más Es el segundo nivel de pruebas


básica de código
¿Que es un test de integración?
Un test de integración es aquel que combinando diferentes módulos
prueba la comunicación entre ellos. Por ejemplo, comunicaciones:

● Interfaz -> BBDD


● Interfaz -> API
● Interfaz -> Interfaz

Como estos sistemas ya tienen sus pruebas unitarias pasadas, los


fallos suelen evidenciar fallos en la comunicación entre los
mismos.
¿Para qué los escriben?

Los test de integración muestran errores en las comunicaciones.


Normalmente cada equipo, o cada miembro de un equipo, desarrolla una
parte del software. Por lo que, deben acordar, por ejemplo el paso de
parámetros, o si tenemos que trabajar con una API de terceros, tendremos
que seguir lo acordado en el juego de petición respuesta.

Uno de los métodos utilizados es el de pruebas de caja negra, caja blanca


o
caja gris, entre otras, las cuales se detallaran más adelante.
Ventajas
3.3.
Pruebas de
sistema
¿Qué son las pruebas de sistema?

1 2 3 ?

Test Unitarios Test de Integración Pruebas de Sistema

Test que prueba la unidad más Es el segundo nivel de pruebas Es el tercer nivel de pruebas.
básica de código
Prueba un software totalmente
integrado
¿Qué son las pruebas de sistema?

Las pruebas de sistema implican las pruebas del sistema al completo,


desde que una acción es activada en el producto hasta que
acaba.

De esta manera con todos los elementos integrados comprobaremos si el


sistema al completo funciona como se espera o no.

Tipos de pruebas:
● Funcionales
● No funcionales
3.4.
Pruebas de
aceptación
¿Qué son las pruebas de aceptación?

1 2 3 4

Test Unitarios Test de Integración Pruebas de Sistema Pruebas de Aceptación

Test que prueba la unidad más Es el segundo nivel de pruebas Es el tercer nivel de pruebas. Son las pruebas que se realizan
básica de código sobre el producto final, si no en el
entorno final, en uno practicamente
Prueba un software totalmente
igual
integrado
Objetivo de las pruebas de aceptación

● Ganar confianza en el producto


● Conseguir el OK para el paso a producción
● Conseguir la aceptación del cliente de que lo que se ha diseñado y aprobado en las
fases anteriores es realmente lo que el cliente pedía
● Asegurar que el producto sigue los estándares de mercado (lo prueban diferentes
perfiles)
● Comparar el producto con otros similares del mercado
3.5.
Otra
clasificación
FUNCIONALES
● Lo que el sistem a hace
● Pruebas de Caja Negra y Caja Blanca
● Pruebas de S eguridad

NO FUNCIONALES
● Cóm o responde el sistem a
● Estrés, Escalabilidad, Carga, …
● Pueden hacer referencia a estándares de calidad, ISO
9126.
● Consideran el “com portam iento externo” del sistem a

DE RENDIMIENTO
FUNCIONAL VS NO FUNCIONAL
FUNCIONAL NO FUNCIONAL

Basado en el cliente Basado en los desarrolladores y en el


conocimiento técnico de los desarrolladores

Especifica la funcionalidad a probar Especifica cómo se debe probar

Las pruebas se realizan antes de que el software Se ejecutan una vez el software ha sido
esté en producción desplegado

- También conocidos como requisitos de calidad

El plan de implementación de los requisitos El plan de implementación para requisitos no


funcionales se define en el documento de diseño funcionales se define en la arquitectura del
del sistema sistema

Comprobación de la funcionalidad técnica Incluyen cualidades como la seguridad,


la usabilidad, etc.
Objetivo de las pruebas de rendimiento

● Pueden localizar los cuellos de botella


● Analizan sistema a sistema, por lo que, pueden identificar el sistema más lento
● Cumplir los requisitos del cliente en estos términos
● Asegura:
○ Velocidad
○ Escalabilidad
○ Estabilidad
● Ahorran dinero
4.
Pruebas caja blanca o
estructurales
Las técnicas de pruebas de caja blanca
analizan las estructuras internas, las
estructuras de datos utilizadas, el diseño
interno, la estructura de código y el
funcionamiento del software.

En este tipo de pruebas el código es


accesible por el probador, por lo que tiene
que tener conocimientos de codificación
para entenderlo y diseñar las pruebas
correspondientes.
¿Qué comprueban? VERIFICAN:

● PROBLEMAS DE SEGURIDAD INTERNOS

● MALA O INEXISTENTE CALIDAD EN LAS ESTRUCTURAS


● DE CÓDIGO

● EL FLUJO PARA CADA INPUT EN EL CÓDIGO

● RESULTADO ESPERADO

● FUNCIONALIDAD DE LOS BUCLES CONDICIONALES

● PRUEBA DE CADA DECLARACIÓN, OBJETO Y FUNCIÓN DE FORMA


INDIVIDUAL
PASO 3 PASO 1

EJECUTAR LOS CASOS DE ENTENDER EL CÓDIGO


PRUEBA FUENTE

¿CÓMO
REALIZAR
PRUEBAS DE
CAJA BLANCA?

PASO 2

CREAR LOS CASOS DE


PRUEBA
4.1.
Técnicas de
caja blanca
COBERTURA DE SENTENCIA
Es una técnica cuyo objetivo principal es asegurarse de que todas las sentencias de
código del programa han sido ejecutadas al menos una vez durante las pruebas.
Puesto que todas las líneas de código están cubiertas, ayuda a encontrar el código
defectuoso.

COBERTURA DE CONDICIONES
Se escriben casos de prueba suficientes para que cada condición en una decisión
tenga una vez resultado verdadero y otra falso.

COBERTURA DE CAMINOS
Se escriben casos de prueba suficientes para que se ejecuten todos los caminos de un
programa. Entendiendo camino como una secuencia de sentencias encadenadas
desde la entrada del programa hasta su salida.
PRUEBAS DE BUCLES
Se centra en verificar el correcto funcionamiento de los bucles.
Los casos de prueba deben:

• no entrar en el bucle,
• entrar una sola vez,
• pasar dos veces por el bucle,
• pasar m veces siendo m<n,
• pasar n-1 veces, n y n+1.
5.
Pruebas de caja negra o
funcionales
También conocidas como Pruebas de Comportamiento. El componente a
probar se ve como una “Caja Negra” cuyo comportamiento sólo puede ser
determinado estudiando sus entradas y las salidas obtenidas a partir de ellas.
No obstante, como el estudio de todas las posibles entradas y salidas de un
programa sería impracticable, se selecciona un conjunto de ellas sobre las que
se realizan las pruebas.

Consisten en probar un sistema o programa informático sin tener


conocimiento previo de su funcionamiento interno.
6.
Herramientas de depuración
Al proceso de eliminación de los errores que se descubren en la
fase de pruebas, se denomina depuración. En la fase de
pruebas se detectan los defectos del programa. La
depuración es el proceso que localiza el origen de los defectos
y los corrige.

Localizar los fallos es un proceso complejo porque los fallos no


necesariamente, se localizan cerca del punto donde se detectan.
6.1.
Técnicas de
depuración
EJECUCIÓN PASO A PASO
La ejecución paso a paso es el proceso de ejecutar una instrucción cada vez.
Puede detenerse la ejecución de un programa en una línea de código para
examinar los valores de variables y el estado del sistema. La mayoría de los
depuradores permiten establecer puntos de ruptura para poder parar la
ejecución del programa en una línea determinada del código.

IMPRESIÓN DE TRAZAS
Consiste en el uso de declaraciones de impresión al final de cada segmento que
imprimirá las instrucciones de seguimiento en la consola. Por ejemplo, utilizando
instrucciones “System.out.println” a lo largo del código, que muestren información de
lo que está ocurriendo durante la ejecución del programa.

En relación a esta técnica, una de las librerías Open Source Java más utilizadas es
Log4J.

También podría gustarte