Python Institute

Python for Testing – Curso Oficial PCAT del Python Institute - Online

Online     70 horas     525.00 €

CERTIFICACIÓN INCLUIDA

Para miembros del colectivo  PUE Alumni

Acerca de este curso

El plan de estudios de esta formación oficial de Python Institute está compuesto por los contenidos de 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.

El presente curso prepara a los estudiantes hacia la superación de la prestigiosa certificación oficial PCAT™ – Certified Associate Tester with Python.

En el curso se incluyen 5 sesiones webinar en directo, en castellano, como complemento a la formación. En ellas, el instructor impartirá los aspectos más importantes de cada capítulo, propondrá diferentes escenarios, y resolverá las dudas planteadas. Las webinars también estarán disponibles en la plataforma e-learning, para que puedan ser visualizadas por aquellos que no puedan asistir en directo.

El calendario con el detalle de fechas y horarios de las sesiones, que serán distribuidas a lo largo del curso, se publicará antes del inicio de cada edición.

Programación Webinars:

  • Sesión 1. Fundamentos del testing con Python.
  • Sesión 2. Testing unitario y depuración de código.
  • Sesión 3. Automatización avanzada con pytest.
  • Sesión 4. Mocking y simulación de entornos de prueba. TDD, BDD y cobertura de código.
  • Sesión 5. Repaso final y preparación del examen PCAT™ – Certified Associate Tester with Python.

Las sesiones están planteadas con un enfoque muy práctico, orientado a escenarios reales, alineado con QA profesional y reforzando los conceptos que más suelen necesitar explicación guiada en cursos self-study.

Tiempo de acceso y tutorización

En el presente curso online, el alumno tendrá acceso a los contenidos del curso, en inglés, en la plataforma e-learning durante 4 meses a contar desde la fecha de inicio, con tutorización durante este mismo periodo.

A quién va dirigido

Python for Testing 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.

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.
  • Han completado el curso Fundamentos de Programación en Python, han superado alguna certificación de ese nivel o disponer de experiencia equivalente en fundamentos de programación con Python.

Objetivos del curso

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).

Certificación incluida

Este curso oficial es el recomendado por Python Institute para la preparación del siguiente examen de certificación oficial valorado en 172€ (IVA incl.), que incluimos en el precio del curso a todos los miembros del programa PUE Alumni.

La superación de este examen es requisito imprescindible para obtener la certificación PCAT™ – Certified Associate Tester with Python.

El examen se realizará en modalidad online a través de la plataforma OpenEDG Testing Service “TestNow™”.

Contenidos

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.

Próximas convocatorias