En aquest tema, ens centrarem en les tècniques i eines per a la prova i depuració de les aplicacions desenvolupades en Delphi/Object Pascal. La prova i la depuració són parts essencials del cicle de vida del desenvolupament de programari, ja que asseguren que el codi funcioni correctament i compleixi amb els requisits especificats.

Objectius del Tema

  • Comprendre la importància de les proves i la depuració.
  • Aprendre a utilitzar les eines de depuració de Delphi.
  • Implementar proves unitàries per assegurar la qualitat del codi.
  • Identificar i corregir errors comuns en el codi.

  1. Importància de les Proves i la Depuració

Les proves i la depuració són crucials per garantir que el programari funcioni correctament i sigui fiable. A continuació, es detallen alguns dels beneficis clau:

  • Detecció d'Errors: Identificar i corregir errors abans que el programari arribi als usuaris finals.
  • Millora de la Qualitat: Assegurar que el codi compleixi amb els requisits funcionals i no funcionals.
  • Mantenibilitat: Facilitar el manteniment i l'actualització del codi en el futur.
  • Confiança: Proporcionar confiança als desenvolupadors i als usuaris finals sobre la fiabilitat del programari.

  1. Eines de Depuració en Delphi

Delphi proporciona diverses eines per a la depuració del codi. A continuació, es presenten algunes de les més importants:

2.1. Breakpoints

Els breakpoints permeten aturar l'execució del programa en un punt específic per inspeccionar l'estat del programa.

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Hello, World!'); // Col·loca un breakpoint aquí
end;
  • Com Utilitzar-los: Fes clic a la vora esquerra de l'editor de codi per col·locar un breakpoint.
  • Inspecció de Variables: Quan el programa s'atura en un breakpoint, pots inspeccionar les variables locals i globals.

2.2. Watches

Els watches permeten monitoritzar el valor de les variables durant l'execució del programa.

  • Com Afegir un Watch: Fes clic dret sobre una variable i selecciona "Add Watch".
  • Monitorització: Els watches es mostren en una finestra separada i s'actualitzen en temps real durant la depuració.

2.3. Call Stack

El call stack mostra la seqüència de crides de funcions que han portat al punt actual d'execució.

  • Com Utilitzar-lo: La finestra del call stack es pot obrir des del menú "View" -> "Debug Windows" -> "Call Stack".
  • Navegació: Pots navegar per les diferents funcions del call stack per entendre el flux d'execució.

  1. Proves Unitàries

Les proves unitàries són una tècnica de prova que verifica el funcionament de les unitats individuals de codi (funcions, procediments, mètodes).

3.1. Creació de Proves Unitàries

Delphi proporciona suport per a proves unitàries mitjançant el framework DUnit.

unit UnitTests;

interface

uses
  TestFramework;

type
  TMyTest = class(TTestCase)
  published
    procedure TestAddition;
  end;

implementation

procedure TMyTest.TestAddition;
begin
  CheckEquals(4, 2 + 2, '2 + 2 should equal 4');
end;

initialization
  RegisterTest(TMyTest.Suite);
end.
  • Definició de Proves: Les proves es defineixen com a mètodes dins d'una classe que hereta de TTestCase.
  • Execució de Proves: Les proves es poden executar des de l'IDE de Delphi o mitjançant una aplicació de consola.

3.2. Avantatges de les Proves Unitàries

  • Detecció Primerenca d'Errors: Les proves unitàries permeten detectar errors en fases primerenques del desenvolupament.
  • Refactorització Segura: Les proves unitàries proporcionen una xarxa de seguretat durant la refactorització del codi.
  • Documentació: Les proves unitàries serveixen com a documentació viva del comportament del codi.

  1. Identificació i Correcció d'Errors

4.1. Errors Comuns

  • Errors de Sintaxi: Errors en la sintaxi del codi que impedeixen la seva compilació.
  • Errors de Lògica: Errors en la lògica del codi que produeixen resultats incorrectes.
  • Errors de Temps d'Execució: Errors que es produeixen durant l'execució del programa, com ara accessos a memòria no vàlida.

4.2. Estratègies per a la Correcció d'Errors

  • Revisió de Codi: Revisar el codi amb altres desenvolupadors per identificar errors.
  • Depuració Pas a Pas: Utilitzar breakpoints i el call stack per depurar el codi pas a pas.
  • Proves Automatitzades: Implementar proves unitàries i d'integració per detectar errors automàticament.

Exercicis Pràctics

Exercici 1: Depuració amb Breakpoints

  1. Crea una aplicació Delphi amb un botó.
  2. Afegeix un breakpoint en l'esdeveniment OnClick del botó.
  3. Executa l'aplicació i fes clic al botó.
  4. Inspecciona les variables locals quan l'execució s'aturi en el breakpoint.

Exercici 2: Creació de Proves Unitàries

  1. Crea una unitat de codi amb una funció que sumi dos nombres.
  2. Implementa una prova unitària per verificar que la funció retorna el resultat correcte.
  3. Executa la prova unitària i assegura't que passa correctament.

Solucions als Exercicis

Solució a l'Exercici 1

procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, sum: Integer;
begin
  a := 2;
  b := 3;
  sum := a + b; // Col·loca un breakpoint aquí
  ShowMessage('Sum: ' + IntToStr(sum));
end;

Solució a l'Exercici 2

unit UnitTests;

interface

uses
  TestFramework;

function Add(a, b: Integer): Integer;

type
  TMyTest = class(TTestCase)
  published
    procedure TestAdd;
  end;

implementation

function Add(a, b: Integer): Integer;
begin
  Result := a + b;
end;

procedure TMyTest.TestAdd;
begin
  CheckEquals(5, Add(2, 3), '2 + 3 should equal 5');
end;

initialization
  RegisterTest(TMyTest.Suite);
end.

Conclusió

En aquesta secció, hem après la importància de les proves i la depuració, com utilitzar les eines de depuració de Delphi, i com implementar proves unitàries per assegurar la qualitat del codi. Aquestes habilitats són essencials per a qualsevol desenvolupador que vulgui crear aplicacions fiables i mantenibles. En el següent tema, ens centrarem en el desplegament i manteniment de les aplicacions.

Curs de Programació Delphi/Object Pascal

Mòdul 1: Introducció a Delphi/Object Pascal

Mòdul 2: Estructures de Control i Procediments

Mòdul 3: Treballant amb Dades

Mòdul 4: Programació Orientada a Objectes

Mòdul 5: Funcions Avançades de Delphi

Mòdul 6: Desenvolupament d'Interfícies Gràfiques amb VCL i FMX

Mòdul 7: Desenvolupament Web i Mòbil

Mòdul 8: Millors Pràctiques i Patrons de Disseny

Mòdul 9: Projecte Final

© Copyright 2024. Tots els drets reservats