Documente Academic
Documente Profesional
Documente Cultură
Introducción
Un poco de historia
Por que son necesarias las pruebas
Peores errores de la historia
Definiciones básicos
Errores, defectos y fallas
Las pruebas, y los riesgos, Pruebas Vs. Depuración
Recomendaciones para unas pruebas exitosas
Trabajo encomendado
Introducción – Un poco de Historia
Software:
• Especifica el conjunto de programas informáticos que se desarrollan en el
entorno de una computadora
• Papel del software en la sociedad ha cambiado significativamente en los
últimos 50 años
• mejoras en rendimiento del hardware
• cambios en arquitecturas informáticas
• aumentos de memoria y capacidad de almacenamiento
• variedad de dispositivos de entrada y salida
• ...
• Importancia profesional y personal de la Informática
• Disminuye el precio del hardware
• Aumenta la demanda de nuevas aplicaciones
Introducción – Un poco de Historia
Introducción
Porque son necesarias las pruebas?
A la empresa Al entorno
• Reputación dañada acerca de • Contaminación
la calidad • Desperdicio de Recursos
• Costos de mantenimiento
altos e impredecibles A las personas, sociedades y
• Retrasos inesperados en estados
ciclos de versiones • Perdida de trabajos
• Falta de confianza en el • Perdida de vidas
sistema • Perdida de derechos
• Demandas • Perdida de Guerras
Importancia de las pruebas de software Introducción
Introducción
En un proyecto de desarrollo de software los errores (bugs
en inglés) puede presentarse en cualquiera de las etapas
del ciclo de vida del software
Introducción
Introducción
Introducción
Algunos de los peores errores de la historia
Introducción
Algunos de los peores errores de la historia
Introducción
Algunos de los peores errores de la historia
Introducción
Definiciones …
Conceptos
Prueba es una actividad realizada para evaluar la
calidad del producto y mejorarla, identificando
defectos y problemas.
La prueba de software (testing) es la verificación
dinámica del comportamiento de un programa
contra el comportamiento esperado, usando un
conjunto finito de casos de prueba, seleccionados
de manera adecuada desde el dominio infinito de
ejecución.
Conceptos
“Prueba de Software es la ejecución del código
usando combinaciones de entradas, en un
determinado estado, para revelar defectos.”
“Prueba de Software […] es el diseño e
implantación de un software especial: uno que
ejercita otro software con la intención de hallar
defectos.” Robert V. Binder, Testing Object-Oriented
Systems: Models, Patterns, and Tools (1999)
En qué consisten las pruebas?
Determinar qué partes del sistema desea
probar
Definir valores de entrada que aporten
información significativa
Correr el software con los valores de entrada
Fallo
• Un resultado incorrecto
• Una acción humana que conduce a un resultado
Error incorrecto
Conceptos
Falla – inhabilidad que manifiesta un sistema para
realizar una función necesaria
Evidenciado por:
Salida incorrecta
Terminación anormal
Limitaciones de tiempo o espacio incumplidas
?!
puede generar que puede generar
(interno) (externa)
Explicación : Relación entre defecto – falla - error
Explicación : Relación entre defecto – falla - error
Descubriendo el origen
De donde vienen los defectos y que es lo que ocasionan?
• La gente comete errores los cuales crean defectos en el sistema
• Requisitos y especificaciones de diseño
• Código (lógica de negocios e interfaz de usuario)
• Documentación (electrónica e impresa)
• Cuando un código defectuoso es ejecutado ocurren fallas
• Si estas fallas son visibles a los clientes, usuarios u otros interesados,
podrían resultar en insatisfacción con la calidad del sistema
Descubriendo el origen
De donde vienen los defectos y las fallas?
• Los defectos ocurren debido a:
• Presión de tiempo
• Complejidad del código, infraestructura o problemas a ser resueltos
• Las tecnologías cambian continuamente y deben engranar
• Muchas interacciones del sistema
• Las fallas ocurren debido a defectos y …
• Condiciones del entorno
• Uso incorrecto (deliberado o accidental)
Importancia de las pruebas de software Conceptos básicos
http://www.testinggeek.com/its-defect-speaking
Importancia de las pruebas de software Conceptos básicos
Conceptos básicos :
Proceso de pruebas
Conceptos básicos
Casos de prueba y criterios de prueba
Conceptos básicos
Casos de prueba y criterios de prueba...
Conceptos básicos
Casos de prueba y criterios de prueba...
Cada caso de prueba cuesta dinero: esfuerzo para generarlo, tiempo de cómputo para
ejecutarlo, esfuerzo para evaluar los resultados
Importancia de las pruebas de software Conceptos básicos
Conceptos básicos
Objetivos del proceso de pruebas
Conceptos básicos
Objetivos de las pruebas
• Cada caso de prueba debe definir el resultado de salida esperado que se comparará
con el realmente obtenido.
• El programador debe evitar probar sus propios programas, ya que desea (consciente
o inconscientemente) demostrar que funcionan sin problemas. Además, es normal
que las situaciones que olvidó considerar al crear el programa queden de nuevo
olvidados al crear los casos de prueba.
• Se debe inspeccionar a conciencia el resultado de cada prueba, y así, poder descubrir
posibles síntomas de defectos.
• Al generar casos de prueba, se deben incluir tanto datos de entrada válidos y
esperados como no válidos e inesperados.
Importancia de las pruebas de software Conceptos básicos
• La experiencia parece indicar que donde hay un defecto hay otros, es decir, la probabilidad
de descubrir nuevos defectos en una parte del software es proporcional al número de
defectos ya descubierto.
• Las pruebas son una tarea tanto o más creativa que el desarrollo de software. Siempre
se han considerado las pruebas como una tarea destructiva y rutinaria.