9.5. Pruebas funcionales

Son un tipo de prueba de software que se enfoca en verificar que el sistema cumpla con los requisitos funcionales especificados. Estas pruebas se centran en validar que las funciones y características del software se comporten de acuerdo con las expectativas del usuario, sin tener en cuenta la estructura interna del código fuente.

Mientras se ejecutan las pruebas funcionales, se simulan escenarios de uso real para asegurarse de que el software realice correctamente las tareas para las cuales fue diseñado. Son esenciales para garantizar que la aplicación cumpla con los requisitos de negocio y brinde una experiencia de usuario satisfactoria.

Truco

Un ejemplo de prueba funcional, es una aplicación web simula la ejecución de una navegador web el cual abre la dirección URL e interactual con la misma.

9.5.1. Importancia

Estas pruebas garantizan que el software cumple con su propósito, brindando una experiencia de usuario óptima y minimizando errores en producción.

9.5.2. Tipos


9.5.3. Instalación

Al realizar pruebas funcionales pueden ser manuales o automatizadas necesita el módulo selenium. Esto significa que debe instalar selenium ejecutando los siguientes comandos correspondiente a cada sistema operativo, los cuales se presentan a continuación:

Para realizar pruebas funcionales en una aplicación con selenium requiere instalar las siguientes librerías/módulos:

  1. Entorno de desarrollo.

  2. Python package installer - pip.

  3. Entorno virtual Python.

  4. Instalar el módulo selenium, ejecutando el siguiente comando:

    pip3 install selenium
    

Puede probar si la instalación se realizo correctamente, ejecutando el siguiente comando correspondiente a tu sistema operativo:

python3 -c "import selenium ; print(selenium.__version__)"

Si muestra el número de la versión instalada de selenium, tiene correctamente instalado el módulo. Con esto, ya tiene todo listo para continuar.


9.5.4. Práctica - Caso real

A continuación se presenta una práctica más real de implementar el uso de proyectos con selenium, a continuación la estructura de proyecto llamado functionales:

9.5.4.1. Estructura de archivos

Para crear la estructura de archivos del proyecto selenium debe ejecutar los siguientes comandos:

Crear y acceder al directorio functionales en un solo comando, ejecutando el siguiente comando:

mkdir -p ~/proyectos/pruebas/functionales && cd $_

El comando anterior crea la siguiente estructura de directorios:

proyectos/
└── pruebas/
    └── functionales/

Si tiene la estructura de archivo previa, entonces puede continuar con la siguiente sección.

A continuación se presenta y explica el uso de cada archivo para este proyecto:

Archivo functtest_navigate_url.py

Módulo de prueba funcional para buscar el elemento HTML title y verificar el valor del título de la página.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
"""Functional test to search for the HTML element 'title' and verifying the page title."""

from selenium import webdriver

# Create an instance of Chrome WebDriver
browser = webdriver.Chrome()

# Make a request to the PyPI website for the selenium package
browser.get("https://pypi.org/project/selenium/4.29.0/")

# Check if the title of the page is proper
if browser.title == "selenium · PyPI":
    print("✅ Successed Test: selenium · PyPI page launched successfully")
else:
    print("❌ Failed Test: selenium · PyPI page Title is incorrect")

# Quit the browser window
browser.quit()

Archivo test_find_element.py

Módulo de prueba funcional para buscar el nombre del paquete en la página con expresión xpath y verificando el valor del elemento.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""Functional test to search for the package name on the page with xpath expression and verifying the value of the element."""

import time
from selenium import webdriver

# Create an instance of Chrome WebDriver
browser = webdriver.Chrome()

# Make a request to the PyPI website for the selenium package
browser.get("https://pypi.org/project/selenium/4.29.0/")

# Find the name field using xpath with id
package_name = browser.find_element("xpath", '//*[@id="content"]/div[1]/div/div[1]/h1')

# Check if the title of the page is proper
if package_name.text:
    # Verify an element on the page
    assert "selenium 4.29.0" in package_name.text
    print("✅ Successed Test: selenium 4.29.0 version found")
else:
    print("❌ Failed Test: selenium 4.29.0 version is incorrect")

# Quit the browser window
browser.quit()

Para ejecutar el código del proyecto llamado functionales abra una consola de comando, cree la siguiente estructura de directorio y acceda al mismo donde se encuentra el programa:

proyectos/
└── pruebas/
    └── functionales/
        ├── __init__.py
        ├── test_navigate_url.py
        └── test_find_element.py

Si tiene la estructura de archivo previa, entonces puede continuar los procesos de ejecución del código fuente.


Teniendo creada la anterior estructura de proyecto, vuelva a ejecutar ahora el módulo con el siguiente comando, el cual a continuación se presentan el correspondiente comando de tu sistema operativo:

Truco

Para ejecutar el código fuente de esta práctica debe invocar al módulo test_navigate_url.py, abra una consola de comando, acceda al directorio donde se encuentra la estructura previa y ejecute el siguiente comando:

python3 test_navigate_url.py

El anterior código al ejecutar debe mostrar el siguiente mensaje:

✅ Successed Test: selenium · PyPI page launched successfully

Este es el funcionamiento normal del módulo test_navigate_url.py. Por defecto siempre devolvera el valor Python 3.11+.

Truco

Para ejecutar el código fuente de esta práctica debe invocar al módulo test_find_element.py, abra una consola de comando, acceda al directorio donde se encuentra la estructura previa y ejecute el siguiente comando:

python3 test_find_element.py

El anterior código al ejecutar debe mostrar el siguiente mensaje:

✅ Successed Test: selenium 4.29.0 version found

Si la ejecución anterior muestra el mensaje anterior, quiere decir que la prueba unitaria fue exitosa.

Así de esta forma puede replicar una práctica real de un proyecto para realizar pruebas funcionales usando selenium para la pagina web: https://pypi.org/project/selenium/4.29.0/

Importante

Usted puede descargar el código usado en esta sección haciendo clic en los siguientes enlaces:

Las pruebas funcionales son fundamentales para garantizar que una aplicación funcione correctamente desde la perspectiva del usuario. Implementarlas adecuadamente ayuda a mejorar la calidad del software y evitar fallos en producción.


Ver también

Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.


¿Cómo puedo ayudar?

¡Mi soporte está aquí para ayudar!

Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. UTM - Madrid, España.

La hora aquí es actualmente 7:35 PM UTM.

Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Contrata mi increíble soporte profesional