Metodologías de Desarrollo de Software
Clasificado en Informática
Escrito el en español con un tamaño de 3,62 KB
Flujos de Trabajo con Git
Centralized Workflow
El Centralized Workflow es un enfoque para la gestión de versiones en sistemas como Git que utiliza un repositorio central como punto de sincronización para todos los colaboradores. Todos los cambios se realizan en la rama principal.
Pasos:
- Se crea un repositorio centralizado en un servidor remoto.
- Los desarrolladores realizan cambios en su copia local.
- Los cambios se 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 los resultados.
- Mayor cohesión en los equipos.
- Facilita la formación de nuevos empleados.
Desventajas:
- Mayor riesgo de fallo debido a cuellos de botella.
- Menos adaptable a cambios.
- Limita la autonomía y el poder de decisión de los equipos.
Feature Branch Workflow
El Feature Branch Workflow implica la creación de una nueva rama del repositorio de código para trabajar en una nueva funcionalidad. Esta rama separada permite a los desarrolladores trabajar en paralelo sin interferir entre sí.
Pasos:
- Se crea una nueva rama.
- Se desarrolla la funcionalidad.
- Se realizan pruebas y revisiones.
- Se fusiona la rama con la rama principal.
- Se elimina la rama de la funcionalidad.
Ventajas:
- Desarrollo autónomo y sin interferencias.
- Control de calidad.
- Flexibilidad en la entrega.
Desventajas:
- Complejidad en el control de versiones.
- Conflictos de fusión.
- Pruebas y comprobaciones adicionales.
Gitflow Workflow
El Gitflow Workflow es un flujo de trabajo estructurado para el control de versiones con Git, creado por Vincent Driessen. Se basa en el uso de ramas para diferentes etapas del desarrollo.
Ramas principales:
- Master
- Develop
Ramas de soporte:
- Feature
- Release
- Hotfix
Ventajas:
- Mayor organización.
- Control de calidad.
- Facilidad en pruebas.
- Desarrollo sin interferencias.
Desventajas:
- Complejo para proyectos pequeños o equipos con pocos miembros.
- Mayor tiempo de desarrollo por la cantidad de pruebas.
- Mucha coordinación por la fusión de ramas.
Pruebas de Software
Pirámide de Pruebas
La Pirámide de Pruebas es un modelo que representa la organización de las pruebas de software en capas, donde cada nivel tiene más pruebas que el superior. La velocidad, complejidad y costo de mantenimiento varían entre niveles.
Unit Testing
El Unit Testing consiste en pruebas automatizadas que verifican el correcto funcionamiento de unidades individuales de código, como funciones, métodos o clases.
Test-Driven Development (TDD)
TDD es una metodología que implica escribir pruebas automatizadas antes de desarrollar el código de producción.
Leyes de TDD:
- 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.