DE SOFTWARE
ING. MSC. RENATO CASTILLO GALDO
¿DE DÓNDE VIENEN LOS DEFECTOS Y QUÉ 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.
¿DE DÓNDE VIENEN LOS DEFECTOS Y LAS FALLAS?
• Las pruebas encuentran fallas que son causadas por los defectos.
• La depuración:
• Identifica la causa raíz de un defecto.
• Repara el código.
• Comprueba que el defecto haya sido corregido correctamente.
• Las pruebas de confirmación (repetición de pruebas) aseguran que la
corrección resuelve las fallas observadas.
LAS PRUEBAS SON MÁS QUE LA EJECUCIÓN DE
PRUEBAS
• Un problema común para los grupos de pruebas es cuando ellos piensan en
las pruebas meramente como la ejecución de pruebas contra el sistema.
• El proceso de pruebas no es solo la ejecución de pruebas contra un sistema
ejecutándose.
LAS PRUEBAS SON MÁS QUE LA EJECUCIÓN DE
PRUEBAS
• Otras actividades de pruebas, antes y después de la ejecución incluyen:
• Planificar y controlar.
• Escoger condiciones de pruebas.
• Diseñar casos de pruebas.
• Comprobar resultados de pruebas.
• Evaluar criterios de salida.
• Informar resultados de pruebas.
• Tareas de cierre / fin de la prueba.
RELACIÓN ENTRE PRUEBAS, ASEGURAMIENTO DE LA
CALIDAD Y EL MEJORAMIENTO DE LA CALIDAD
• Los grupos de pruebas son con frecuencia referidos erróneamente como
grupos de “aseguramiento de la calidad” o grupos de ”QA”.
• Idealmente, las pruebas son parte de una estrategia más grande del
aseguramiento de la calidad para un proyecto y en toda la organización.
• Para proyectos futuros, analice las causas raíz de los defectos encontrados en
los proyectos actuales y siga los pasos para reducir su incidencia y mejorar la
calidad.
PRINCIPIOS GENERALES DE LAS PRUEBAS
• Las pruebas revelan la presencia de defectos.
• La imposibilidad de pruebas exhaustivas.
• Los beneficios de las pruebas tempranas.
• La aglomeración de defectos: la agrupación de defectos.
• La paradoja del pesticida.
• Las pruebas deberían adaptarse a necesidades específicas.
• La falacia de la ausencia de errores.
PROCESOS DE PRUEBAS
El proceso de
pruebas de
software depende
de muchos
factores:
PROCESOS DE PRUEBAS
PROCESOS DE PRUEBAS
NIVELES DE PRUEBAS
ATRIBUTOS DE LOS NIVELES DE PRUEBAS
Base de Pruebas Objeto de Defectos típicos
Pruebas
Componente • Diseño • Componentes, • Funcionamiento
detallado unidades o incorrecto.
• Código módulos • Problemas de
• Modelo de • Estructuras de flujo de datos.
Datos código y datos. • Código y lógica
• Especificaciones • Clases. incorrectos.
de los • Módulos de
componentes base de datos.
ATRIBUTOS DE LOS NIVELES DE PRUEBAS
Base de Pruebas Objeto de Defectos típicos
Pruebas
Integración • Diseño de software • Subsistemas • Datos incorrectos,
y sistemas. • Bases de datos datos faltantes o
• Diagrama de • Infraestructura codificación de datos
secuencia. • Interfaces incorrecta.
• Especificaciones de • API • Secuencia o
interfaz y protocolo • Microservicios temporización
de comunicación. incorrecta de las
• Casos de uso llamadas a la
interfaz.
• Incompatibilidad de
la interfaz.
ATRIBUTOS DE LOS NIVELES DE PRUEBAS
Base de Pruebas Objeto de Defectos típicos
Pruebas
Integración • Arquitectura a • Subsistemas • Fallas en la comunicación entre
nivel de • Bases de componentes.
componente o datos • Fallas en la comunicación entre
sistema. • Infraestruct componentes no manejadas o mal
• Flujos de ura manejadas.
trabajo. • Interfaces • Suposiciones incorrectas sobre el
• Definiciones de • API significado, las unidades o los límites
interfaz • Microservici de datos que se transmiten entre
externa. os sistemas.
• Fallas en el cumplimiento de
regulaciones de seguridad
obligatorias.
ATRIBUTOS DE LOS NIVELES DE PRUEBAS
Base de Pruebas Objeto de Pruebas Defectos típicos
Sistema • Especificaciones • Aplicaciones • Cálculos incorrectos.
funcionales y no • Sistemas de • Comportamiento
funcionales de hardware/software funcional o no funcional
requisitos del sistema y • Sistemas operativos. del sistema incorrecto o
del software. • Sistemas bajo prueba inesperado.
• Casos de uso. (SUT) • Control y/o flujos de
• Épicas e historias de • Configuración del datos incorrectos
usuarios. sistema y datos de dentro del sistema.
configuración. • Falta de realización
adecuada y completa
de tareas funcionales
de extremo a extremo.
ATRIBUTOS DE LOS NIVELES DE PRUEBAS
Base de Pruebas Objeto de Pruebas Defectos típicos
Sistema • Modelos de • Aplicaciones • Mal funcionamiento del
comportamiento del • Sistemas de sistema en el entorno
sistema. hardware/software de producción.
• Diagramas de estado. • Sistemas operativos. • Falla del sistema para
• Manuales del sistema y • Sistemas bajo prueba trabajar como se
del usuario. (SUT) describe en los
• Configuración del manuales del sistema y
sistema y datos de del usuario.
configuración.
ATRIBUTOS DE LOS NIVELES DE PRUEBAS
Base de Pruebas Objeto de Pruebas Defectos típicos
Aceptación • Procesos de negocio • Sistema bajo prueba. • Los flujos de trabajo
• Requisitos del • Configuración del del sistema no cumplen
usuario del negocio sistema y datos de con los requisitos del
• Regulaciones, configuración negocio o del usuario.
contratos legales y • Procesos de negocio • Las reglas de negocio
estándares. para un sistema no se implementan
• Casos de uso. totalmente integrado correctamente.
• Requisitos del • Procesos operativos y • El sistema no satisface
sistema. de mantenimiento. los requisitos
• Documentación del contractuales o
sistema o del reglamentarios.
usuario.
ATRIBUTOS DE LOS NIVELES DE PRUEBAS
Base de Pruebas Objeto de Pruebas Defectos típicos
Aceptación • Procedimientos de • Sistemas de • Fallos no funcionales
instalación. recuperación y sitios tales como
• Informes de críticos(para pruebas vulnerabilidades de
análisis de riesgos de continuidad del seguridad, eficiencia
negocio y recuperación de rendimiento
de desastres) inadecuada bajo
• Formularios cargas elevadas o
• Informes funcionamiento
• Datos de producción incorrecto en una
existentes y convertidos plataforma soportada
FORMAS DE PRUEBAS DE ACEPTACIÓN
• Pruebas de aceptación de usuarios (UAT)
• Validan la idoneidad para el uso del sistema por parte de los usuarios previstos en un
entorno operativo real o simulado.
• Los usuarios pueden utilizar el sistema para satisfacer sus necesidades, cumplir con los
requisitos y llevar a cabo los procesos de negocio con la mínima dificultad, coste y
riesgo.
FORMAS DE PRUEBAS DE ACEPTACIÓN
• Pruebas de aceptación operacional (OAT)
• Pruebas de copia de seguridad y restauración.
• Instalación, desinstalación y actualización.
• Recuperación de desastres.
• Gestión de usuarios.
• Tareas de mantenimiento.
• Carga de datos y tareas de migración.
• Comprobación de vulnerabilidades de seguridad.
• Pruebas de rendimiento.
FORMAS DE PRUEBAS DE ACEPTACIÓN
• Pruebas de aceptación contractual y regulatoria
• Suelen ser realizadas por usuarios o por probadores independientes.
• Las pruebas de aceptación contractuales se realizan en función de los criterios de
aceptación del contrato.
• Las pruebas de aceptación regulatorias se realizan sobre de cualquier regulación que
deba cumplirse, como las regulaciones gubernamentales, legales o de seguridad.
IDENTIFICAR NIVELES DE PRUEBAS
• Pruebas Funcionales
• Pruebas No Funcionales
• Pruebas de Caja Blanca
• Pruebas relacionadas con el cambio
TIPOS DE PRUEBA
• Pruebas funcionales
• Implica pruebas que evalúan las funciones que el sistema debería realizar.
• Las funciones son “lo que” debe hacer el sistema.
• Debe realizarse en todos los niveles de prueba, aunque el enfoque es diferente en cada
nivel.
• Uso de técnicas de caja negra para obtener casos de prueba.
• Conocimiento del dominio de negocio.
• Métrica: cobertura funcional
TIPOS DE PRUEBA
• Pruebas No funcionales
• Evalúa los atributos de calidad del software (referencia: ISO/IEC 25010)
• Es la prueba de “qué tan bien” se comporta el sistema.
• Pueden realizarse en todos los niveles de prueba, y deben realizarse lo antes posible.
• Uso de técnicas de caja negra para obtener casos de prueba.
• Conocimiento de las debilidades de un diseño o tecnología.
• Métrica: cobertura no funcional.
TIPOS DE PRUEBA
• Pruebas de Caja Blanca
• Pruebas basadas en la estructura interna del sistema o en su implementación.
• La estructura interna puede incluir código, arquitectura, flujos de trabajo y/o flujos de
datos dentro del sistema.
• Conocimientos sobre la forma en que se construye el código y cómo se almacenan los
datos.
• Métrica: cobertura estructural tal como cobertura de código o cobertura de interfaces.
TIPOS DE PRUEBA
• Pruebas relacionadas con el Cambio
• Pruebas de confirmación
• Pruebas para confirmar si un defecto corregido ha sido arreglado con éxito.
• Pruebas de regresión
• Implican la realización de pruebas para detectar efectos secundarios no deseados debido a
cambios en el código.
• Candidato a ser automatizado.
• Se realizan en todos los niveles de pruebas.
• Muy usados en el desarrollo iterativo/incremental.
PARA CADA ESCENARIO INDICAR QUE TIPO DE PRUEBA ES
Y A QUÉ NIVEL DE PRUEBA CORRESPONDE
1. Las pruebas están diseñadas para evaluar la accesibilidad de la interfaz
de procesamiento de orden de compra del jefe de logística para personas
con discapacidades.
2. Las pruebas están diseñadas para cubrir secuencias de páginas web que
pueden ocurrir durante una solicitud de aprobación de línea de crédito.
3. Las pruebas se diseñan en base a cómo un componente debe calcular el
interés compuesto.
PRUEBAS DE CAJA NEGRA
• Tipos:
• Prueba basada en fallas
• Prueba basada en escenarios
• Prueba de arquitectura cliente/servidor
• Pruebas de servidor
• Pruebas de bases de datos
• Pruebas de transacción
• Pruebas de comunicación de red
• Prueba de documentación
PRUEBA BASADA EN FALLAS
• Diseñar pruebas que tengan altas probabilidades de descubrir posibles
fallas.
• La prueba de integración busca fallas en llamadas a operación o en
conexiones entre mensajes.
• Tres tipos de fallas se pueden encontrar: resultado inesperado, operación
incorrecta / mensaje empleado, invocación incorrecta.
• La prueba de integración busca encontrar errores en el objeto cliente, no en
el servidor
PRUEBA BASADA EN ESCENARIOS
• Esta complementa la anterior, ya que la de fallas soslaya dos tipos de
errores:
• a) Especificaciones incorrectas: el producto no hace lo que el cliente
quiere.
• b) Interacciones entre subsistemas: ocurren cuando el comportamiento de
un subsistema causa fallas del otro subsistema.
• Este tipo de prueba se enfoca en lo que hace el usuario no el producto.
• Ejemplo: mandar imprimir documento ( con última corrección ? )
PRUEBA DE ARQUITECTURA CLIENTE/SERVIDOR
• Prueba de servidor: probar las funciones de coordinación y manejo de datos
del servidor. Desempeño del servidor ( tiempo de respuesta y procesamiento
total de los datos )
• Prueba de base de datos: probar la exactitud e integridad de los datos,
examinar transacciones, asegurar que se almacena, actualiza y recuperan los
datos.
• Pruebas de comunicación de red: verificar comunicación entre los nodos, el
paso de mensajes, transacciones y trafico de la red se realice sin errores
PRUEBA DE DOCUMENTACIÓN
• Es importante para la aceptación del programa.
• Revisar la guía de usuario o funciones de ayuda en línea.
• Prueba de documentación es en dos fases:
• 1. Revisar e inspeccionar: examinar la claridad editorial del
documento.
• 2. Prueba en vivo: usar la documentación junto con el programa
real.
PRUEBAS DE CAJA BLANCA
• Bucles concatenados:
igual que los simples
• Bucles no estructurados:
se recomienda rediseñar los bucles
CAJA BLANCA: PRUEBA DEL CAMINO BÁSICO
CAJA BLANCA: PRUEBA DEL CAMINO BÁSICO
•RENGAL3@GMAIL.COM