Les proves són una part fonamental del desenvolupament de programari. Asseguren que el codi funcioni com s'espera i ajuden a identificar errors abans que el programari sigui desplegat. En aquesta secció, aprendrem els conceptes bàsics sobre les proves en Python, incloent-hi la importància de les proves, els diferents tipus de proves i com començar a escriure proves senzilles.

Continguts

  1. Què són les proves?
  2. Importància de les proves
  3. Tipus de proves
  4. Eines de prova en Python
  5. Escrivint la primera prova

  1. Què són les proves?

Les proves són processos que verifiquen que el codi compleix amb els requisits especificats i funciona correctament. Les proves poden ser manuals o automàtiques.

Tipus de proves

  • Proves unitàries: Verifiquen la funcionalitat de components individuals del codi, com ara funcions o mètodes.
  • Proves d'integració: Asseguren que diferents components del sistema funcionen correctament junts.
  • Proves de sistema: Verifiquen el sistema complet per assegurar-se que compleix amb els requisits.
  • Proves d'acceptació: Validen que el sistema compleix amb les necessitats i expectatives dels usuaris finals.

  1. Importància de les proves

Les proves són crucials per diverses raons:

  • Qualitat del codi: Asseguren que el codi funciona correctament i compleix amb els requisits.
  • Mantenibilitat: Faciliten la identificació i correcció d'errors, fent que el codi sigui més fàcil de mantenir.
  • Confiança: Proporcionen confiança als desenvolupadors i als usuaris finals que el sistema funcionarà com s'espera.

  1. Tipus de proves

Proves unitàries

Les proves unitàries són les més bàsiques i verifiquen la funcionalitat de components individuals del codi. Cada prova unitària comprova una petita part del sistema, com ara una funció o un mètode.

Proves d'integració

Les proves d'integració verifiquen que diferents components del sistema funcionen correctament junts. Aquestes proves són importants per assegurar-se que els components integrats interactuen correctament.

Proves de sistema

Les proves de sistema verifiquen el sistema complet per assegurar-se que compleix amb els requisits especificats. Aquestes proves són més àmplies i cobreixen tot el sistema.

Proves d'acceptació

Les proves d'acceptació validen que el sistema compleix amb les necessitats i expectatives dels usuaris finals. Aquestes proves són sovint realitzades pels usuaris finals o per un equip de proves dedicat.

  1. Eines de prova en Python

Python ofereix diverses eines per a la realització de proves. Algunes de les més populars són:

  • unittest: És el framework de proves integrat en Python. Proporciona una estructura per a la creació i execució de proves unitàries.
  • pytest: És un framework de proves més avançat que proporciona funcionalitats addicionals i una sintaxi més senzilla.
  • nose2: És una extensió del framework unittest que proporciona funcionalitats addicionals per a la descoberta i execució de proves.

  1. Escrivint la primera prova

Comencem escrivint una prova unitària senzilla utilitzant el framework unittest.

Exemple pràctic

Suposem que tenim una funció que suma dos nombres:

# fitxer: calculadora.py

def suma(a, b):
    return a + b

Ara escriurem una prova unitària per verificar que la funció suma funciona correctament.

# fitxer: test_calculadora.py

import unittest
from calculadora import suma

class TestCalculadora(unittest.TestCase):

    def test_suma(self):
        self.assertEqual(suma(1, 2), 3)
        self.assertEqual(suma(-1, 1), 0)
        self.assertEqual(suma(-1, -1), -2)

if __name__ == '__main__':
    unittest.main()

Explicació del codi

  1. Importació de unittest: Importem el mòdul unittest i la funció suma que volem provar.
  2. Creació de la classe de prova: Creem una classe TestCalculadora que hereta de unittest.TestCase.
  3. Definició del mètode de prova: Definim un mètode test_suma dins de la classe de prova. Aquest mètode utilitza self.assertEqual per comprovar que la funció suma retorna els resultats esperats.
  4. Execució de les proves: Utilitzem unittest.main() per executar les proves quan el fitxer es corre directament.

Execució de les proves

Per executar les proves, simplement executa el fitxer test_calculadora.py:

python test_calculadora.py

Si totes les proves passen, veuràs una sortida similar a aquesta:

...
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK

Resum

En aquesta secció, hem après els conceptes bàsics sobre les proves en Python, incloent-hi la importància de les proves, els diferents tipus de proves i com escriure una prova unitària senzilla utilitzant el framework unittest. En les següents seccions, aprofundirem en altres aspectes de les proves, com ara les proves d'integració i les eines avançades de prova.

Curs de Programació en Python

Mòdul 1: Introducció a Python

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats