depurador es una herramienta para probar y depurar código de programas. Examina el flujo de ejecución del programa y ver qué se ejecuta en cada momento de manera detallada, ayudando a encontrar los fallos.
Puntos de ruptura:
lugar en el cual el software para su ejecución con el fin de que el programador observe qué está pasando en ese momento
Requisitos HW y SW
Es necesario que el software permita la interrupción del flujo de ejecución. Si la arquitectura no lo permite, hablamos de limitaciones de hardware. También es necesario que el software soporte la depuración.
Step into: entrar en el código de un método a través del punto de ruptura.
– Step over: saltar el cuerpo de ejecución de una función y seguir adelante.
– Step out: salir del código/flujo de ejecución de un método.
– Run: continuar el programa sin ninguna interrupción (deshabilita breakpoints)
Cubrimiento, valores límite y clases de equivalencia –
Pruebas de cobertura o cubrimiento – Pruebas de casos extremos – Pruebas de clases de equivalencia
Pruebas unitarias prueban los componentes de manera individual, después de las de integración. Valida cada porción del SW para comprobar si cumple con lo diseñado EJ -JUnit. Java./PHPUnit. PHP./NUnit. Entornos .Net
Automatización de pruebas permite probar código en diferentes plataformas, enfoques y dispositivos mediante el uso de frameworks.
De código:
mide si la funcionalidad que hemos implementado se ajusta a los requisitos interfaz gráfica:
simulan la entrada de datos mediante teclado y ratón
Calidad del software se verifica mediante pruebas que evalúan si cumple con estándares establecidos. Estas pruebas incluyen validaciones como verificar archivos utilizados y límites de vectores, entre otros. Además, existen medidas y normas de calidad, como las normas ISO, que aseguran que el software cumple con criterios objetivos.
Refactorización
Permite reestructurar el código fuente cambiando la forma, sin cambiar la funcionalidad, para obtener un código más simple, limpio y mejor estructurado. Es posible tener un código más fácil de entender, o mejorar el rendimiento del software
Patrones de refactorización –
Renombrado -Sustitución de bloques. -Campos encapsulados -Movimiento de clases -Extracción de la interfaz. -Cambio de parámetros – Mover a otro nivel. -Borrado seguro
Analizadores de código y pruebas revisan y mejoran el código fuente, asegurando su calidad y cumplimiento de reglas. Los IDEs los integran y ofrecen soluciones para corregir problemas. Las pruebas automatizadas son esenciales antes de realizar cambios en el código.
Herramientas de ayuda a la refactorización
Mejora de la comprensión del código Mejora de la comprensión del código (get,set poli) Soporte para la división lógica del código,Soporte para nombres y localización del código Automáticas
Eclipse. ● IntelliJ Idea y Netbeans. ● Android Studio
Sistema de Control de Versiones (VCS)
controla y registra los cambios en el código a lo largo del tiempo. Los usuarios pueden trabajar en paralelo a través de un repositorio de código y los cambios se marcan como revisiones, lo que facilita resolver conflictos con intervención humana.
Desarrollos colectivos–
Descarga del código Realización de modificaciones. Implementación de funcionalidades o solución de errores Subir el código. Actualiza el repositorio
Documentación
● Previa al desarrollo. Se define la estructura del proyecto, así como su meta y la autoría/personas creadoras del mismo.
● Durante el desarrollo. Comentarios en el código y referencias a otras partes del mismo.
● Posterior al desarrollo. Manuales que puedan necesitar personas que tengan que usar/entender ese código después de haberlo estructurado y creado
Carácterísticas principales de las herramientas
Para implementar un VCS, necesitas una aplicación cliente y una aplicación remota como servidor. La comunicación se realiza a través del repositorio, permitiendo volver a versiones anteriores y ver los cambios realizados por los usuarios.
Estructura de las herramienta
Distribuidos:
Cada usuario tiene un repositorio local y puede sincronizarlo con una copia del repositorio principal. Ejemplo:
Git
Centralizados:
Existe un repositorio central controlado por un grupo de usuarios. Solo se descarga lo necesario para trabajar, lo que limita la flexibilidad. Ejemplo: Subversión (SVN)
.
GIT sistema distribuido en el que cada usuario posee una copia local del repositorio. Gracias a ello se facilita la integración con el repositorio remoto resolviendo dependencias, si existen
Áreas de Git:●
Working Directory. Directorio donde se realizan los cambios. ● Stage Área. Área de preparación para subir al repositorio fuente. ● Local Repository. Donde está situado el repositorio fuente.
Comandos básicos «git remote add origin repositorio_x» añade un repositorio externo a git.
git add archivo.Jpg» añade un archivo a la zona staged.
«git commit -m mensaje» confirma cambios y realiza un commit (guardar cambios en el repositorio).
git log» muestra los cambios que han tenido lugar en el repositorio.
«git pull» extrae y descarga contenido desde un repositorio remoto y actualiza el repositorio local.
git clone url_x» copia el contenido del repositorio a la ubicación en la que nos encontremos en local. «git status» muestra el estado del repositorio.
Ramas Git ramas de desarrollo permiten dividir las modificaciones del código en base a funcionalidades distintas, pudiendo varios equipos trabajar al mismo tiempo sobre diferentes ámbitos de la aplicación.
git branch–
Muestra las ramas. * -> rama activa
git branch desarrollo–
Crea rama desarrollo
git checkout desarrollo–
Nos movemos a rama desarrollo
git merge rama_con_cambios – Mezcla ramas
SVN sistema de control de versiones centralizado que permite que varios usuarios gestionen el código al mismo tiempo. Es más sencillo pero más limitado que Git
. V/
Bloqueo de archivos. ● Creación de ramas y enlaces externos. ● Seguimiento efectivo de modificaciones realizadas D/●Es más complicado realizar modificaciones ,Pocos SO que lo soporten
Repositorios cloud
Bitbucket. – SourceForge. – GNU Savannah. – Gitea
Repositorios en la nube SaaS (Software como Servicio). Posible usar el software a través de otras aplicaciones (ej. Gmail, Calendar). ●
PaaS (Plataforma como Servicio). Nos conectamos a un sistema remoto para acceder a todos sus servicios. ●
IaaS (Infraestructura con un Servicio). Una infraestructura que podemos gestionar para poder crear los servicios que deseemos. Ej.: AWS
Diferencias entre GitLab y GitHub
Diferentes niveles de autenticación/ GitLab fija permisos a nivel archivo, GitHub a nivel repositorio./GitLab permite realizar integración continua para ahorrar tiempo a los equipos de trabajo/GitHub tiene una función para búsqueda y corrección de errores/Colaboración. GitHub permite crear repositorios privados de 3 usuarios, mientras que GitLab permite crear repositorios privados ilimitados./Tamaño máximo. GitHub: 1gb por repositorio (100mb máx. Archivo). GitLab: 10gb porrepositorio