TC3045 : Calidad y pruebas de
software
Ing. Jeann José Frias Garza
[email protected]
Temas
4. Pruebas del Software. (6 Semanas. Jueves 19:00-22:00)
Introducción
Proceso de pruebas del Software.
Tipos y niveles de pruebas.
Actividades y roles para cada tipo de prueba.
Ambiente para las pruebas.
Diseño de casos de pruebas: técnicas de caja blanca y caja negra.
Métricas de pruebas.
Herramientas.
Modelo en Cascada
Análisis
Diseño
Implementación o
Codificación
Pruebas
Mantenimiento
RUP
«Rup espanol» de Angeldx7 - Trabajo propio. Disponible bajo la licencia CC BY-SA 3.0 vía
https://es.wikipedia.org/wiki/Proce Wikimedia Commons -
so_Unificado_de_Rational https://commons.wikimedia.org/wiki/File:Rup_espanol.gif#/media/File:Rup_espanol.gif
Espiral
"Spiral model (Boehm, 1988)" by Connyderivative work: Spiral_model_(Boehm,_1988).png:
Marctroyderivative work: Conan (talk) - File:Spiralmodel_nach_Boehm.png,
Spiral_model_(Boehm,_1988).png. Licensed under Public Domain via Wikimedia Commons -
https://commons.wikimedia.org/wiki/File:Spiral_model_(Boehm,_1988).svg#/media/File:Spiral_model_(Boe
https://en.wikipedia.org/wiki/Spiral_model hm,_1988).svg
Mantenimiento
Realizar mantenimiento para
Corregir fallas
Mejorar el diseño (refactoring)
Implementar mejoras
Integrarse con otro software (nuevo)
Adaptar programas para soportar una nueva
plataforma tecnológica (HW, SW)
Migrar software legado (Reemplazar)
Retirar software (eliminar)
Mantenimiento
Categorías de mantenimiento
Preventivo (modificación posterior a la entrega para detectar y corregir fallas
latentes antes de que sean operacionales)
Problemas sin incidentes, consumo mayor de recursos
Correctivo (modificaciones reactivas o reparaciones)
Error de un cálculo
Perfectivo (modificación posterior a la entrega para proveer mejoras a los
usuarios)
Nuevos requerimientos / funcionalidad
Adaptativo (modificación de acuerdo a un entorno cambiante)
Actualización del SW porque se requiere actualizar el sistema operativo (Vulnerabilidades o
pérdida de soporte por parte del proveedor)
Corrección Mejora
Proactivo Preventivo Perfectivo
Reactivo Correctivo Adaptativo
Importancia
• Las fallas en el software pueden ser costosas y
resultar en una pérdida de tiempo, esfuerzo y
reputación
• En caso de ser SW crítico, estás fallas pueden
causar una pérdida financiera mayor e inclusive
daños en las personas y pérdida de la vida
Importancia
• Por eso es importante localizar y corregir (o
rectificar) los defectos de un sistema de software
antes de ser liberado para uso público
• http://www.gallop.net/blog/top-10-mega-
software-failures-of-2014/
• https://www.yahoo.com/tech/s/2016-vw-diesels-
software-affecting-emissions-tests-142019516--
finance.html
Conceptos
• Para eliminar los defectos de un software
defectuoso es importante entender que causa
dichos defectos
• El SW defectuoso es el resultado de errores
realizados durante su diseño y construcción
• Los asuntos del software se pueden clasificar en 3
categorías
Errores
Defectos
Fallas
Conceptos
• Los asuntos del software se pueden clasificar en 3
categorías
• Errores – Es la acción ejecutada por una persona o
personas que lleva a un resultado incorrecto. Al utilizar
el SW o durante el proceso de diseño y construcción
• Defectos – (Bug) Es una falla o imperfección en un
componente o sistema que puede causar que el SW no
ejecute la función requerida
• Fallas – (Failure) Es una desviación de un componente o
sistema de su resultado, servicio o entrega esperado
Conceptos
• No todos los errores se traducen en fallas, los errores
pueden guiar a un defecto el cual se puede convertir en
falla
• Un defecto causa que un SW falle
• Las fallas ocurren solo cuando el código es ejecutado
• No todos los defectos resultan en una falla
• Se puede reducir la probabilidad de que un error ocurra
en el futuro al conducir una análisis de causa raíz
Ciclo de Vida del Producto
Req Análisis Diseño Desarrollo Implementación
1
Se entregan todos los
atributos correctos del
producto
2
Los defectos pueden
ser corregidos (Fácil)
3
Un rediseño es
requerido para corregir
los defectos (Difícil)
4
La corrección puede
ser imposible
Cero Defectos Defecto
Impacto
El costo de investigar y
Costo corregir los defectos
son directamente
proporcionales al
incremento del tiempo
Tiempo
Análisis Diseño Desarrollo Implementación
Calidad
• Calidad es que tan bien un componente, sistema o
proceso es diseñado y que tan bien está conforme al
diseño
• Las pruebas ayudan a mejorar la confianza de que un
producto cumple los criterios de calidad
• Debemos asegurar que las pruebas sean exhaustivas. Ya
que si son débiles pueden dar la sensación de
seguridad pero estaríamos cubriendo los defectos y
estos serían descubiertos hasta la ejecución
Tipos de Pruebas de
acuerdo a los atributos
• Atributos Funcionales (Tareas)
• Atributos No – Funcionales (Que tan bien o rápido
se ejecuta la tarea) y requiere de una métrica
Validación y Verificación
• Validación
• Asegura que el producto cumple las necesidades de los
usuarios y que cumple el propósito para el cual fue
construido
• Construir el producto correcto
• Verificación
• Evalúa un producto para determinar que cumple los
requerimientos establecidos (requerimientos)
• Construir el producto correctamente
Expectativas
• Es necesario para entender las expectativas de los
clientes y luego crear un plan de pruebas
• Percepciones de la calidad
• Características físicas (Observación)
• Usabilidad (Uso para la tarea en cuestión)
• Estándares de la industria (Requerimientos funcionales y
no funcionales, cuantitativo)
• Respuestas subjetivas (Creer en el que el producto
cumplirá sus necesidades)
Propósito de las pruebas y
Pruebas exhaustivas
• Propósito de las pruebas es eliminar defectos y asegurar la
calidad del producto. No se debe exceder el tiempo y
presupuesto y se deben cumplir las necesidades de los clientes.
• ¿Qué tantas pruebas debo realizar?
• Pruebas Exhaustivas son imprácticas y no recomendables
• Ejemplo Probar un campo. ¿Debemos probar todas las
posibilidades?
• Se debe realizar una evaluación de riesgo (técnico y de negocio) y
considerar las restricciones de tiempo y presupuesto. Esto para
determinar la cantidad de pruebas
Matrices de Trazabilidad
• Matrices de trazabilidad
• Requerimientos vs Casos/Matrices de Prueba
Especificación / SW
Requerimiento X
Requerimiento Y
Requerimiento Z
Tipos de Pruebas
• Pruebas de desempeño
• Pruebas de volumen / stress
• Pruebas de integración
• Pruebas de funcionalidad
• Pruebas unitarias
• Pruebas de regresión
• Pruebas de caja blanca o caja negra
• Pruebas de usabilidad
• Pruebas de instalación
• Pruebas alpha
• Pruebas beta
• Pruebas de aceptación
FIN