Manejo de reglas y pruebas en programación

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,14 KB

Reglas de compilación

$^ Se sustituye por todas las dependencias de una regla $< se sustituye por la primera dependencia de una regla $@ se sustituye por el objetivo de una regla

Objetivos del proyecto basico1

# Objetivo para enlazar los archivos del proyecto basico1

basico1: main.o gcc –obasico1 main.o

# Objetivo para compilar el archivo main.c del proyecto basico1

main.o: main.c gcc –c main.c

# Objetivo para eliminar todos los ficheros generados

clean: rm –f main.o

Reglas de compilación

-Wall: (warning all) muestra por pantalla todos los warning o avisos especificados por el compilador

-ansi: no permite el uso de funciones no pertenecientes al estándar ANSI C

-c: compilación

-o: necesaria para establecer el nombre del ejecutable salida, por defecto a.out

-g: incluye en el ejecutable binario información necesaria para la depuración

-help: muestra la ayuda

-l: especifica librerías adicionales que van a ser enlazadas

-o: especifica niveles de optimización de código

-i: especifica directorios adicionales para búsqueda de archivos de cabeceras

-l: especifica directorios adicionales para búsqueda de librerías

Valgrind

Valgrind innvalide write of size: acceso indebido a memoria; used of unitialized value, uso de variables no inicializadas. Lagunas de memoria: 48 bytes in 1 blocks are definitely lost in loss record 1 of 1; liberar mem de forma incorr: invalid free.

Control de versiones

Carpeta: copiar la versión actual en una carpeta temporal

Posibles nombres: “old”, “temp”, “20150209”

Editar en la carpeta en caso de borrado accidental o necesidad de recuperar datos: acceder a la carpeta temporal

Duplicar el fichero que se va a editar

Posibles nombres: “file-01”, “file-01_sec1”, “file-20150209”

Editar el fichero en caso de borrado accidental o necesidad de recuperar datos: acceder a la versión anterior

Editar el fichero que interesa. Una vez terminado, se envía un correo (a una cuenta personal) con el fichero describiendo los cambios. Bonus: fecha y nombre de fichero pueden ir en asunto

En caso de borrado accidental o necesidad de recuperar datos: acceder al correo y buscar

Diff identifica diferencias entre ficheros línea a línea

Merge une dos ficheros en uno, teniendo en cuenta la parte común y no común de los mismos

Depuración

Trazas: permiten analizar la ejecución para detectar errores e incongruencias

Pruebas: creación de escenarios que fuerzan situaciones específicas para comprobar que la ejecución es la deseada bajo ese escenario

Errores

Sintácticos: De acuerdo a un lenguaje de programación. Triviales de detectar y corregir. El compilador hace la detección y avisa. Estáticos: El código es sintácticamente correcto pero semánticamente incorrecto. P.e. cambio de “>” por “

Doxygen

Utilidades de manejo de caracteres. Este modulo contiene los prototipos de las funciones de manejo de caracteres. @file utilcad.h @author Profesores PPROG @version 1.0 @date 23-01-2015

Ejecución

Antes de ejecutar doxygen se recomienda crear el fichero de configuración Doxyfile: doxygen -g. Para ejecutar doxygen: doxygen Doxyfile

Pruebas

De caja negra (blackbox-testing): comprobar que para una entrada se obtiene la salida esperada sin examinar la lógica del módulo. De caja blanca (whitebox-testing): se estudia qué pasos da el algoritmo y si los valores que han ido tomando los datos en cada caso han sido los correctos. Pruebas de integración: Prueban varias (o todas) unidades de código de forma conjunta. Pruebas de regresión: Al modificar un sistema software se pueden introducir nuevos errores. Es preciso no probar sólo el código nuevo/modificado sino garantizar el buen funcionamiento del resto del sistema. Pruebas automatizadas que deben realizarse para comprobar que todo el sistema software sigue funcionando como se espera después de realizar modificaciones

Entradas relacionadas: