Академический Документы
Профессиональный Документы
Культура Документы
Clase 10:
Estrategias de Pruebas
Hugo R. Cordero S.
Clase 1
Objetivos
2
Introducción
Pruebas de Software
Niveles de pruebas
Tipos de pruebas
Estrategias y plan de pruebas
Introducción
4
Los negocios demandan mayor productividad Las pruebas y las revisiones mejoran la
y CALIDAD en menos tiempo. CALIDAD del software
Introducción
5
¿Qué es un Defecto?
Una manifestación de un error en software
También conocido como un defecto o “bug”
un fallo
Introducción
6
¿Qué es un fallo?
Una desviación del software de su entrega esperada o
servicio
Es un defecto encontrado
software
Errores en el uso del sistema
Condiciones ambientales
Daño intencional
COSTO
TIEMPO
Requerimientos Diseño Construcción Pruebas Tiempo de Uso
Introducción
9
errores
La prueba es un conjunto de actividades que se planean con
Verificación
Es el proceso de evaluación de un sistema o de uno de sus
componentes para determinar si los productos de una fase
dada satisfacen las condiciones impuestas al comienzo de dicha
fase.
¿Estamos construyendo el producto correctamente?
Validación
El proceso de evaluación de un sistema o de uno de sus
componentes durante o al final del proceso de desarrollo para
determinar si satisface los requisitos marcados por el usuario
¿Estamos construyendo el producto correcto?
Verificación y Validación
12
Verificación Estática
Se analizan las diferentes representaciones del sistema
(diagramas, requerimientos, código fuente) en busca de defectos
No requiere que el código se ejecute
Se logra con inspecciones del software
Verificación Dinámica
Se contrasta dinámicamente la respuesta de prototipos
ejecutables del sistema con el comportamiento operacional
esperado
El sistema se tiene que ejecutar
Se logra mediante pruebas del software
Pruebas de Software
13
Pruebas (test):
Una actividad en la cual un sistema o uno de sus componentes se
ejecuta en circunstancias previamente especificadas, los
resultados se observan y registran y se realiza una evaluación
de algún aspecto
Caso de prueba (test case):
Un conjunto de entradas, condiciones de ejecución y resultados
esperados desarrollados para un objetivo particular
Pruebas de Software
14
propósito.
Confirma que el producto, como condición rutinaria, cumplirá a
cabalidad con su uso propuesto. En otras palabras, la
validación asegura que “se construye el producto correcto”.
Detectar Defectos.
Para descubrir fallas o defectos en el software donde su
comportamiento no está en conformidad con su especificación.
Niveles de prueba
17
De Integración
De Aceptación
Niveles de prueba
18
Pruebas Unitarias
Verifica el funcionamiento y busca defectos de los
componentes de software que pueden ser analizados
individualmente. (Ej: módulos, programas, objetos y clases).
Niveles de prueba
19
Pruebas Unitarias
Como se analizan individualmente, se utilizan “stubs” y
Pruebas Unitarias
Generalmente ejecutados por desarrolladores.
de documentarlos)
Utilizados en XP para preparar y automatizar casos de
Pruebas Unitarias
Herramientas:
JUnit
TestNG (versión mejorada de JUnit)
PHPUnit
CPPUnit
NUnit (.Net)
MOQ (creación dinámica de objetos simuladores, mocks)
Pruebas unitarias automáticas
22
22
Pruebas unitarias automáticas
23
23
Niveles de prueba
24
Pruebas de Integración
Prueba interfaces entre distintos componentes o
interacciones ente distintas partes de un sistema. Se pueden
dividir en:
Pruebas de integración de componentes
Pruebas de Sistema
Se concentra en el comportamiento de todo el sistema. Se
especificaciones.
Niveles de prueba
30
Pruebas de Aceptación
Se presenta el software al cliente para su aceptación.
Pruebas de Aceptación
Otros tipos de pruebas de aceptación:
Prueba funcional
La prueba funcional considera el comportamiento especificado
Prueba funcional
Pueden existir funciones no documentadas que serán
Prueba No funcional
Un segundo objetivo de las pruebas es la prueba de las
medida.
La prueba no funcional, así como la prueba funcional es
Prueba No funcional
Incluye las pruebas de:
Carga
Estrés
Usabilidad
Mantenibilidad
Confiabilidad
Portabilidad
Tipos de prueba
39
rendimiento
Es el proceso de poner demanda en un sistema o dispositivo
y medir su respuesta
Permite:
JMeter
Grinder
LoadSim
Apache benchmark
Paessler
WAPT
Tipos de prueba
41
Prueba Estructural
Un tercer objetivo es la estructura del sistema o componente.
pruebas de integración.
Tipos de prueba
42
Elementos
Gestor de pruebas
Elementos
Las pruebas back-to-back implican ejecutar el oráculo y el
programa a probar, en paralelo.
Las diferencias entre sus salidas son resaltadas.
Comparador de ficheros.
Compara los resultados de las pruebas del programa con los
resultados de pruebas previas e informa de las diferencias entre
ellos. Se utilizan en pruebas de regresión, donde se comparan los
resultados de ejecutar diferentes versiones.
Generador de informes
Proporciona informes y facilidades de generación para los
resultados de las pruebas.
Automatización de las pruebas
45
Elementos
Analizador dinámico.
La estrategia define:
Técnicas de pruebas (manual o automática) y herramientas a ser
usadas.
Qué criterios de éxito y culminación de la prueba serán usados.
Consideraciones especiales afectadas por requerimientos de
recursos o que tengan implicaciones en la planificación.
En resumen, son todos los métodos que facilitan probar los
niveles y tipos de pruebas definidos mediante casos de
prueba
Plan de pruebas
48
Objetivo
Señalar el enfoque, los recursos y el esquema de
Documentos
Según el estándar IEEE 829,
se definen varios
documentos relacionados con
el diseño de las pruebas
Plan de pruebas
50
Documento de Pruebas
Objetivo
Alcance
Esquema de Pruebas
Pruebas de Interface
Pruebas de Funcionalidad
Pruebas de Integración
Condiciones de Excepción
Pruebas de Mensajes de Error
Pruebas de Integridad
Plan de pruebas
56
Pruebas de Seguridad
Pruebas de Performance
Requerimientos para pruebas
De datos
De simuladores
De hardware
De software
Recursos humanos
Cronograma de pruebas
Herramientas para pruebas
57
TestLink
Qmetry
TestRail
qTest
PractiTest
Zephyr
TestLodge
Selenium
Resumen
58