📦 Pruebas de Software | UTFSM – INF331 Repositorio OpenSource de proyectos de estudiantes de la asignatura INF331 - Testing de Software de la Universidad Técnica Federico Santa María.
🎯 Nuestra misión: aprender haciendo.
🔍 Exploramos testing automatizado, agilidad, CI/CD, buenas prácticas de calidad de software y trabajo colaborativo con herramientas del mundo real.
🚀 Cada semestre los estudiantes desarrollan aplicaciones web desde cero, integrando pruebas como parte central del proceso de desarrollo.
Repositorio complementario a Aula (aula.usm.cl)
Desarrollo progresivo de una aplicación web con prácticas reales de testing automatizado, integración continua (CI) y despliegue continuo (CD). Proyecto principal de la asignatura.
Acá podrás ver los repositorios de los proyectos de los estudiantes, camadas de developers con super poderes en testing, videos de los entregables, videos de las presentaciones en vivo, documentación, código OpenSource, problemas en proyectos, proyectos exitosos, lecciones aprendidas y mucho testing en acción.
Conceptos fundamentales de calidad de software. Introducción a los procesos de asegurar que un producto cumple su propósito. Enlaces a repositorios de ejercicios
Introducción a Unit Testing, comenzando con ejemplos prácticos en Java y Python.
-
JUnit máquina de café
Ejercicio de pruebas unitarias que simula el comportamiento de una máquina expendedora de café, enfocándose en la validación de escenarios normales y fallidos.- ⮞ Máquina de café: Simulador máquina de café.
-
JUnit simulador de cajero automático
Ejercicio de pruebas unitarias modelando operaciones de un cajero automático:- ⮞ Versión 1: Simulación de retiro de efectivo y validación de saldo.
- ⮞ Versión 2: Simulación de retiro de efectivo y validación de saldo.
-
JUnit Tarjeta de Fidelidad Gamificada
Sistema que gestiona programa de fidelidad para una cadena de tiendas:- ⮞ Tarjeta de Fidelidad: Tarjeta de Fidelidad Gamificada.
BDD (Behavior-Driven Development) es una metodología de desarrollo de software que se centra en la comunicación y colaboración entre desarrolladores, testters y stakeholders, utilizando un lenguaje natural para describir el comportamiento de una aplicación. Este enfoque mejora la comprensión mutua y garantiza que el software cumpla con las expectativas de los usuarios.
Ejemplos:
- Cucumber Hello World Primer contacto con BDD (Behavior Driven Development) utilizando:
- Java + Cucumber: ⮞ Hello World (Java + Cucumber)
- Python + Behave: ⮞ Hello World (Python + Behave)
TDD (Test Driven Development) es una metodología de desarrollo de software donde se escriben las pruebas unitarias antes de escribir el código que las pasará. El objetivo es asegurar que el código cumple con las expectativas desde el principio y facilitar la detección y corrección de errores.
Ejemplos:
- Caso Básico, aplicación de la metodología Test Driven Development (Desarrollo guiado por pruebas) a un problema sencillo, reforzando la importancia de construir primero las pruebas antes del código.
La ingeniería de software moderna exige ciclos de entrega cada vez más rápidos y rigurosos. Al integrar IA generativa y prácticas de prompt engineering con testing automatizado y herramientas de última generación, ampliamos la cobertura y reducimos el tiempo de detección de defectos sin sacrificar la calidad
Las pruebas de mutación evalúan la eficacia del conjunto de pruebas insertando pequeñas fallas en los programas y midiendo la capacidad del conjunto de pruebas para detectarlas.
Material de estudio, preguntas de alternativas y presentaciones de la asignatura
🚧 Estamos permanentemente agregando más proyectos, ejemplos y prácticas de testing.
2025


