Automatización de Pruebas PDF
Document Details
Uploaded by Deleted User
Tags
Related
- Clase 7 PDF - Enfoques de Pruebas
- Informe Técnico de Residencias Profesionales - FOMENTACIÓN E IMPLEMENTACIÓN DE INNOVACIONES TECNOLÓGICAS - PDF
- UF1- Automatización de Viviendas PDF
- UF1- AUTOMATIZACIÓN DE VIVIENDAS PDF
- Guía sobre el Uso de la IA en la Educación INTEF 2024 PDF
- Laboratorio 2 de Automatización de Bases de Datos PDF
Summary
Este documento proporciona una descripción general de la automatización de pruebas en diferentes contextos. Se detallan diferentes tipos de pruebas, los beneficios de la automatización y los desafíos asociados, así como herramientas útiles en el desarrollo de software para automatizar las pruebas, como Jenkins y GitLab.
Full Transcript
Automation Thursday, January 16, 2025 3:16 AM ¿Qué es la automatización de pruebas? La automatización de pruebas es el proceso de utilizar herramientas y scripts para ejecutar pruebas de software automáticamente, en lugar de hacerlo de manera manual. Este enfoque permite ejecutar un conjunto de p...
Automation Thursday, January 16, 2025 3:16 AM ¿Qué es la automatización de pruebas? La automatización de pruebas es el proceso de utilizar herramientas y scripts para ejecutar pruebas de software automáticamente, en lugar de hacerlo de manera manual. Este enfoque permite ejecutar un conjunto de pruebas de manera más rápida y frecuente. Beneficios de la automatización de pruebas Mayor rapidez en la ejecución de pruebas. Reducción de errores humanos. Ejecución repetida de pruebas. Mayor cobertura de pruebas. Integración continua con pipelines. Facilidad de ejecución de pruebas en diferentes entornos. Desafíos de la automatización de pruebas Requiere tiempo inicial de configuración, mantenimiento de los scripts de prueba, puede ser costoso si las pruebas cambian frecuentemente. Diferencias entre pruebas manuales y automatizadas Pruebas manuales: Pruebas automatizadas: Se ejecutan de forma manual por testers humanos. Se ejecutan mediante scripts y herramientas, lo Son necesarias cuando la automatización no es que permite ejecutarlas de forma repetida sin rentable o no es posible. intervención humana Tipos de pruebas que se pueden automatizar Pruebas unitarias Verificación de funciones o módulos pequeños de software. Pruebas de integración Validación de que varios módulos o sistemas interactúan correctamente. Pruebas de regresión Comprobación de que el código nuevo no afecta el comportamiento de las funcionalidades existentes. Pruebas de interfaz de Interacción automatizada con la interfaz gráfica para verificar que se usuario (UI) comporta correctamente. Criterios que se utilizan para decidir que pruebas automatizar Se repiten con frecuencia (como pruebas de regresión). Tienen una alta cobertura de código. Son simples de automatizar y mantener. Son críticas para el negocio (funcionalidades clave que deben ser probadas siempre). ¿Cómo gestionar pruebas en SKY? Utilizar herramientas como Ansible o scripts en Python para automatizar la instalación y configuración de un sistema operativo. Establecer procedimientos claros para las actualizaciones y parches. Mantener un control de versiones de las configuraciones utilizando herramientas como Git. Asegurarse de que las configuraciones se puedan revertir en caso de que se necesite restaurar un entorno previo. Pruebas que se pueden hacer en SKY Pruebas de integración para verificar que el sistema operativo interactúe correctamente con otras aplicaciones. Pruebas de rendimiento para evaluar la velocidad y eficiencia de las operaciones. Automation Page 1 Pruebas de rendimiento para evaluar la velocidad y eficiencia de las operaciones. Pruebas de carga y estrés para asegurar que el sistema puede manejar situaciones extremas de uso. Pruebas de seguridad para verificar la protección contra vulnerabilidades. Herramientas para crear pruebas aisladas Docker para crear contenedores que aíslen los entornos. Ansible para automatizar la configuración del entorno de prueba. ¿Qué es Jenkins? Jenkins es una herramienta de integración continua y entrega continua (CI/CD). Permite automatizar el proceso de construcción, prueba y despliegue de aplicaciones. Se integra con diversas herramientas (como GitLab, Docker, Ansible) para crear pipelines. ¿Qué son los pipelines? Un pipeline (o línea de ensamblaje) es un conjunto de pasos o procesos organizados de manera secuencial o paralela para lograr un objetivo específico, comúnmente usado en desarrollo y despliegue de software. En el contexto de DevOps y CI/CD (Integración y Despliegue Continuos), los pipelines automatizan tareas repetitivas, como construir, probar, y desplegar aplicaciones, asegurando un flujo de trabajo eficiente y confiable. Fases de un pipeline Build Test Integration Deploy ¿Cómo configurar un pipeline básico en Jenkings para realizar pruebas automatizadas? Usar el plugin de jenkings para crear un pipeline que ejecute comandos en un entorno controlado. Configurar un archivo Jenkins file qie defina el flijo de trabajo, construcción, pruebas, despliegue. ¿Qué son los "builds" en Jenkins y cómo automatizarlos? Los builds con procesos que construyen y verifican código. Se pueden auomatizar configurando jenkins para que ejecute un build en forma programada o al detectar un cambio en el repositorio. ¿Cómo gestionar entornos de prueba y despliegue en Jenkins? Utilizar plugins de Jenkins para trabajar con máquinas virtuales, contenedores o nubes. Configurar los entornos en cada etapa del pipeline para asegurar que las pruebas se ejecuten en el entorno adecuado. Integración de Jenkins con GitLab Usar un webhook en Gitlab que desencadene un job de Jenkins al hacer un commit. Configurar la integración en Jenkins utilizando el plugin de GitLab. ¿Cómo configurar un pipeline en Jenkins que ejecute pruebas automatizadas cada vez que haya un nuevo commit en GitLab? Configurar un webhook en GitLab que notifique a Jenkins sobre los cambios. Usar un archivo Jenkinsfile para definir el pipeline y configurar pasos, ejecución de pruebas, y notificación de resultados. ¿Qué pasos seguir si una de las pruebas falla en el pipeline de Jenkins? Analiza los logs de Jenkins. Identificar la causa del fallo. Realizar la corrección en el código de prueba y re-ejecutar el pipeline. ¿Qué es GitLab CI/CD? GitLab ofrece integración de CI/CD nativa, lo que permite la construcción, prueba y despliegue automatizados a través de pipelines. ¿Cómo configurarlo para ejecutar pruebas automáticamente al hacer push de código? Usar el archivo.gitlab-ci.yml para definir el pipeline. Configurar etapas como build, test y deploy dentro de dicho archivo. Automation Page 2 ¿Cómo usar gitlab para gestionar las versiones de tus pruebas? Gestionar versiones mediante ramas y etiquetas en GitLab. Usar tags en Gitlab para marcar versiones estables de pruebas y código. ¿Cómo usar Gitlab con jenkins? ¿Cómo configurarlo? Configurar un webhook en GitLab para notificar a Jenkins. Usar un plugin de Jenkins para obtener código desde Gitlab. ¿Cómo usarías Gitlab para gestionar el código de prueba y su versionado? Utilizar ramas para organizar las pruebas y sus versiones. Usar tags para marcar versiones estables de los scripts de prueba. ¿Qué es Ansible? Ansible es una herramienta de automatización que usa archivos YAML para describir tareas Permite automatizar la configuración de sistemas y despliegue de aplicaciones Jenkins, GitLab y Ansible trabajando en conjuntos. 1. Roles de las herramientas en el flujo de trabajo GitLab: Actúa como el repositorio de código. Permite la colaboración entre desarrolladores y sirve como disparador del pipeline al realizar cambios en el código. Jenkins Es el motor de automatización que ejecuta los pipelines. Orquesta tareas como la compilación, las pruebas y la implementación. Ansible: Administra la configuración de entornos y la ejecución de tareas específicas (como instalar dependencias, desplegar aplicaciones, o ejecutar pruebas en un entorno configurado). 2. Flujo de trabajo integrado El flujo típico de trabajo entre estas herramientas es el siguiente: 1. Desarrollador realiza un cambio en GitLab Un desarrollador hace un commit o abre un merge request en un proyecto alojado en GitLab. Esto desencadena un webhook que notifica a Jenkins sobre el cambio. 2. Jenkins inicia el pipeline Jenkins ejecuta un pipeline configurado, que puede incluir las siguientes etapas: Clonar el código desde GitLab: Jenkins usa las credenciales de GitLab para descargar el código fuente. Compilación: Construye el código (si aplica) y verifica su validez. Ejecución de pruebas automatizadas: Jenkins puede ejecutar pruebas unitarias, de integración y funcionales usando herramientas como pytest, JUnit, o Selenium. Despliegue con Ansible: Jenkins ejecuta un playbook de Ansible para configurar el entorno de pruebas (instalación de herramientas, configuración de variables de entorno, etc.). También puede usar Ansible para implementar los artefactos generados en servidores de pruebas. 3. Ansible configura el entorno y ejecuta pruebas Ansible se encarga de tareas como: Crear entornos de prueba (máquinas virtuales, contenedores, etc.). Instalar dependencias necesarias. Ejecutar comandos específicos para pruebas funcionales o de integración. Si se detectan fallos, Ansible genera logs detallados para facilitar el diagnóstico. 4. Resultados en Jenkins Jenkins recopila los resultados de las pruebas y los presenta en su interfaz. Los errores o fallos se notifican automáticamente (puede ser por correo, Slack, etc.). Automation Page 3 1. Pruebas de Caja Negra Definición: Se enfocan en probar la funcionalidad del sistema sin tener conocimiento interno del código fuente o la lógica interna del sistema. 2. Pruebas de Caja Blanca Definición: Se centran en examinar la lógica interna, el flujo de control, y las estructuras de datos del código fuente. Automation Page 4