igponce / curso-tdd

Curso de desarrollo para asegurar la calidad del software

Home Page:https://jj.github.io/curso-tdd

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Curso de desarrollo ágil - 4ª edición

Build Status 💟 CircleCI 💟 DevQAGRX 💟 Comprueba texto 💟 Test Nim 💟 Test Raku

Índice

Introducción

En este curso trataremos de aprender las técnicas necesarias para trabajar en un entorno ágil de desarrollo, para aplicaciones nativas en la nube o cualquier otra cosa. Será un curso conceptual, pero también práctico donde aprenderemos a desarrollar diferentes técnicas en cualquier lenguaje de programación y diferentes microframeworks. La idea principal es que este curso sirva de introducción a la asignatura de infraestructura virtual o cualquier otra asignatura de informática avanzada.

Cada sesión durará unos 20-30 minutos; el resto del trabajo se hace de forma asíncrona interaccionando a través de un grupo de Telegram. Durante el curso se irá elaborando un proyecto en equipo de dos o tres personas. Se tendrán que alcanzar hitos del proyecto que se haya elegido que se evaluarán automáticamente usando tests. Cuando se completen todas las sesiones y objetivos generaré un badge para el repo donde se haya cumplido todo (y dependiendo del nivel en el que se haya alcanzado, se hará también una recomendación en LinkedIn o donde se solicite).

Planificación del curso

La tercera edición ha quedado grabada en esta lista de reproducción. El planteamiento general del curso está en esta presentación.

La cuarta edición del curso, ya completa, está en esta lista de reproducción.

Tendremos estas sesiones:

  1. Git y GitHub/GitLab. Uso básico y avanzado de sistemas de control de fuentes y de sitios web para desarrollo colaborativo.
  1. Desarrollo ágil
  • Cómo organizar un proyecto: canvas, épicas.
  • Personas (usuarios ficticios), desarrollo por capas y todo lo que necesitamos para empezar.
  • Historias de usuario, user journeys y todo eso.
  • Material.
  • Presentación.
  1. Resolviendo problemas usando la informática.
  1. Servicios avanzados en informática.
  1. Diseñando la aplicación

    • Historias de usuario
    • Uso de issues/hitos en el desarrollo basado en test.
    • Diseño dirigido por el dominio
    • Material.
    • Presentación.
  2. Puesta al día

  3. Refinando el diseño y organizando el desarrollo

  4. Comienzo de la implementación "defensiva".

    • Documentación de las historias de usuario y traslado a issues.
    • Comienzo del diseño, en general, de las clases.
    • Diseño de excepciones.
    • Material.
    • Presentación.
  5. Task runners y cómo usarlos.

  1. Preparando tu aplicación para testear: separation of concerns, diseño.
  • Cómo asegurarnos desde el diseño de que se cumplen las historias de usuario.
  • Material.
  • Presentación.
  1. Objetos de test
  1. Ejecución de tests
  1. Qué es la integración continua y cómo usarla para ejecutar los tests automáticamente.
  • Diferentes sistemas de integración continua: Travis, GitHub Actions...
  • Acelerando con Dockerfiles.
  • Material.
  • Presentación.
  1. Inversión de dependencias.
  1. Tests de cobertura y por qué son importantes.
  1. Tests funcionales/de integración
  • Cómo testear microservicios y sistemas basados en tareas.
  • BDD y algunos frameworks.
  • Material.
  1. Tests adicionales
  • Tests de prestaciones.
  • Tests de front-end.
  • Tests de regresión.
  • Material.

Hitos

Las entregas se organizan en hitos, que corresponden (en general) a una sesión. Este es el esquema de lo que hay que hacer en cada hito con enlaces

Hito Sesiones Descripción y enlace
0 1 Crear repo con componentes
1 2,6 Idea de problema a resolver
2 3 Épicas, problema a resolver
3 4 Servicios
4 5 Historias de usuario
5 7 Hitos
6 8 Excepciones
7 9 Gestor de tareas
8 10 Linter
9 11 Tests y aserciones
10 12 Marcos de test
11 13 Integración continua
12 14 Inyección de dependencias
13 15 Tests de cobertura

Esta información te la da el bot kke, añadido al grupo de Telegram del curso, o con una conversación directa con él.

La informática consiste en resolver problemas del usuario mediante un ordenador. Estos son algunos de los problemas con los que se podría tratar.

Se puede usar esta plantilla para los proyectos.

Lugar

Se hará de forma virtual usando Jitsi. Las clases se grabarán también (en la medida de lo posible).

"Título" o acreditación de haber realizado el curso.

A los que superen todos los hitos y actividades planteados en el curso se les hará una recomendación en LinkedIn por parte del profesor, por eso se solicita el perfil de LinkedIn en la inscripción. Los estudiantes tendrán que aceptar la conexión del profesor para poder hacer esta recomendación.

Inscripción

Añade tu nick de GitHub y perfil de LinkedIn a esta tabla mediante un pull request. La inscripción es gratuita y abierta a quien lo desee, pero los asistentes tendrán que usar su propio equipo.

Proyectos realizados

Los proyectos en elaboración se enlazarán en en esta página.

Instrucciones de uso

make y pandoc deben estar presentes para generar los PDFs.

make

o

make doc

generará los proyectos en un solo PDF.

Si tienes instalado mask, puedes usarlo también.

About

Curso de desarrollo para asegurar la calidad del software

https://jj.github.io/curso-tdd

License:MIT License


Languages

Language:Perl 68.0%Language:JavaScript 17.3%Language:HTML 8.0%Language:SCSS 5.2%Language:Raku 0.8%Language:Python 0.2%Language:CSS 0.1%Language:Rust 0.1%Language:Ruby 0.1%Language:TypeScript 0.1%Language:Nim 0.0%Language:Makefile 0.0%Language:Dockerfile 0.0%Language:R 0.0%