En aquest tema, explorarem els diferents tipus de proves de programari que s'utilitzen per assegurar la qualitat i el correcte funcionament dels sistemes. Les proves de programari són una part fonamental del procés de desenvolupament, ja que ajuden a identificar errors i assegurar que el producte compleix amb els requisits especificats.

  1. Proves Unitàries

Les proves unitàries són el nivell més bàsic de proves i es centren en verificar la funcionalitat de components individuals del codi, com ara funcions o mètodes.

  • Objectiu: Assegurar que cada unitat de codi funcioni correctament de manera aïllada.
  • Eines comunes: JUnit (Java), NUnit (.NET), PyTest (Python).
  • Exemple de codi:
def suma(a, b):
    return a + b

def test_suma():
    assert suma(2, 3) == 5
    assert suma(-1, 1) == 0
    assert suma(0, 0) == 0

test_suma()

  1. Proves d'Integració

Aquestes proves es realitzen per verificar la interacció entre diferents mòduls o components del sistema.

  • Objectiu: Detectar problemes en la interfície i la interacció entre mòduls.
  • Eines comunes: TestNG, Postman (per a API), SoapUI.
  • Exemple de codi:
def test_integration():
    result = api_call('/endpoint', data={'key': 'value'})
    assert result.status_code == 200
    assert result.json()['key'] == 'expected_value'

test_integration()

  1. Proves de Sistema

Aquestes proves es realitzen sobre el sistema complet per assegurar que compleix amb els requisits funcionals i no funcionals.

  • Objectiu: Validar el comportament del sistema en conjunt.
  • Eines comunes: Selenium, QTP, TestComplete.

  1. Proves d'Acceptació

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

  • Objectiu: Assegurar que el sistema és acceptable per a l'usuari final.
  • Tipus: Proves d'acceptació d'usuari (UAT), proves beta.

  1. Proves de Regressió

Aquestes proves es realitzen després de fer canvis al codi per assegurar que les noves modificacions no han introduït errors en les funcionalitats existents.

  • Objectiu: Detectar regressions o errors introduïts per canvis recents.
  • Eines comunes: Selenium, Jenkins (per a integració contínua).

  1. Proves de Rendiment

Aquestes proves avaluen el comportament del sistema sota càrrega i estrès per assegurar que compleix amb els requisits de rendiment.

  • Objectiu: Mesurar la velocitat, escalabilitat i estabilitat del sistema.
  • Eines comunes: JMeter, LoadRunner.

  1. Proves de Seguretat

Aquestes proves s'enfoquen en identificar vulnerabilitats de seguretat dins del sistema.

  • Objectiu: Assegurar que el sistema és segur contra atacs i accessos no autoritzats.
  • Eines comunes: OWASP ZAP, Burp Suite.

Exercici Pràctic

Exercici: Escriu una prova unitària per a una funció que calculi el factorial d'un nombre.

Solució:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

def test_factorial():
    assert factorial(0) == 1
    assert factorial(1) == 1
    assert factorial(5) == 120
    assert factorial(3) == 6

test_factorial()

Conclusió

Els diferents tipus de proves de programari són essencials per assegurar la qualitat i el correcte funcionament dels sistemes. Cada tipus de prova té un objectiu específic i utilitza eines i tècniques diferents per assolir-lo. En el proper tema, explorarem com planificar i dissenyar proves de manera efectiva.

Qualitat del Programari i Millors Pràctiques

Mòdul 1: Introducció a la Qualitat del Programari

Mòdul 2: Fonaments de les Proves de Programari

Mòdul 3: Qualitat del Codi i Millors Pràctiques

Mòdul 4: Proves Automatitzades

Mòdul 5: Tècniques Avançades de Proves

Mòdul 6: Processos d'Assegurament de la Qualitat

Mòdul 7: Millors Pràctiques en el Desenvolupament de Programari

Mòdul 8: Estudis de Cas i Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats