Pruebas automáticas y manuales Vielka Jiménez (1).pdf
Document Details
Uploaded by ExcellentBeryllium
Tags
Full Transcript
Estudiante: Vielka Jiménez Matrícula: A00111865 Pruebas automáticas y manuales Las pruebas automáticas son procesos de verificación y validación de software que se ejecutan de manera programada sin intervención manual. Dichas pruebas utilizan herramientas y scripts para evaluar el compor...
Estudiante: Vielka Jiménez Matrícula: A00111865 Pruebas automáticas y manuales Las pruebas automáticas son procesos de verificación y validación de software que se ejecutan de manera programada sin intervención manual. Dichas pruebas utilizan herramientas y scripts para evaluar el comportamiento y las funcionalidades de una aplicación de forma sistemática y repetible. El objetivo clave de las pruebas automáticas es mejorar la calidad del software, reducir los errores y garantizar que la aplicación funcione según lo esperado. Además, permiten agilizar el proceso de desarrollo y facilitar la detección temprana de problemas. Ventajas de las pruebas automáticas 1- Mayor precisión: Las pruebas automáticas ejecutan los casos de prueba de manera consistente eliminando errores humanos y logrando resultados más precisos y confiables. 2- Ahorro de tiempo: Una vez configuradas las pruebas automáticas se pueden ejecutar rápidamente ahorrando tiempo y permitiendo un ciclo de desarrollo más ágil. 3- Mejor cobertura: Las herramientas de pruebas automáticas pueden ejecutar un gran número de casos de prueba de manera exhaustiva brindando una cobertura más amplia que las pruebas manuales 4- Detección temprana de defectos: al integrar las pruebas automáticas en el proceso de desarrollo se pueden identificar y corregir errores en etapas tempranas, reduciendo costos y esfuerzo. Definición de pruebas manuales En cuanto al enfoque de observación directa las pruebas manuales se basan en la observación y evaluación de un sistema o aplicación por parte de un usuario humano. En cuanto al enfoque análisis crítico, el evaluador aplica su conocimiento y experiencia para identificar problemas, evaluar la usabilidad y comprobar el cumplimiento de los requisitos. Respecto a la lista de verificación, se utilizan listas de chequeo para asegurar que se han cubierto todos los aspectos y funcionalidades clave del sistema. Ventajas de las pruebas manuales 1- Experiencia del usuario: Las pruebas manuales permiten una evaluación exhaustiva de la experiencia del usuario final identificando problemas sutiles que las pruebas automatizadas podrían pasar por alto. 2- Flexibilidad y adaptación: Los equipos de pruebas manuales pueden adaptarse rápidamente a cambios en los requisitos y realizar pruebas más flexibles y personalizadas según las necesidades del proyecto. 3- Análisis detallado: Los probadores manuales pueden recopilar observaciones y anotaciones detalladas que permiten un análisis más profundo de los resultados de las pruebas. Diferencias entre pruebas automáticas y manuales 1- Enfoque: Las pruebas automáticas se enfocan en probar funcionalidades de forma sistemática y repetida, mientras que las pruebas manuales implican un enfoque más exploratorio y creativo. 2- Eficiencia: Las pruebas automáticas son más eficientes en términos de tiempos y recursos ya que pueden ejecutarse rápidamente y de forma constante, en cambio las pruebas manuales son más lentas pero permiten detectar defectos sutiles y ocultos. 3- Cobertura: Las pruebas automáticas pueden abarcar un mayor número de casos de prueba, pero las pruebas manuales pueden identificar problemas que las pruebas automáticas no detectan. ¿Cuándo utilizar pruebas automáticas? 1- Regresión: Las pruebas automáticas son ideales para ejecutar pruebas de regresión después de cada cambio en el código, esto ayuda a detectar rápidamente si se han introducido nuevos errores. 2- Pruebas de carga: Las herramientas de pruebas automáticas pueden generar y simular un alto volumen de tráfico para evaluar el rendimiento y la escalabilidad del sistema. 3- Pruebas repetitivas: Cuando tienes que realizar la misma batería de pruebas de manera frecuente las pruebas automáticas son más eficientes y confiables que las manuales. 4- Entornos complejos: En sistemas complejos con múltiples componentes y dependencias las pruebas automáticas son esenciales para asegurar la integridad de la aplicación. ¿Cuándo utilizar pruebas manuales? 1- Proyectos complejos: En proyectos complejos que contengan múltiples funcionalidades y casos de usos las pruebas manuales son esenciales para validar el flujo completo y detectar defectos que pueden pasar desapercibido en las pruebas automáticas. 2- Intersecciones críticas: Cuando se tratan de interacciones claves o del usuario como procesos de inicio de sesión o flujo de transacciones las pruebas manuales son fundamentales para simular el comportamiento humano y garantizar una experiencia óptima. 3- Requisitos ambiguos: Ante requisitos pocos claros o cambiantes las pruebas manuales permiten una exploración más flexible y un mejor entendimiento de las necesidades del usuario. Estrategias de implementación 1- Enfoque gradual: Implementar las pruebas automáticas y manuales de manera paulatina comenzando con áreas críticas y luego expandiéndose gradualmente a todo el proyecto. 2- Formación del equipo: Capacitar al equipo en las mejores prácticas y herramientas para pruebas automáticas y manuales asegurando que todos tengan las habilidades necesarias. 3- Integración continua: Automatizar la ejecución de prueba en cada comité garantizando que los cambios no introduzcan nuevos errores. Pruebas unitarias (PU) Son evaluaciones que se enfocan en probar piezas individuales del código, como funciones o métodos. Estas pruebas verifican que cada unidad funcione según lo esperado independientemente de otras partes del sistema. Beneficios de las PU 1- Detección temprana de errores: Las pruebas unitarias ayudan a identificar y corregir problemas en etapas tempranas del desarrollo lo que ahorra tiempo y recursos. 2- Mejora de la calidad: Al asegurar que cada unidad funcione correctamente las pruebas unitarias contribuyen a la calidad general del software. 3. Facilitación del cambio: las pruebas unitarias brindan confianza para realizar cambios y refactorizaciones en el código sin miedo a introducir nuevos errores. Principio de las PU 1. Independencia: cada PU debe ser independiente y autocontenida sin depender de otros componentes o recursos externos. 2. Principio de repetibilidad:las PU deben poder ejecutarse de manera repetida y consistente arrojando siempre los mismos resultados. 3. Minimalismo: las PU deben ser lo más simples y concisas posibles, enfocándose solo en una unidad específica. TIpos de PU 1. Pruebas de caja blanca: Evalúan la implementación interna de la unidad verificando que la lógica y el flujo de control sean correctos. 2. Pruebas de caja negra: Se enfocan en las entradas y salidas de la unidad sin considerar los detalles internos de implementación. 3. Pruebas de integridad: verifican la correcta interacción entre unidades asegurando que se comuniquen e integren adecuadamente. Herramientas para PU Junit: es uno de los marcos de trabajo de PU más utilizados en el ecosistema de Java. Pitex: un framework de pruebas unitarias sencillo y versátil popular en el mundo de python. Jest: una herramienta de PU y de integración desarrollada por facebook para JavaScript. Rspec: un framework de pruebas unitarias expresivo y legible, muy utilizado en el desarrollo con Ruby. Estrategias de implementación de las PU: 1. Planificación: se identifican las unidades claves a probar y se define un plan de prueba detallado. 2. Diseño: crea PU concisas y enfocadas en las funcionalidades a validar. 3. Ejecución: ejecuta las PU de manera regular, ya sea manual o automáticamente. 4. Análisis: revisa los resultados de las pruebas y toma medidas correctivas según sea necesario. Pruebas de integración (PI) Estas pruebas ayudan a asegurar que los diferentes componentes de un sistema trabajen de manera efectiva y sin problemas en conjunto. Objetivos de las PI 1. Verificar interoperabilidad: es confirmar que los componentes individuales se comunican e interactúan correctamente. 2. Detectar defectos: identificar y corregir problemas que surjan cuando se combinan los diferentes módulos. 3. Evaluar rendimiento: asegurar que el sistema integrado cumpla con los requisitos de rendimiento. Tipos de PI 1. Big Bang: integrar todos los componentes de una vez. 2. Incremental: integrar los componentes en etapas progresivas. 3. Descendente: integrar desde los m[odulos superiores hasta los inferiores Planificación de las PI 1. Identificar interfaces: definir claramente las interfaces entre los diferentes componentes. 2. Establecer cronogramas: planificar las actividades de pruebas de integración en el calendario del proyecto. 3. Asignar recursos: determinar el equipo y las herramientas necesarias para ejecutar las pruebas. 4. Definir estrategias: Elegir el enfoque más adecuado de pruebas de integración, tales como big bang, incremental, etc. Diseño de casos de PI 1. Identificar escenarios: determinar los casos de usos importantes que deben probarse. 2. Definir entradas: establecer los datos de entrada y salidas esperados para cada caso de prueba. 3. Documentar pasos: detallar los pasos a seguir para ejecutar cada caso de prueba. Ejecución de las PI 1. Aplicar casos: ejecutar los casos de pruebas diseñados. 2. Monitorear progresos: realizar un seguimiento del avance de las pruebas. 3. Registrar defectos: documentar los problemas encontrados y sus detalles. 4. Verificar resultados: comprobar que los resultados obtenidos coinciden con los esperados. Análisis de resultados de PI 1. Métricas de rendimiento: tiempos de respuestas, consumo de recursos, escalabilidad, etc. 2. Cobertura de pruebas: porcentajes de casos de pruebas ejecutados con éxito. 3. Tasa de defectos: número y severidad de los problemas encontrados. 4. Cumplimiento de requisitos: verificar que el sistema integrado cumpla con las expectativas. Pruebas de sistemas (PS) Estas permiten identificar y corregir problemas antes de que el producto final se entregue al cliente. Objetivos de las PS 1. Validar requisitos: asegurar que el sistema cumple con las necesidades y expectativas del cliente. 2. Detectar defectos: identificar y solucionar problemas de funcionamiento, usabilidad y rendimiento. 3. Garantizar calidad: verificar que el producto final cumple con los estándares de calidad ofrecidos. Tipos de PS 1. Pruebas funcionales: verifican que el sistema cumpla con los requisitos especificados. 2. Pruebas no funcionales: evalúan aspectos como rendimientos, seguridad, usabilidad y escalabilidad. 3. Pruebas de integración: Comprueba que los diferentes módulos y componentes del sistema trabajen en conjunto y sin problema. Planificación de las PS 1. Definir objetivos: establecer los objetivos claros y medibles que se buscan alcanzar con las pruebas. 2. Crear un plan: diseñar una estrategia detallada que incluya actividades, recursos y cronograma. 3. Asignar responsabilidades: identificar y capacitar al equipo que se encargará de ejecutar las pruebas. Ejecución de las PS 1. Preparación: asegurar que el entorno de prueba esté listo y los recursos necesarios estén disponibles. 2. Ejecución: llevar a cabo los casos de pruebas diseñados siguiendo los pasos establecidos. 3. Monitoreo: realizar un seguimiento constante del proceso de prueba y los resultados obtenidos. Análisis de resultados 1. Revisión: analizar detalladamente los resultados de las pruebas para identificar problemas y oportunidades de mejora. 2. Reportes: Documentar los hallazgos y generar informes que permitan tomar decisiones informadas. 3. Ajustes: implementar los cambios necesarios para corregir los defectos y optimizar el sistema.