Diferencia entre revisiones de «Pruebas de software 23-24»

De Wiki de EGC
Saltar a: navegación, buscar
(Prerrequisitos)
(Contenido de la práctica)
 
Línea 36: Línea 36:
 
* [[Pruebas de las vistas 23-24 | Pruebas de las vistas]]
 
* [[Pruebas de las vistas 23-24 | Pruebas de las vistas]]
 
* [[Pruebas de carga 23-24 | Pruebas de carga]]
 
* [[Pruebas de carga 23-24 | Pruebas de carga]]
 +
 +
----
 +
[[Archivo:02.Pruebas2324.pdf]]

Revisión actual del 13:40 1 oct 2023

Prerrequisitos

  • Para no lidiar con problemas de compatibilidad entre la versión de Python, la de Django y la de nose [1], vamos a necesitar una nueva dependencia: pynose [2]. Se instala en el repositorio virtual mediante:
pip install pynose
  • Para que estos problemas no se propaguen en las siguientes prácticas, debemos añadir pynose al requirements.txt:
pynose==1.4.8
  • Cuando se ejecutan las pruebas, Django crea una base de datos para este único propósito y así no interferir con la base de datos que usamos en desarrollo/producción. Para poder crear esta base de datos, necesita permisos. Suponiendo que el usuario para la base de datos que creamos en la práctica anterior se llama decideuser, podemos otorgarle permisos haciendo:
sudo su - postgres
psql -c "ALTER USER decideuser CREATEDB"
  • Para las pruebas de cobertura:
pip install coverage
  • Para las pruebas de interfaz con Selenium [3], necesitaremos Chrome y el web driver de Chrome:
pip install selenium
sudo apt install chromium-browser chromium-chromedriver
  • Y, por último, para las pruebas de carga, necesitamos locust [4]:
pip install locust

Automatizando Pruebas

La estructura de Django, se divide principalmente en modelos, vistas y plantillas.

Django-arch.png

En esta práctica veremos como testar cada una de estas partes de Django, así como ejecutar pruebas de carga sobre el mismo. Para lanzar las pruebas, Django utiliza el framework de pruebas unittest [5], el cual está inspirado en JUnit [6].

Para ejecutar todas las pruebas disponibles en decide, utilizaremos la instrucción:

./manage.py test

Para ejecutar las pruebas de un único módulo, por ejemplo, voting, utilizaremos:

./manage.py test voting

Contenido de la práctica


Archivo:02.Pruebas2324.pdf