En aquest tema, aprendrem sobre les tècniques de proves i depuració en C#. Les proves i la depuració són parts essencials del cicle de desenvolupament de programari, ja que asseguren que el codi funcioni correctament i sigui lliure d'errors. Aquest tema es divideix en les següents seccions:

  1. Introducció a les Proves
  2. Tipus de Proves
  3. Eines de Proves en C#
  4. Depuració en Visual Studio
  5. Errors Comuns i Com Solucionar-los
  6. Exercicis Pràctics

  1. Introducció a les Proves

Les proves de programari són el procés de verificar que el codi compleix amb els requisits especificats i funciona com s'espera. Les proves poden detectar errors, millorar la qualitat del codi i assegurar que el programari sigui fiable.

Objectius de les Proves

  • Verificar la funcionalitat: Assegurar que el codi fa el que se suposa que ha de fer.
  • Detectar errors: Identificar i corregir errors abans que el programari es desplegui.
  • Millorar la qualitat: Assegurar que el codi sigui robust i mantingui un alt nivell de qualitat.

  1. Tipus de Proves

Hi ha diversos tipus de proves que es poden realitzar en el desenvolupament de programari. A continuació es presenten alguns dels més comuns:

Proves Unitàries

Les proves unitàries verifiquen la funcionalitat de components individuals del codi, com ara funcions o mètodes. Aquestes proves són generalment escrites pel mateix desenvolupador que ha escrit el codi.

Proves d'Integració

Les proves d'integració verifiquen que diferents components del sistema funcionen correctament junts. Aquestes proves asseguren que els mòduls integrats funcionin com s'espera.

Proves de Sistema

Les proves de sistema verifiquen el sistema complet per assegurar que compleix amb els requisits especificats. Aquestes proves es realitzen en un entorn que simula l'entorn de producció.

Proves d'Acceptació

Les proves d'acceptació són realitzades per l'usuari final o el client per assegurar que el sistema compleix amb les seves expectatives i requisits.

  1. Eines de Proves en C#

MSTest

MSTest és el framework de proves unitàries de Microsoft per a C#. És fàcil d'utilitzar i s'integra bé amb Visual Studio.

NUnit

NUnit és un altre framework de proves unitàries popular per a C#. Ofereix una gran varietat de funcionalitats i és àmpliament utilitzat en la comunitat de desenvolupadors.

xUnit

xUnit és un framework de proves unitàries modern i flexible per a C#. És conegut per la seva simplicitat i extensibilitat.

Exemple de Prova Unitària amb MSTest

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace MyProject.Tests
{
    [TestClass]
    public class CalculatorTests
    {
        [TestMethod]
        public void Add_TwoNumbers_ReturnsSum()
        {
            // Arrange
            var calculator = new Calculator();
            int a = 5;
            int b = 3;

            // Act
            int result = calculator.Add(a, b);

            // Assert
            Assert.AreEqual(8, result);
        }
    }
}

  1. Depuració en Visual Studio

Visual Studio ofereix eines potents per a la depuració del codi. A continuació es presenten algunes de les funcionalitats més útils:

Punts de Trencament (Breakpoints)

Els punts de trencament permeten aturar l'execució del programa en una línia específica de codi per inspeccionar l'estat del programa.

Inspecció de Variables

Durant la depuració, es poden inspeccionar les variables per veure els seus valors actuals i com canvien durant l'execució.

Pas a Pas (Step Over, Step Into, Step Out)

Aquestes funcionalitats permeten executar el codi línia per línia per entendre millor el flux del programa.

Exemple de Depuració

public class Calculator
{
    public int Add(int a, int b)
    {
        int result = a + b; // Col·loca un punt de trencament aquí
        return result;
    }
}

  1. Errors Comuns i Com Solucionar-los

Error de Referència Null (NullReferenceException)

Aquest error es produeix quan s'intenta accedir a un membre d'un objecte que és null.

Solució: Assegura't que l'objecte no sigui null abans d'accedir als seus membres.

Error d'Índex Fora de Límits (IndexOutOfRangeException)

Aquest error es produeix quan s'intenta accedir a un índex que està fora dels límits d'una matriu o col·lecció.

Solució: Verifica que l'índex estigui dins dels límits abans d'accedir a la matriu o col·lecció.

  1. Exercicis Pràctics

Exercici 1: Escriure una Prova Unitària

Escriu una prova unitària per a un mètode que multiplica dos nombres.

Solució:

[TestMethod]
public void Multiply_TwoNumbers_ReturnsProduct()
{
    // Arrange
    var calculator = new Calculator();
    int a = 4;
    int b = 5;

    // Act
    int result = calculator.Multiply(a, b);

    // Assert
    Assert.AreEqual(20, result);
}

Exercici 2: Depurar un Error de Referència Null

Depura el següent codi per corregir l'error de referència null:

public class Person
{
    public string Name { get; set; }
}

public class Program
{
    public static void Main()
    {
        Person person = null;
        Console.WriteLine(person.Name); // Error de referència null
    }
}

Solució:

public class Program
{
    public static void Main()
    {
        Person person = new Person { Name = "John" };
        Console.WriteLine(person.Name); // Ara funciona correctament
    }
}

Conclusió

En aquesta secció, hem après sobre la importància de les proves i la depuració en el desenvolupament de programari. Hem explorat diferents tipus de proves, eines de proves en C#, i tècniques de depuració en Visual Studio. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. Amb aquestes habilitats, estaràs millor preparat per assegurar que el teu codi sigui robust, fiable i lliure d'errors.

© Copyright 2024. Tots els drets reservats