En aquest tema, explorarem les tècniques i eines per a la depuració i les proves en Ada. La depuració i les proves són parts essencials del cicle de desenvolupament de programari, ja que ens ajuden a identificar i corregir errors, així com a assegurar-nos que el nostre codi funcioni correctament sota diferents condicions.
- Introducció a la Depuració
1.1 Què és la Depuració?
La depuració és el procés de trobar i corregir errors (bugs) en el codi. Els errors poden ser de diversos tipus, com ara errors de sintaxi, errors lògics o errors d'execució.
1.2 Eines de Depuració
Algunes eines comunes per a la depuració en Ada inclouen:
- GDB (GNU Debugger): Una eina de depuració potent que es pot utilitzar amb Ada.
- GPS (GNAT Programming Studio): Un entorn de desenvolupament integrat (IDE) que inclou eines de depuració.
- Tècniques de Depuració
2.1 Depuració amb GDB
GDB és una eina de depuració de línia de comandes que permet inspeccionar el codi durant l'execució. A continuació es mostra un exemple bàsic d'ús de GDB amb Ada.
Exemple de Depuració amb GDB
-- fitxer: hello.adb with Ada.Text_IO; use Ada.Text_IO; procedure Hello is begin Put_Line("Hola, món!"); end Hello;
Per compilar i depurar aquest programa amb GDB:
-
Compila el programa amb GNAT:
gnatmake -g hello.adb
L'opció
-g
inclou informació de depuració. -
Inicia GDB:
gdb hello
-
A GDB, pots utilitzar comandes com
break
,run
,next
,step
iprint
per depurar el programa:(gdb) break hello.adb:5 (gdb) run (gdb) next (gdb) print variable_name
2.2 Depuració amb GPS
GPS és un IDE que proporciona una interfície gràfica per a la depuració. Pots establir punts de ruptura, inspeccionar variables i executar el codi pas a pas.
- Proves en Ada
3.1 Tipus de Proves
- Proves Unitàries: Proves que verifiquen el funcionament de components individuals del codi.
- Proves d'Integració: Proves que verifiquen la interacció entre diferents components.
- Proves de Sistema: Proves que verifiquen el sistema complet en un entorn que simula les condicions reals d'ús.
3.2 Eines de Proves
- AUnit: Un marc de proves unitàries per a Ada, similar a JUnit per a Java.
Exemple de Prova Unitària amb AUnit
-- fitxer: test_hello.adb with AUnit.Test_Cases; use AUnit.Test_Cases; with Ada.Text_IO; use Ada.Text_IO; procedure Test_Hello is type My_Test_Case is new Test_Case with null record; procedure Run (Test : in out My_Test_Case) is begin Put_Line("Hola, món!"); -- Aquí podríem afegir asserts per verificar el comportament end Run; begin Test_Cases.Register_Test_Case(My_Test_Case'Access); end Test_Hello;
Per executar les proves:
-
Compila el programa de proves:
gnatmake test_hello.adb
-
Executa el programa de proves:
./test_hello
- Consells i Bones Pràctiques
4.1 Escriu Proves Regularment
Escriu proves per a cada nova funcionalitat que implementis. Això t'ajudarà a detectar errors de manera precoç.
4.2 Utilitza Punts de Ruptura Estratègics
Estableix punts de ruptura en llocs clau del teu codi per inspeccionar l'estat del programa durant l'execució.
4.3 Revisa els Missatges d'Error
Llegeix i interpreta els missatges d'error amb cura. Sovint proporcionen pistes valuoses sobre la causa dels errors.
- Exercicis Pràctics
Exercici 1: Depuració amb GDB
- Escriu un programa Ada que calculi la suma dels primers 10 nombres naturals.
- Compila el programa amb l'opció
-g
. - Utilitza GDB per establir un punt de ruptura al començament del bucle i inspecciona el valor de la variable de suma en cada iteració.
Exercici 2: Proves Unitàries amb AUnit
- Escriu una funció Ada que calculi el factorial d'un nombre.
- Escriu una prova unitària per a aquesta funció utilitzant AUnit.
- Compila i executa la prova per assegurar-te que la funció funciona correctament.
- Conclusió
La depuració i les proves són components essencials del desenvolupament de programari. Utilitzant les eines i tècniques adequades, pots identificar i corregir errors de manera eficient, així com assegurar-te que el teu codi compleix amb els requisits especificats. Practica regularment aquestes habilitats per millorar la qualitat del teu codi i la teva eficiència com a programador.
Curs de Programació en Ada
Mòdul 1: Introducció a Ada
Mòdul 2: Conceptes Bàsics
- Variables i Tipus de Dades
- Operadors i Expressions
- Estructures de Control
- Bucles en Ada
- Subprogrames: Procediments i Funcions
Mòdul 3: Tipus de Dades Avançats
Mòdul 4: Programació Modular
Mòdul 5: Concurrència i Programació en Temps Real
Mòdul 6: Temes Avançats
Mòdul 7: Millors Pràctiques i Optimització
- Estil de Codi i Millors Pràctiques
- Depuració i Proves
- Optimització del Rendiment
- Consideracions de Seguretat