Skip to content
forked from JJ/curso-tdd

Curso de desarrollo para asegurar la calidad del software

Notifications You must be signed in to change notification settings

muetsii/curso-tdd

 
 

Repository files navigation

Curso de programación para QA -3ª edición

Build Status 💟 CircleCI 💟 DevQAGRX 💟 Comprueba README

En este curso trataremos de aprender las técnicas necesarias para trabajar en un entorno 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 contendrá una parte teórica y una práctica; la parte teórica será una clase magistral de 20-30 minutos, seguida de una parte práctica. Durante el curso se irá elaborando un proyecto en equipo de dos o tres personas. Cada dos o tres sesiones se tendrá que alcanzar un hito del proyecto que se haya elegido, que se tendrá que entregar (y se evaluará de forma más o menos automática) al final de las mismas. 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

  • Sesión 1: Git y GitHub/GitLab. Uso básico y avanzado de sistemas de control de fuentes y de sitios web para desarrollo colaborativo.

    • Conceptos básicos: pull, pull request, push, clone.
    • Releases y tagging.
    • Material.
  • Sesión 2: Resolviendo problemas usando la informática.

    • Temática: hay vida más allá de cliente-servidor.
    • Material.
  • Sesión 3: Servicios avanzados en informática.

    • Configuración distribuida.
    • Logs.
    • Almacenamiento de datos.
    • Material.
  • Sesión vermut: Análisis de RadarCovid. Aprovechando que han "liberado" RadarCOVID, vamos a ver qué se puede aprender del código publicado sobre lo que se debe (y no se debe hacer) en desarrollo de software de calidad.

    • Dejar claves privadas en el repo
    • Tests
    • Ficheros diversos abandonados.
    • Reproducibilidad de la compilación.
    • ...
  • Sesión 4: Requisitos funcionales, personas (usuarios ficticios), desarrollo por capas y todo lo que necesitamos para empezar.

    • Uso de issues/hitos en el desarrollo basado en test.
    • Material.
  • Sesión 5: Comienzo de la implementación "defensiva".

    • Cómo organizar un proyecto: canvas, milestones, issues.
    • Documentación de las historias de usuario y traslado a issues.
    • Comienzo del diseño, en general, de las clases (y excepciones).
    • Material.
  • Sesión 6: Task runners y cómo usarlos.

    • Diferentes tipos de task runners y por qué son útiles para todo.
    • Material.
  • Sesión 7: Preparando tu aplicación para testear: separation of concerns, inversión de dependencias, diseño.

    • Cómo asegurarnos desde el diseño de que se cumplen las historias de usuario.
    • Material.
  • Sesión 8: objetos de test

    • Organización de los tests.
    • Fases de tests.
    • Aserciones
    • Material.
  • Sesión 9: Ejecución de tests

  • Sesión 10: Qué es la integración continua y cómo usarla para ejecutar los tests automáticamente.

    • Hooks de git y cómo usarlos para testear todo el tiempo.
    • Diferentes sistemas de integración continua: Travis, GitHub Actions...
    • Material.
  • Sesión 11: CI: Acelerando con Dockerfiles.

  • Sesiones 12: Tests de cobertura y por qué son importantes.

  • Sesión 13: Tests funcionales/de integración

    • Cómo testear microservicios y sistemas basados en tareas.
    • BDD y algunos frameworks.
    • Material.
  • Sesión 14: Inversión de dependencias.

  • Sesión 15: Tests adicionales

    • Tests de prestaciones.
    • Tests de front-end.
    • Tests de regresión.
    • Material.
  • Sesión 16: Última sesión.

    • Aclaración de dudas.

Proyectos inicialmente propuestos

Se puede usar esta plantilla para los proyectos.

Lugar

Se hará de forma virtual usando Jitsi, Rocket Chat o alguna plataforma libre.

Clases

De lunes a viernes, 7 al 11 y 14 al 18 de septiembre de 12:30 a 2 de la tarde, 21 al 25 de septiembre 13:45 a 15:00.

Título

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.

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 traer su propio portátil y conexión a Internet (si no tienen acceso al WiFi de la universidad).

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.

About

Curso de desarrollo para asegurar la calidad del software

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Perl 39.7%
  • Raku 34.9%
  • Python 9.6%
  • Rust 5.8%
  • TypeScript 4.3%
  • Ruby 3.3%
  • Other 2.4%