Guía Completa: Control de Versiones, Ingeniería Inversa y Pruebas de Software
1. Control de Versiones
El control de versiones permite gestionar cambios en el código, documentos o cualquier archivo digital, guardando un historial que facilita la colaboración y el seguimiento.
Conceptos clave
| Término | Descripción |
|---|---|
| Repositorio | Lugar donde se almacenan datos actualizados e históricos de cambios. Puede ser local o en un servidor. |
| Módulo | Conjunto de directorios y archivos que forman un proyecto común. |
| Revisión (versión) | Versión determinada de la información gestionada. |
| Etiqueta (tag) | Nombre asignado a una versión concreta. |
| Línea base (baseline) | Revisión aprobada desde la que se realizan cambios futuros. |
| Rama (branch) | Desvío del desarrollo principal para trabajar de forma independiente. |
| Fork (bifurcación) | Creación de una nueva rama que nunca se fusionará con la principal. |
| Desplegar (checkout) | Obtener una copia de trabajo local desde el repositorio. |
| Fetch | Descargar código del repositorio sin sobrescribir tu copia local. |
| Commit | Guardar cambios en el repositorio. |
| Conflicto | Cuando dos o más usuarios modifican la misma parte de un archivo. |
| Cambio (diff) | Comparación de versiones para ver diferencias. |
| Lista de cambios | Registro de modificaciones realizadas. |
| Exportación | Generar un directorio limpio con los archivos del repositorio. |
| Importación | Subir un proyecto local a un repositorio. |
| Integración/Fusión (merge) | Unir ramas de desarrollo. |
| Integración inversa | Aplicar cambios del trunk principal a una rama secundaria. |
| Actualización (update) | Obtener los cambios más recientes del repositorio. |
| Workspace | Copia local de los ficheros para trabajar. |
| Congelar (freeze) | Marcar un estado estable antes de una entrega. |
2. Flujos de Trabajo
- Centralizado: un nodo central coordina todo (ej. Subversion).
- Repositorio remoto central: sincronización desde un servidor central.
- Basado en Integraciones: cada desarrollador tiene su repositorio, sincronizando con otros.
- Dictador y Tenientes: un integrador principal y varios mantenedores.
3. Ingeniería Inversa y Reingeniería
Ingeniería Inversa
Proceso de partir de una solución terminada para descubrir su diseño y especificaciones.
- Se inicia en un nivel bajo de abstracción y se concreta en uno más alto.
- Objetivo: comprender un sistema sin conocer el código fuente.
- Usos: generar software propio, auditar seguridad, migrar sistemas.
Reingeniería
Reconstrucción de un sistema sin cambiar sus especificaciones funcionales, para mejorar diseño o implementación.
- Reestructuración: hacer el código más mantenible.
- Transformación: modificar código o modelos con herramientas automáticas.
- Refactorización: cambiar la estructura interna sin alterar el comportamiento.
📌 Herramientas comunes:
Ghidra, Cradle, PowerDesigner, Enterprise Architect, Visual Paradigm, Microsoft Visio, ArgoUML, Snap, UMLCake.
4. Pruebas de Software
Las pruebas garantizan que el software cumple con los requisitos y funciona correctamente.
4.1 Tipos de Pruebas
- Integración continua: integrar y probar código automáticamente para detectar errores temprano.
- Caja blanca: prueba de la estructura interna (flujo de control, condiciones).
- Caja negra: prueba desde la perspectiva del usuario (entradas y salidas).
- Pruebas de integración: comprobar que los módulos trabajan juntos.
- Pruebas de aceptación: validar que el sistema cumple con lo solicitado.
- Pruebas de regresión: asegurar que cambios no rompen funcionalidades previas.
- Pruebas de carga y rendimiento: medir velocidad, estabilidad y escalabilidad.
4.2 Técnicas y Herramientas
- Automatización: Selenium, Cucumber, JUnit, JMeter.
- Gestión de pruebas: TestLink, Zephyr, Quality Center.
- Pruebas OWASP: centradas en seguridad web.
- Pruebas funcionales: Selenium, Appium, Watir.
Resumen Visual
Podría incluir:
- Esquema de control de versiones (repositorio central, ramas, merge, commit).
- Flujos de trabajo en diagrama.
- Mapa conceptual de ingeniería inversa y reingeniería.
- Tabla comparativa de tipos de pruebas, técnicas y herramientas.


Replica a Píldoras TAI de Anacrolibrum – Anacrolibrum Cancelar la respuesta