Python for Testing

Modalidad online self study
 

70 horas de dedicación por
parte del estudiante

Acerca de este curso

El plan de estudios de esta formación oficial de Python Institute está compuesto por dos cursos, Python for Testing 101 y Python for Testing 102, diseñados para introducir y profundizar en los fundamentos del testing de software con Python.

El curso Python for Testing 101 presenta los conceptos esenciales de las pruebas de software, incluyendo los diferentes niveles y técnicas de testing, las buenas prácticas de calidad y el papel del testing dentro del ciclo de desarrollo. También se abordan aspectos relacionados con la depuración, el manejo de errores, la documentación de pruebas y metodologías ampliamente utilizadas en la industria.

Por su parte, el curso Python for Testing 102 tiene como objetivo desarrollar habilidades más avanzadas para la creación de suites de pruebas limpias, mantenibles y escalables utilizando Python. A lo largo del curso se trabajan herramientas y enfoques profesionales como unittest y pytest, el uso de fixtures y mocks, el diseño de aserciones robustas y metodologías de desarrollo guiado por pruebas como TDD y BDD.

¿A quién va dirigido?

Python for Testing 101 está diseñado para estudiantes que desean construir una base sólida en pruebas de software. Está especialmente orientado a:

  • Aspirantes a programadores y principiantes en testing de software que quieran aprender los fundamentos de las pruebas y del aseguramiento de calidad de software para su desarrollo personal o profesional.
  • Estudiantes que se preparan para puestos de nivel inicial en testing o aseguramiento de calidad, como software tester, QA engineer o test analyst.
  • Profesionales del sector con experiencia en otros lenguajes y herramientas de programación que deseen comprender los principios del testing de software y cómo utilizar Python para realizar pruebas.
  • Programadores y profesionales que buscan ampliar sus conocimientos en testing de software, automatización de pruebas, seguridad y aseguramiento de calidad como parte de su desarrollo profesional.
  • Líderes de equipo, product managers y project managers que quieran comprender los procesos de testing para mejorar la colaboración con equipos de desarrollo y QA.
  • Desarrolladores Python que buscan fortalecer sus prácticas profesionales de testing.
  • QA engineers y test engineers que desean ampliar su conjunto de herramientas con testing basado en Python.
  • Estudiantes con conocimientos fundamentales de ISTQB que quieran aplicar principios de testing de forma programática utilizando Python.
  • Principiantes en QA que se preparan para flujos de trabajo reales de testing.
  • Cualquier persona que quiera prepararse para el examen PCAT™ – Certified Associate Tester with Python.

Prerrequisitos:

Este curso está diseñado para estudiantes que:

  • Tienen conocimientos básicos de programación en Python.
  • Son capaces de escribir y depurar programas sencillos en Python.
  • Haber completado el curso Fundamentos de Programación en Python, haber superado alguna certificación de ese nivel o disponer de experiencia equivalente en fundamentos de programación con Python.

Objetivos

Durante el curso, los alumnos aprenderán a:

  • Escribir, leer y depurar programas básicos en Python.
  • Comprender el propósito y el valor del testing de software.
  • Diferenciar entre errores, defectos y fallos.
  • Aplicar correctamente enfoques de testing manual y automatizado.
  • Trabajar con distintos niveles de pruebas: unitarias, de integración, de sistema y de aceptación.
  • Utilizar aserciones, registros (logging) y técnicas de depuración en Python.
  • Comprender métodos de testing estático y dinámico.
  • Aplicar técnicas de testing de caja negra, caja blanca y basadas en la experiencia.
  • Mejorar la calidad del código utilizando principios de refactorización como DRY y KISS.
  • Desarrollar una base sólida para continuar su formación en QA, testing automatizado e ingeniería de software.
  • Desarrollar un proyecto completo de principio a fin: continuar la aplicación Crossword Helper y ampliarla (palíndromos → desplazamientos ROT → anagramas → coincidencia de patrones) mediante pruebas que guían el diseño.
  • Fortalecer tu conjunto de herramientas con unittest: aplicar la estructura F.I.R.S.T. de las pruebas, escribir aserciones precisas (assertEqual, assertAlmostEqual, assertRaises, assertCountEqual), eliminar duplicación con setUp/tearDown y hooks de class/module, utilizar subTest() y controlar ejecuciones con @skip/@expectedFailure.
  • Adoptar pytest para ganar velocidad y claridad: utilizar assert nativo con inspección avanzada, fixtures reutilizables (incluyendo limpieza con yield) y distintos scopes (de función a sesión), parametrización con @pytest.mark.parametrize, marcadores (skip/xfail/importorskip), selección específica (-k/-m), opciones de verbosidad y reportes (-v, -r), además de configuración centralizada en pytest.ini.
  • Realizar mocks con confianza: sustituir operaciones lentas o frágiles de entrada/salida usando unittest.mock (stubs, fakes y spies), trabajar con Mock/MagicMock, aplicar patch con spec/create_autospec y utilizar la fixture mocker de pytest-mock.
  • Medir y reportar resultados: generar cobertura de código con pytest-cov y compartir resultados mediante pytest-html, incluyendo reportes autocontenidos.
  • Aplicar TDD y BDD: practicar el ciclo Red → Green → Refactor en pequeños incrementos, refactorizar de forma segura con mejoras “pythónicas” como zip(), y describir comportamientos con Gherkin (Feature/Scenario, Given/When/Then) vinculados a definiciones de pasos en Python (por ejemplo, con behave).

Duración

70 horas - Modalidad online

Programa

PYTHON FOR TESTING 101

Módulo 1. Introducción al Testing de Software.

  • Comprender el testing de software.
  • Errores, defectos y fallos.
  • El testing en el ciclo de vida del desarrollo de software.
  • Equilibrio entre riesgo y lanzamiento: cuándo detener las pruebas.
  • El rol de los testers: retos y colaboración.
  • Principios del testing: desmontando conceptos erróneos comunes.

Módulo 2. La pirámide de testing y el proceso de pruebas .

  • Tipos de testing de software.
  • Niveles de testing.
  • La pirámide de testing.
  • Testing unitario.
  • Testing de integración.
  • Testing end-to-end (E2E).
  • Test doubles.
  • El proceso de testing.
  • Documentación de pruebas.

Módulo 3. Análisis estático y refactorización de código.

  • Testing estático vs. Dinámico.
  • Calidad del código: PEP 8 y linters.
  • Análisis estático y mejora de la calidad del código.
  • Cobertura de pruebas y métricas.
  • Refactorización de código.
  • Identificación de código legacy.
  • Patrón Arrange, Act, Assert.
  • Refactorización de código legacy.
  • Principio DRY.
  • Principio KISS.

Módulo 4. Depuración, aserciones y técnicas de testing.

  • Depuración.
  • Introducción a las aserciones.
  • Trabajar con múltiples aserciones en Python.
  • Registro de resultados de pruebas.
  • Técnicas de testing.
  • Tipos de técnicas de testing de caja blanca.
  • Tipos de técnicas de testing de caja negra.
  • Tipos de técnicas de testing basadas en la experiencia.


PYTHON FOR TESTING 102

Módulo 1. Infraestructura Limpia de Testing: Context Managers, Decoradores y Patrones de Métodos.

  • Gestión de recursos en Python.
  • Context Managers.
  • Introducción a los decoradores.
  • Decoradores de funciones.
  • Creación de decoradores con *args y **kwargs.
  • Composición y apilamiento de decoradores.
  • Introducción a los decoradores de clases.
  • Decoradores avanzados de clases.
  • Comprensión de los métodos en Python.

Módulo 2. Fundamentos de Unit Testing con unittest.

  • Frameworks de testing.
  • Introducción al unit testing.
  • Ejecución de pruebas unitarias y paso de argumentos.
  • Uso de la bandera -m y niveles de verbosidad.
  • Pruebas unitarias en la práctica.

Módulo 3. Testing Guiado por Proyectos: Aserciones, Errores, Tolerancia y Anagramas.

  • Aserciones principales en unittest.
  • Proyecto Crossword – Parte 1: de la idea a las pruebas.
  • Proyecto Crossword – Parte 2: aserciones, errores y correcciones.
  • Proyecto Crossword – Parte 3: fundamentos de diseño de pruebas.
  • Proyecto Crossword – Parte 4: pruebas de excepciones.
  • Proyecto Crossword – Parte 5: pruebas de anagramas y colecciones.

Módulo 4. Testing Guiado por Proyectos: Fixtures, Parametrización y Mocks.

  • Proyecto Crossword – Parte 6: fixtures de pruebas.
  • Proyecto Crossword – Parte 7: parametrización.
  • Proyecto Crossword – Parte 8: gestión de estados de prueba.
  • Proyecto Crossword – Parte 9: simulación de servicios externos y respuestas HTTP.
  • Proyecto Crossword – Parte 10: mocks y dependencias (stubs, fakes y spies).
  • Proyecto Crossword – Parte 11: mocks seguros para interfaces (spec, autospec, MagicMock).
  • De monkey patching a patchers mantenibles.
  • Revisión de pruebas unitarias del proyecto Crossword Helper.

Módulo 5. Testing con pytest.

  • Introducción, instalación y primera prueba con pytest.
  • Aserciones e introspección en pytest.
  • Fixtures: setup y teardown.
  • Parametrización en pytest.
  • Marcadores y omisión de pruebas en pytest.
  • Plugins y extensiones en pytest.
  • Trabajo con test doubles.
  • Personalización de descubrimiento y ejecución de pruebas en pytest.

Módulo 6. Desarrollo Guiado por Pruebas y por Comportamiento.

  • Introducción al Test-Driven Development (TDD).
  • Primeros pasos con TDD.
  • Iteración y mejora continua con TDD.
  • Fundamentos de Behavior-Driven Development (BDD).
  • Escenarios prácticos de BDD.

¿Tienes alguna duda?

Contacta con PUE Academy enviando un email a
itskills@pue.es

Inscríbete
Accede a todos los cursos online que forman parte de esta iniciativa.
Tendrás 1 año de plazo para poder realizarlos.

Inscríbete para acceder a todos los
recursos de IT Skills Platform

Formación oficial

100% online

100€ (IVA no incluido)

¿Dispones de una invitación?
Inscríbete a través de la invitación que habrás recibido por correo electrónico.

Top