Herramientas de depuración y pruebas de software

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.