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
- Què són les proves?
- Importància de les proves
- Tipus de proves
- Eines de prova en Python
- Escrivint la primera prova
- 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.
- 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.
- 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.
- 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.
- 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:
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
- Importació de unittest: Importem el mòdul
unittest
i la funciósuma
que volem provar. - Creació de la classe de prova: Creem una classe
TestCalculadora
que hereta deunittest.TestCase
. - Definició del mètode de prova: Definim un mètode
test_suma
dins de la classe de prova. Aquest mètode utilitzaself.assertEqual
per comprovar que la funciósuma
retorna els resultats esperats. - 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
:
Si totes les proves passen, veuràs una sortida similar a aquesta:
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
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn