2. Equipo Entel
• Diseñar pruebas de software y explicar cada uno de los aspectos a tener en
cuenta para su elaboración.
• Conocer los niveles de prueba existentes y el alcance de la ejecución de
pruebas en cada uno de ellos.
• Listar las técnicas y herramientas más relevantes que pueden utilizarse.
• Implantar nueva cultura al momento de aseguramiento de la calidad de
nuestros servicios.
El objetivo general es formar al centro en pruebas eficaces y eficiente. Para lograrlo
revisaremos en el curso lo siguiente:
Objetivos del Curso
0 Objetivos
3. Equipo Entel
Niveles de
Pruebas
Unitaria Integración Sistema Aceptación
Tipos de Pruebas Funcionales No funcionales Estructurales Regresión
Técnicas de
Ejecución
Estáticas Dinámicas
Técnicas de
Diseño
Caja Blanca Caja Negra
Objetivos del Curso
0 Objetivos
4. Índice
1 Introducción
1.1 ¿Por qué es necesario el proceso de pruebas?
1.2 Objetivos de las Pruebas
3 Pruebas durante el ciclo de vida
3.1 Niveles de prueba
3.2 Tipos de prueba
3 Técnicas de Ejecución
3.1 Tipos de Técnicas
3.2 Complejidad ciclomática
4 Técnicas de Diseño
4.1 El proceso de desarrollo de pruebas
4.2 Técnica de caja Negra y caja Blanca
2 Gestión de Pruebas
2.1 Tareas del equipo de pruebas
2.2 Responsables y Mejores Prácticas
6 Herramientas de pruebas
6.1 Objetivos uso Herramientas
6.2 Clasificación herramientas
9. Equipo Entel
Un error es:
a) Acción equivoca de una estructura del sistema.
b) Acción humana que produce un resultado incorrecto.
c) Acción errónea del sistema.
Un defecto es:
a) Componente negativamente estructural para el software.
b) Manifestación de un componente erróneo.
c) Desperfecto en un componente o sistema que pueda ser la causa por la cual el sistema o
componente no logre llevar a cabo su función especifica.
1 Introducción
¿ Por qué es necesario el
proceso de pruebas?
10. Equipo Entel
Un fallo es:
a) Si un defecto es encontrado durante la ejecución de una aplicación puede producir un fallo.
b) Manifestación errónea del objeto de los sistemas q tiene a cargo cada componente estructural.
c) Manifestación física o funcional de un defecto.
d) Todas las anteriores.
1
¿ Por qué es necesario el
proceso de pruebas?
Introducción
12. Equipo Entel
Identificar defectos
Facilitar información para la toma de decisiones
Evitar la aparición de defectos
Aumentar la confianza en el nivel de calidad
Los objetivos generales son:
Estos objetivos varían en función de los diferentes tipos de pruebas.
Objetivos de las Pruebas
1 Introducción
• Verificación: ¿Estamos construyendo correctamente el producto?. Controlar que el producto conforma su
especificación inicial.
• Validación: ¿Estamos construyendo el producto correcto?. Controlar si el producto satisface los
requerimientos del usuario.
14. Equipo Entel
Tareas
Tareas de Gestión
Planificación
Control y Seguimiento
Finalización
Tareas de Pruebas
Diseño e Implementación
Gestión del Entorno
Ejecución
Reporte de Incidencias
Analista del Proyecto
Desarrolladores/QA Interno y
Analista del Proyecto
Tareas del Equipo de Pruebas
2 Gestión de Pruebas
16. Equipo Entel
• Pruebas diseñadas y ejecutadas por las mismas personas que escribieron el software.
• Pruebas diseñadas y ejecutadas por terceros, pero miembros del equipo de desarrollo.
• Pruebas diseñadas y ejecutadas por una persona procedente de otro grupo de la organización.
• Pruebas diseñadas y ejecutadas por personas de otra organización.
Los casos defectuosos encontrados serán catalogados como Incidencias Internas o Incidencias Externas
dependiendo de quién las detecte y de lo acordado en cada proyecto.
Responsables y Mejores Prácticas
2 Gestión de Pruebas
17. Equipo Entel
La detección de fallos es más eficiente, si los probadores son independientes y formados.
El personal de desarrollo puede participar en las pruebas de los niveles más bajos (pruebas unitarias) pero su
falta de objetividad a menudo limita la efectividad.
Para proyectos grandes o complejos lo mejor es poner alguno o todos los niveles de prueba a cargo de
probadores independientes.
Responsables y Mejores Prácticas
2 Gestión de Pruebas
18. 3Pruebas durante el ciclo de vida
3.1 Niveles de prueba
3.2 Tipos de prueba
Niveles de
Pruebas
Unitaria Integración Sistema Aceptación
Tipos de
Pruebas
Funcionales
No
funcionales
Estructurale
s
Regresión
Técnicas de
Ejecución
Estáticas Dinámicas
Técnicas de
Diseño
Caja Blanca Caja Negra
19. Equipo Entel
• Comprobar el funcionamiento y localizar defectos en
módulos de software independientes (objeto, clase,
unidad, etc).
• Se realizan sobre el código, en un entorno de
desarrollo y suelen contar con la participación del
programador.
• Los defectos se corrigen en el momento que se
detectan sin gestionarlos formalmente.
Niveles de prueba: Unitarias
02 Pruebas durante el ciclo de vida
20. Equipo Entel
Existen 2 simuladores que usamos comúnmente los cuales son el uso de stubs y drivers.
Niveles de prueba: Unitarias
02 Pruebas durante el ciclo de vida
Componente a
probar
Driver
Stub Stub
Simula el método que llama al componente
que queremos probar
Simula el método que es llamado por
componente que queremos probar.
21. Equipo Entel
Módulo A
Módulo B
Módulo C
El módulo A llama al módulo B que a su vez llama
al módulo C.
Queremos probar el módulo B pero no tenemos
desarrollado ni el A ni el C.
¿Qué módulo es el driver y cuál el stub?
¿Y el arnés de prueba?
Driver
Stub
A es el driver y C es el stub.
Los módulos A y C.
Niveles de prueba: Unitarias
02 Pruebas durante el ciclo de vida
22. Equipo Entel
Un enfoque a seguir en estas pruebas es elaborar los casos de prueba antes de codificarlos,
esto se denomina desarrollo guiado por pruebas (TDD)
1. Se escribe el caso de prueba y se comprueba que falla.
2. Se implementa el código que haga que la prueba se ejecute satisfactoriamente.
3. Refactorización y limpieza del código.
Niveles de prueba: Unitarias
02 Pruebas durante el ciclo de vida
23. Equipo Entel
Prueban los interfaces, comunicación entre componentes o sistemas, no la funcionalidad
del propio módulo. Existen varios niveles sobre objetos de diferente tamaño.
• Integración de componentes
Prueban las interacciones entre los
componentes del software y se
realizan a continuación de las
pruebas unitarias.
• Integración de sistemas
Prueban las interacciones entre
distintos sistemas o entre el
software y el hardware. Se realizan a
continuación de las pruebas de
sistema.
Niveles de prueba: Integración
02 Pruebas durante el ciclo de vida
24. Equipo Entel
A
Stub B Stub C Stub D
Considerando la siguiente jerarquía, ¿cómo aplicarías la estrategia top-down? ¿Qué
necesitarías para probar los módulos E, F, y G?
Orden Módulos
1º A + StubB + StubC + StubD
Niveles de prueba: Integración
02 Pruebas durante el ciclo de vida
25. Equipo Entel
• Prueban el comportamiento de un
sistema o producto completo.
• El entorno de pruebas debe coincidir lo
máximo posible con el de producción.
• Se estudian requisitos funcionales y no
funcionales del sistema.
• A menudo son realizadas por un
equipo independiente.
Niveles de prueba: Sistema
02 Pruebas durante el ciclo de vida
26. Equipo Entel
Son responsabilidad del cliente o usuarios del
sistema y su objetivo no es encontrar bugs sino
evaluar la disposición del sistema para su
despliegue y uso.
• Aceptación de usuario: verificación del
sistema por parte de los usuarios comerciales.
• Aceptación operativas: aceptación del
sistema por parte de los administradores del
sistema (pruebas de backup, restauración,
seguridad, etc.).
Niveles de prueba: Aceptación
02 Pruebas durante el ciclo de vida
27. 2Pruebas durante el ciclo de vida
2.1 Niveles de prueba
2.2 Tipos de prueba
Niveles de
Pruebas
Unitaria Integración Sistema Aceptación
Tipos de
Pruebas
Funcionales
No
funcionales
Estructurale
s
Regresión
Técnicas de
Ejecución
Estáticas Dinámicas
Técnicas de
Diseño
Caja Blanca Caja Negra
28. Equipo Entel
• Se pueden realizar sobre un sistema, subsistema o
componente, y pueden llevarse a cabo en todos los niveles
de pruebas.
• Se basan en las funciones, “lo que” hace el sistema y su
interoperabilidad con otros sistemas.
• Las funciones pueden describirse en una especificación de
requisitos, casos de uso, una especificación funcional o
incluso no estar documentadas.
• Tienen en cuenta el comportamiento externo del
software.
prueba funcionalidad
de log-in
Tipos de Prueba: Funcionales
02 Pruebas durante el ciclo de vida
29. Equipo Entel
• Se refieren a “cómo” funciona el sistema y pueden ejecutarse
en todos los niveles de pruebas.
• Incluyen pruebas de rendimiento, carga, estrés, usabilidad,
mantenibilidad, fiabilidad y portabilidad
• Tienen en cuenta el comportamiento externo del software, no
lo que hace por dentro.
prueba rendimiento del
sistema
Tipos de Prueba: No Funcionales
02 Pruebas durante el ciclo de vida
30. Equipo Entel
• Son pruebas de caja blanca, donde las pruebas están
diseñadas en base al código fuente, el tester escoge juego
datos de estrada específicos para recorrer cada línea de código
y asegurar una correcta respuesta incluso en situaciones de
borde.
• Son empleadas especialmente en pruebas unitarias y de
integración de componentes y son medidas a través del
porcentaje de cobertura.
prueba de cobertura de
código
Tipos de Prueba: Estructurales
02 Pruebas durante el ciclo de vida
31. Equipo Entel
• Pruebas a un programa que ha sido modificado, para localizar defectos surgidos como
resultado de cambios realizados. Cualquier cambio puede hacer que componentes
software que antes funcionaban dejen de hacerlo o que resurjan errores que se habían
eliminado.
test case 1
test case 2
test case 3
test case N
iteración 1
test case 1
test case 2
test case 3
test case N
iteración 2
test case 1
test case 2
test case 3
test case N
iteración N
depuración
del software
depuración
del software
Tipos de Prueba: Regresión
02 Pruebas durante el ciclo de vida
32. Equipo Entel
• Como se ejecutan muchas veces se
suelen automatizar.
• Consisten en ejecutar un conjunto de
pruebas relevantes seleccionadas de
entre todas las pruebas que se han ido
generando durante el desarrollo y
se ejecutarán cada vez que se
modifique el código fuente.
• Pueden realizarse en todos los niveles de
prueba e incluyen pruebas funcionales,
no funcionales y estructurales.
¿Cómo cubrir un océano de pruebas?
Todas las
pruebas que se
podrían hacer
Pruebas que
hemos
ejecutado
Pruebas que
repetiremos
Tipos de Prueba: Regresión
02 Pruebas durante el ciclo de vida
33. 3Técnicas de Ejecución
3.1 Tipos de Técnicas
3.2 Complejidad ciclomática
Niveles de
Pruebas
Unitaria Integración Sistema Aceptación
Tipos de
Pruebas
Funcionales
No
funcionales
Estructurale
s
Regresión
Técnicas de
Ejecución
Estáticas Dinámicas
Técnicas de
Diseño
Caja Blanca Caja Negra
34. Equipo Entel
Defectos
Fallos
Revisión de documentos y
código fuente sin ejecutar
Pruebas ejecutando el
software
Técnicas
estáticas
Técnicas
dinámicas
La razón para buscar defectos en productos tempranos es porque éstos se
traducen en defectos en el producto final.
Existen 2 técnicas de ejecución:
Tipos de Técnica
03 Técnicas de Ejecución
35. Equipo Entel
Defectos
Revisión de documentos y
código fuente
Técnicas
estáticas
Manual
Herramienta
Se denomina revisión. Consiste en
examinar documentación del proyecto y
hacer comentarios al respecto.
Analizan el código fuente para detectar
defectos en el flujo de control o flujo de
datos.
Técnicas Estáticas
03 Técnicas de Ejecución
36. Equipo Entel
Variable con valor indefinido
var=NULL
Variables que no se utilizan o
declaradas de forma
incorrecta
int num=“abc”
Código muerto (inaccesible)
Vulnerabilidad de seguridad
Sintaxis incorrecta
Confundir “O” con “0”
Complejidad Ciclomática alta
(código complejo, métrica
basada en diagrama de flujo )
Lógica errónea (bucle infinito)
Interfaces inconsistentes entre
módulos y componentes
Técnicas Estáticas: Ejemplos
03 Técnicas de Ejecución
38. Equipo Entel
Define los diferentes caminos que
puede tomar un método de un software o
las diferentes entradas necesaria para probar
todo el código.
Mientras mayor sea la complejidad
ciclomatica, más difícil será de probar y de
mantener, si un software sobrepasa los 10
caminos diferentes, se puede decir que está
mal construido.
Complejidad Ciclomática
03 Técnicas de Ejecución
39. Equipo Entel
Dado el siguiente diagrama, calcular la complejidad ciclomática.
a) 1
b) 3
c) 4
d) 2
if
edad>=18
Sí
No puede
votar
Puede
votar
No
End if
Print edad
Complejidad Ciclomática
03 Técnicas de Ejecución
40. 4Técnicas de Diseño
4.1 El proceso de desarrollo de pruebas
4.2 Técnica de caja Negra y caja Blanca
Niveles de
Pruebas
Unitaria Integración Sistema Aceptación
Tipos de
Pruebas
Funcionales
No
funcionales
Estructurale
s
Regresión
Técnicas de
Ejecución
Estáticas Dinámicas
Técnicas de
Diseño
Caja Blanca Caja Negra
41. Equipo Entel
• El diseño del Plan de Pruebas consiste en crear y
especificar los casos y datos necesarios para
ejecutarlas.
• Un caso de prueba consta de unos valores de
entrada, precondiciones y resultados esperados.
• Los resultados esperados deben ser parte de la
especificación de un caso de prueba, si no están
definidos se podría interpretar como correcto un
resultado “falso positivo” pero erróneo.
Diseño del Plan de Pruebas
04 El proceso de desarrollo de pruebas
42. Equipo Entel
Establecer la matriz de trazabilidad entre los requisitos y los casos de prueba, permite:
• Obtener un análisis de impacto efectivo cuando los requisitos cambian.
• Determinar la cobertura de requisitos para una serie de pruebas.
CP-1 CP-2 CP-3 CP-4
RF-1
RF-2
RF-3
RF-4
Requisitos
Funcionales
Casos de Prueba
Diseño de Pruebas
04 El proceso de desarrollo de pruebas
43. Equipo Entel
Secuencia de acciones automatizadas
para ejecutar una prueba
Durante la ejecución de las pruebas, se desarrolla, implementan, priorizan y organizan los
casos de prueba.
Secuencia de acciones manuales
para ejecutar una prueba
Automatizadas
Manuales
Procedimiento
de pruebas
Guión
de pruebas
Ejecución de Pruebas
04 El proceso de desarrollo de pruebas
44. Equipo Entel
Definir un caso de prueba para el envío de un email desde la aplicación Outlook.
ID Nombre Descripción Precondiciones Criticidad Acciones Resultados
001 Envío de email
con adjunto
Envío de un email a un
solo destinatario con un
archivo adjunto.
Pruebas
04 El proceso de desarrollo de pruebas
45. Equipo Entel
ID Nombre Descripción Precondiciones Critic. Acciones Resultados
001 Envío de email
con adjunto
Envío de un email a un
solo destinatario con
un archivo adjunto.
Tener configurada una
cuenta de outlook.
Tener conexión a
Internet.
Alta 1. Acceder a la
aplicación
Outlook.
1. Se visualiza el
menú y la bandeja de
entrada.
2. Pulsar el
botón “Nuevo”.
2. Se abre una
ventana que contiene:
• Menú opciones
• Texbox Para
• Texbox CC
• Texbox Asunto
• Texbox Mensaje
• Botón enviar
Pruebas
04 El proceso de desarrollo de pruebas
46. Equipo Entel
ID Nombre Descrip. Precond. Critic. Acciones Resultados
3. Hacer click sobre el
botón “Adjuntar” del
menú superior.
3. Se abre una ventana que contiene:
• Explorador de archivos
• Botón Insertar
• Botón Cancelar
4. Seleccionar un
archivo con un
formato válido y hacer
click en “Insertar”.
4. Se cierra la ventana y aparece el
nombre del archivo debajo del campo
“Asunto”.
5. Completar el
Texbox “Para” con
una dirección de email
válida.
5. Si anteriormente se ha enviado un
email a ese mismo remitente, la
aplicación lo reconocerá y lo marcará
con subrayado.
6. Insertar texto en el
Texbox “Asunto” y en
el cuerpo del mensaje
y hacer click en
“Enviar”.
6. Se cierra la ventana y el mensaje se
envía correctamente.
Pruebas
04 El proceso de desarrollo de pruebas
47. 4Técnicas de Diseño
4.1 El proceso de desarrollo de pruebas
4.2 Técnica de caja Negra y caja Blanca
48. Equipo Entel
?
Input Output
• Basadas en la especificación.
• Se crean casos de prueba en base al análisis de la documentación.
• No utilizan información sobre la estructura interna del sistema.
Técnica de Caja Negra
04 Técnica de caja Negra y caja Blanca
49. Equipo Entel
Ejercicio de Caja Negra
04 Técnica de caja Negra y caja Blanca
El sistema enviará un correo electrónico cuando se registre alguna de las siguientes
transacciones: pedido de venta de cliente, despacho de mercancía al cliente,
emisión de factura a cliente y registro de cobro al cliente.
Caja Negra
?
INPUT
Registrar pedido de venta
Registrar despacho de
mercancía al cliente
Registrar factura de
cliente
Registrar cobro
Output
El sistema envía un correo electrónico al
cliente como constancia que su pedido se
ha recibido
Registrar despacho de mercancía al cliente
El sistema envía un correo electrónico al
departamento de facturación y al cliente.
El sistema envía un correo electrónico al
departamento de cuentas por cobrar y al
agente comercial (vendedor) que lleva la
cuenta del cliente.
50. Equipo Entel
Input Output
• Basadas en la estructura.
• Se crean casos de prueba en base al análisis de estructura interna del
sistema.
Técnica de Caja Blanca
04 Técnica de caja Negra y caja Blanca
51. Equipo Entel
Dado el siguiente código ¿Cuántos casos de pruebas son necesarios para lograr el
100% de la cobertura de sentencia?
a) 5 casos de prueba
b) 3 casos de prueba
c) 1 caso de prueba
d) 2 casos de prueba
read (color)
if (color==“Red”) Then
call Roses (color)
elseif (color==“blue”) then
call Violets (color)
else
print “User is no Shakespeare”
SaveToDatabase(color)
Ejercicio de Caja Blanca
04 Técnica de caja Negra y caja Blanca
53. Equipo Entel
• Mejorar la eficiencia de las tareas de pruebas
(automatización y gestión).
• Realizar actividades que de forma manual
requerirían muchos recursos (pruebas estáticas)
o no podrían hacerse (pruebas de rendimiento).
• Aumentar la fiabilidad de las pruebas
(comparación de ficheros).
Algunas dan soporte a una actividad de manera clara mientras que otras pueden dar
soporte a más de una actividad.
Algunos tipos de herramienta que pueden ser intrusivos y afectan al resultado real de la
prueba. La consecuencia del su uso se denomina efecto sonda.
Objetivos uso herramientas
06 Herramientas de pruebas
56. Empowering organizations
in a everis.com
Consulting, Transformation, Technology and
Operations
Andorra
Argentina
Bélgica
Brasil
Chile
Colombia
EEUU
España
Holanda
Italia
Luxemburgo
Marruecos
México
Perú
Portugal
Reino Unido
Suiza
Notas del editor
Cambiar el objetivo
Cambiar el objetivo
Cuando un software no funciona según lo esperado puede causar problemas como pérdida de dinero o de renombre. Si además el programa controla aparatos peligrosos como control aéreo o balístico, máquinas peligrosas, etc. el más mínimo detalle cuenta para que no se convierta en una catástrofe grandes magnitudes.
TDD: Test Driven Development
Enfoque de las pruebas de integración:
Incremental: De arriba abajo, de abajo a arriba.
Top-down (de arriba hacia abajo): Se prueban primero los componentes de mayor nivel en la jerarquía.
Bottom- up (de abajo hacia arriba): Se prueban primero los componentes de menor nivel en la jerarquía.
No incremental: Conocido como “Big Bang”
Revisar con gonzalo
Validar con gonzalo
Se basa en el número de aristas y nodos de la gráfica del flujo de control (caminos independientes)