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