Summary

Este documento describe los enfoques de pruebas estáticas y dinámicas. Explica las técnicas de análisis estático, la automatización de pruebas y las revisiones manuales. El documento también discute la importancia de detectar errores y defectos tempranamente en el ciclo de desarrollo de software.

Full Transcript

Clase 7 Enfoques de Pruebas Pruebas Dinámicas Descripción: Ejecutamos el software para identificar defectos. Método: Involucra la ejecución real del código o la aplicación. Pruebas Estáticas Descri...

Clase 7 Enfoques de Pruebas Pruebas Dinámicas Descripción: Ejecutamos el software para identificar defectos. Método: Involucra la ejecución real del código o la aplicación. Pruebas Estáticas Descripción: Encontramos defectos sin ejecutar el software. Inicio: Desde el primer día del proyecto. Método: Revisión de requisitos, diseño, procesos y documentación. Técnicas de Pruebas Estáticas Análisis Estático Automatización: Principalmente una actividad automatizada. Función de IDEs: Entornos de Desarrollo Integrado (IDEs) informan sobre advertencias y errores antes de ejecutar el código. Advertencia: Problema que permite la ejecución del código pero puede causar ineficiencia (e.g., variables no usadas). Error: Problema que impide la ejecución del código hasta ser resuelto. Importancia: Esencial para sistemas críticos de seguridad. Común en otros entornos para asegurar la calidad del código. Clase 7 1 Herramientas Adicionales: Desarrolladores pueden usar herramientas adicionales de análisis estático para obtener más advertencias y mejorar la calidad. Ejemplo Cotidiano: Correctores ortográficos y gramaticales en procesadores de texto (e.g., MS Word muestra líneas rojas para errores ortográficos y líneas azules para errores gramaticales). Revisión Descripción: Actividad manual. Áreas de Revisión: Requisitos: Buscar ambigüedades y contradicciones. Diseño: Evaluar y comentar sobre la estructura y lógica del diseño. Código: Asegurarse de que sigue los estándares de codificación y que los comentarios están correctamente escritos. Resumen Final Las pruebas estáticas y dinámicas son esenciales para asegurar la calidad del software. Las pruebas dinámicas ejecutan el software para encontrar defectos en su funcionamiento. Las pruebas estáticas, por otro lado, identifican problemas sin ejecutar el software, a través de análisis automatizados y revisiones manuales. El análisis estático detecta advertencias y errores en el código, mientras que las revisiones evalúan requisitos, diseño y código para garantizar claridad y coherencia desde el inicio del proyecto. Beneficios de las Pruebas Estáticas Clase 7 2 Reducción de Costos: Arreglar defectos es mucho más económico cuando se encuentran en las etapas iniciales (requisitos, diseño, código) comparado con encontrarlos en producción, donde el costo aumenta significativamente. Momento de las Pruebas Estáticas Ciclo de Vida Temprano: Se realizan al principio del ciclo de desarrollo, antes de las pruebas dinámicas y la implementación, encontrando defectos tempranamente. Defectos Más Comunes Requisitos: Defectos por falta de especificaciones claras, como el método de inicio de sesión del usuario. Diseño: Problemas encontrados al revisar wireframes o prototipos. Código: Defectos detectados a través de revisiones o análisis estático, incluyendo desviaciones de estándares de codificación. Clase 7 3 Interfaces Incorrectas: Errores en los diagramas UML y transiciones de estado. Seguridad: Vulnerabilidades de seguridad identificadas. Trazabilidad y Cobertura: Lagunas o inexactitudes en la cobertura de la base de prueba y requisitos sin casos de prueba en la matriz de trazabilidad. Resumen Final Las pruebas estáticas son cruciales para detectar y corregir defectos de forma temprana y económica. Se realizan al inicio del ciclo de desarrollo y abarcan la revisión de requisitos, diseño, código, y especificaciones de interfaces, además de identificar problemas de seguridad y trazabilidad. Esto permite evitar los altos costos de corregir defectos en etapas avanzadas como la producción. Proceso de Revisión El proceso de revisión es una forma de pruebas estáticas que involucra roles, responsabilidades y tareas específicas. Aquí están las etapas clave: 1. Planificación Definir el alcance: Qué se va a revisar y qué no, tiempo y recursos necesarios. Tipo de revisión: Seleccionar el tipo de revisión y las técnicas a utilizar. Clase 7 4 Roles: Asignar roles y seleccionar participantes (propietario del producto, testers, desarrolladores). Criterios de entrada y salida: Establecer requisitos previos y objetivos de la revisión. 2. Revisión Inicial Distribución del producto: Enviar el documento a revisar. Explicación del proceso: Definir el alcance, objetivos, roles y resolver dudas en una reunión inicial. 3. Preparación o Revisión Individual Revisión individual: Cada participante revisa el documento y anota defectos potenciales, recomendaciones y preguntas. 4. Comunicación y Análisis Reunión de revisión: Compartir y discutir los defectos encontrados. Análisis y asignación: Asignar defectos al autor del documento, evaluar características de calidad y comparar hallazgos con los criterios de salida. 5. Arreglar y Reportar Informe de defectos: Reportar y comunicar defectos encontrados. Métricas y validación: Recopilar métricas, comparar con los criterios de salida y decidir si el producto de trabajo está aprobado. Resumen Final El proceso de revisión es esencial para detectar defectos tempranamente y asegurar la calidad del producto de trabajo. Involucra una planificación cuidadosa, revisión individual y colaborativa, y una evaluación detallada para garantizar que los objetivos de calidad se cumplan antes de avanzar a etapas posteriores del desarrollo. Clase 7 5 Roles y Responsabilidades de la Revisión Autor Responsable: Crear y corregir el producto de trabajo. Ejemplos: Tester para casos de prueba. Desarrollador para código. Líder de testing para el plan de pruebas. Analista de negocios o Product Owner para requisitos. Gerente Funciones: Planificar la revisión. Tomar decisiones de control. Asignar personal, presupuesto y tiempo. Monitorear la rentabilidad. Facilitador o Moderador Responsabilidades: Asegurar el funcionamiento eficaz de la reunión. Distribuir el producto del trabajo. Responder preguntas y resolver conflictos. Mediar entre diferentes puntos de vista. Líder de Revisión Tareas: Decidir quiénes participarán en la revisión. Organizar cuándo y dónde se llevará a cabo. Puede combinar roles con el facilitador o gerente. Clase 7 6 Revisores Rol: Revisar el producto de trabajo y encontrar defectos. Pueden ser del proyecto o partes interesadas externas. Necesitan antecedentes técnicos o comerciales específicos. Aportan diferentes perspectivas. Escriba o Registrador Funciones: Registrar y priorizar los defectos encontrados. Documentar puntos abiertos y decisiones tomadas en la reunión. Este rol puede ser combinado con otros roles como facilitador. Resumen Final En el proceso de revisión, los roles clave incluyen al autor, gerente, facilitador, líder de revisión, revisores y escriba. Cada uno tiene responsabilidades específicas, desde crear y corregir el producto de trabajo hasta planificar la revisión, mediar en reuniones y registrar defectos. Algunos roles pueden combinarse según la necesidad y disponibilidad del equipo. Tipos de Revisión Revisión Informal Descripción: Relajada y flexible, sin proceso específico. Enfoque: Detección rápida de defectos y generación de ideas. Características: Clase 7 7 Realizada por un colega del autor. No requiere reunión formal. Dependiente de las habilidades del revisor. Común en proyectos ágiles. Walkthrough (Tutorial) Propósito: Explicar el producto de trabajo al equipo. Objetivos: Encontrar defectos, mejorar el producto, considerar diferentes enfoques, evaluar conformidad con estándares. Características: Guiado por el autor. Puede incluir preparación individual y documentación de defectos. Revisión Técnica Destinatarios: Expertos en el tema. Objetivos: Lograr consenso, detectar defectos, evaluar calidad. Características: Incluye reunión de revisión y escriba. Preparación individual obligatoria. Inspección Descripción: La más formal y estructurada. Objetivos: Detectar defectos, evaluar calidad, generar confianza, prevenir defectos futuros mediante análisis de causa raíz. Características: Sigue un proceso definido con roles claros (autor, líder de revisión, escriba, facilitador). Clase 7 8 Puede incluir un lector y otros roles conforme a reglamentaciones como ISO. Aplicada de manera exhaustiva, siguiendo estrictamente el proceso de revisión. Resumen Final Existen diferentes tipos de revisión para asegurar la calidad del producto de trabajo: revisión informal para flexibilidad y rapidez, walkthrough para explicación y mejora, revisión técnica para expertos y evaluación formal, e inspección para un enfoque exhaustivo y estructurado en la detección y prevención de defectos. La elección del tipo de revisión depende del proyecto, riesgos, presupuesto y equipo. Técnicas de Revisión Ad-Hoc Descripción: Sin planificación ni guía específica. Proceso: Revisores leen el producto de trabajo y dan su opinión. Ventajas: Flexibilidad. Desventajas: Dependencia de las habilidades del revisor, posible duplicación de problemas identificados. Checklist Descripción: Revisión sistemática con una lista de verificación. Proceso: Revisores siguen una lista de puntos específicos para evaluar. Ventajas: Cobertura sistemática de defectos típicos. Desventajas: Puede limitarse a lo que está en la lista, aunque los revisores pueden revisar fuera de la lista. Simulacros Clase 7 9 Descripción: Guía estructurada basada en escenarios. Proceso: Revisores siguen casos de uso para evaluar el producto. Ventajas: Orientación clara sobre cómo revisar. Desventajas: Necesita documentación adecuada del producto. Revisión Basada en Roles Descripción: Evaluación desde la perspectiva de diferentes roles de usuarios. Proceso: Considerar distintos tipos de usuarios (experimentados, inexpertos, mayores, niños, etc.). Ventajas: Identificación de defectos específicos para diferentes tipos de usuarios. Desventajas: Puede ser complejo al considerar múltiples roles. Revisión Basada en Perspectiva Descripción: Similar a la basada en roles, pero más general. Proceso: Revisar desde la perspectiva de un usuario final, marketing, diseño, evaluador u operaciones. Ventajas: Enfoque amplio desde diversas perspectivas. Desventajas: Menos específica que la basada en roles, puede perder detalles específicos de ciertos usuarios. Resumen Final Las técnicas de revisión incluyen Ad-Hoc (sin planificación), Checklist (sistemática con listas de verificación), Simulacros (guía estructurada con escenarios), Revisión Basada en Roles (evaluación desde diferentes roles de usuario) y Revisión Basada en Perspectiva (enfoque general desde diversas perspectivas). Cada técnica ofrece ventajas y desventajas según la flexibilidad, sistematicidad y especificidad requeridas. Clase 7 10 Técnicas de Pruebas Dinámicas Las pruebas dinámicas comienzan una vez que se puede ejecutar y probar un producto de trabajo, generalmente después de que se escribe el código. Categorías Principales Las técnicas de pruebas dinámicas se dividen en tres categorías: Caja Negra (Basadas en el Comportamiento) Caja Blanca (Estructurales) Basadas en la Experiencia Pruebas de Caja Negra Enfoque: Se centran en la entrada y salida del sistema sin considerar su procesamiento interno. Bases de Prueba: Documentos, requisitos funcionales y no funcionales, historias de usuarios, casos de uso y procesos comerciales. Pruebas de Caja Blanca Enfoque: Evaluación de la estructura interna del sistema. Bases de Prueba: Código fuente, arquitectura del software, diseño detallado del software, clases, módulos y variables. Requisito: Comprensión del lenguaje de programación utilizado en el sistema.6 Pruebas Basadas en la Experiencia Enfoque: Basadas en el conocimiento y experiencia del tester. Utilidad: Cuando no hay documentación disponible o existe presión de tiempo. Clase 7 11 Aplicación Común: Pruebas exploratorias. Resumen Final Las pruebas dinámicas se realizan una vez que se puede ejecutar el producto y abarcan tres categorías: caja negra (centrada en la funcionalidad externa), caja blanca (centrada en la estructura interna) y basadas en la experiencia (apoyadas en el conocimiento del tester). Cada categoría utiliza diferentes bases de prueba y enfoques para asegurar la calidad del software. Técnicas de Pruebas de Caja Negra Pruebas de Caja Negra Las pruebas de caja negra se centran en evaluar el Clase 7 12 comportamiento funcional de un sistema sin considerar su estructura interna. Se conocen las entradas y se examinan las salidas para validar que el comportamiento cumple con los requisitos. Partición de Equivalencias Objetivo: Dividir el sistema en particiones y probar cada una con un caso de prueba representativo. Ejemplo: Un requisito funcional que especifica que una OTP debe tener 6 dígitos. Partición 1: OTP con menos de 6 dígitos (inválida). Partición 2: OTP con exactamente 6 dígitos (válida). Partición 3: OTP con más de 6 dígitos (inválida). Casos de Prueba:0. Caso de prueba 1: OTP de 8 dígitos (inválida). Caso de prueba 2: OTP de 6 dígitos (válida). Caso de prueba 3: OTP de menos de 6 dígitos (inválida). Ventaja: Cobertura completa del sistema con un número mínimo de casos de prueba. Cobertura de Partición de Equivalencias (EPC): Fórmula: EPC = (Número Total de Particiones Cubiertas / Total de Particiones) * 100 Cada partición puede ser válida o inválida. Se mide como el número de particiones probadas al menos una vez, dividido por el total de particiones identificadas. Clase 7 13 Notas Adicionales: Cada valor debe pertenecer a una y solo una partición. Las particiones pueden subdividirse en menores. La cobertura del 100% de EPC no garantiza la cobertura de todos los escenarios posibles. La partición de equivalencias es una técnica complementaria que puede combinarse con otras técnicas para una cobertura más completa. Análisis de Valores Límites Clase 7 14 Objetivo: Determinar los valores límite de las entradas que podrían causar un comportamiento incorrecto del sistema. Ejemplo: Un horario de una cafetería que abre de 7 AM a 10 PM. Límites: 6:59:59 (antes de abrir) 7:00:00 (hora de apertura) 22:00:00 (hora de cierre) 22:00:01 (después de cerrar) Casos de Prueba: Se centran en los valores justo en los límites de cada partición. Fórmula: B = (N-1) * 2 (donde B es el número de límites y N es el número de particiones). Notas Adicionales: Es una extensión de la Partición de Equivalencias. Se utiliza para detectar fallos en los límites de las particiones. Se puede aplicar a todos los niveles de prueba. Clase 7 15 Tablas de Decisión Objetivo: Probar el comportamiento del sistema en diferentes combinaciones de entradas. Clase 7 16 Ejemplo: Inscripciones a un curso con los siguientes criterios: Estudiante (20% de descuento). Desempleado (20% de descuento). Empleado no aceptado si no es estudiante. Experiencia en informática para curso avanzado. Combinaciones: 2^3 = 8 posibles combinaciones de entradas. Casos de Prueba: Se crean tablas con todas las combinaciones posibles de entradas y sus resultados. Se eliminan combinaciones imposibles o irrealizables. Notas Adicionales: Cada columna corresponde a una regla de decisión. Los valores pueden ser booleanos, discretos o numéricos. Las tablas pueden reducirse eliminando columnas redundantes. Esta técnica es especialmente útil cuando tenemos múltiples condiciones que afectan una decisión o un resultado. Clase 7 17 Resumen General Las técnicas de pruebas de caja negra se enfocan en evaluar el comportamiento del sistema basado en sus entradas y salidas, sin preocuparse por su estructura interna. Estas técnicas incluyen: Clase 7 18 1. Partición de Equivalencias: Divide el sistema en particiones y prueba cada una con un caso representativo. Permite una cobertura completa con un mínimo de casos de prueba. 2. Análisis de Valores Límites: Se enfoca en los valores límite de las entradas para detectar posibles fallos. Es una extensión de la Partición de Equivalencias y se utiliza para probar los límites de las particiones. 3. Tablas de Decisión: Proporciona una manera sistemática de probar diferentes combinaciones de entradas y sus correspondientes salidas, útil para sistemas con múltiples condiciones que afectan los resultados. Estas técnicas son esenciales para garantizar la calidad y la funcionalidad de un sistema, proporcionando una manera estructurada y eficiente de identificar defectos y asegurar que todos los posibles escenarios sean cubiertos. Clase 7 19

Use Quizgecko on...
Browser
Browser