Flujos de Trabajo en Git y Estrategias de Testing Automatizado
Enviado por Chuletator online y clasificado en Diseño e Ingeniería
Escrito el en
español con un tamaño de 3,51 KB
Flujos de Trabajo en Git
Centralized Workflow
El Centralized Workflow es un modelo para la gestión de versiones en sistemas como Git. Utiliza un repositorio central como centro de sincronización para todos los colaboradores, donde todos los cambios se realizan en la rama principal.
- Funcionamiento: Se crea un repositorio centralizado en un servidor remoto. Los desarrolladores realizan cambios en su copia local y luego los envían al repositorio central. Un administrador revisa y fusiona los cambios en la rama principal.
- Ventajas: Coordinación eficiente, mayor control sobre el proceso y resultados, mayor cohesión en los equipos y facilita la formación de nuevos empleados.
- Desventajas: Mayor riesgo de fallo debido a cuellos de botella, menor adaptabilidad a cambios y limitación de la autonomía y el poder de decisión de los equipos.
Feature Branch
El modelo Feature Branch consiste en crear una nueva rama del repositorio de código para trabajar en una funcionalidad específica. Esta rama separada permite a los desarrolladores trabajar en paralelo sin interferir entre ellos.
- Funcionamiento: Se crea una nueva rama, se desarrolla la función, se realizan pruebas y revisiones, se fusiona con la rama principal y, finalmente, se elimina la rama de la función.
- Ventajas: Desarrollo autónomo y sin interferencias, control de calidad y flexibilidad en la entrega.
- Desventajas: Complejidad en el control de versiones, posibles conflictos de fusión y necesidad de pruebas adicionales.
Gitflow
Gitflow es un flujo de trabajo para el control de versiones con Git, creado por Vincent Driessen, que se basa en el uso de ramas para diferentes etapas del desarrollo.
- Estructura: Utiliza dos ramas principales,
masterydevelop, además de ramas auxiliares comofeature,releaseyhotfix. - Ventajas: Mayor organización, estructura clara, control de calidad y facilidad en las pruebas.
- Desventajas: Complejidad excesiva para proyectos pequeños o equipos reducidos, mayor tiempo de desarrollo debido a la cantidad de pruebas y alta necesidad de coordinación para la fusión de ramas.
Estrategias de Testing
Pirámide de Testing
La Pirámide de Testing se compone de tests fiables y automatizados organizados en capas. Se denomina pirámide porque cada nivel inferior contiene más tests que el nivel superior. La velocidad, la complejidad y el coste de mantenimiento varían según el nivel.
Unit Testing y TDD
El Unit Testing (pruebas unitarias) consiste en pruebas automatizadas que verifican el correcto funcionamiento de unidades individuales de código, como funciones, métodos o clases, aislándolas para garantizar su correcto comportamiento.
Por otro lado, el TDD (Test Driven Development) es una metodología que implica escribir pruebas automatizadas antes de desarrollar el código de producción, siguiendo estas leyes:
- No escribirás código de producción sin antes escribir un test que falle.
- No escribirás más de un test unitario suficiente para fallar.
- No escribirás más código del necesario para hacer pasar el test.