Siete Principios del Testing de Software
Clase 1 de 15 • Curso de Fundamentos de Pruebas de Software
Contenido del curso
Clase 1 de 15 • Curso de Fundamentos de Pruebas de Software
Contenido del curso
Edwin Castelblanco Sánchez
Cristobal Vega
Hugo Ocampo
Santiago Pineda Botero
Cesar A Rivera O
Rafael Mosquera
Gabriel Antonio Carabali Viafara
Roberto Carlos Moreira España
Marco Aurelio
Andrea Durán
Andrés Madrigal
Cristian Acevedo
Jorge Montanares
Rubens A. Rangel Gomez
Mateo Orozco Lotero
Rafael Alejandro Cabrera Penayo
Gabriel Obregón
Arturo Galvis
No sé si es que soy muy vieja guardia en esta comunidad de Platzi y me mal acostumbraron a ver una inteligencia humana, docente real. Y me ha costado estos cursos generados por IA. No logra engancharme ni tener esa conexión como con profes con quienes ya hemos tomado cursos. Sería valioso que los Course Directors consideren este tipo de retroalimentación. Cordial saludo.
Concuerdo, estos videos se sienten sin alma, sin pasion de escuchar a un docente real hablando contigo sobre un tema que esperas aprender por curiosidad, crea friccion sobre algo que deberia ser placentero.
Me pasa igual, no me conectan este tipo de cursos.
1. Diagnóstico breve de la clase
2. Qué enseña realmente y qué solo aparenta enseñar
3. Contenidos de la clase
4. Vacíos, omisiones y riesgos pedagógicos
5. Evaluación por nivel
6. Aplicación real de lo aprendido
7. Qué más investigar y qué puede profundizarse más
8. Evidencia
9. Conclusión honesta
10. 5 preguntas avanzadas
Pregunta: ¿Cómo se integra el "Principio de pruebas tempranas" en un flujo de CI/CD donde el código se despliega varias veces al día? Respuesta: Mediante la automatización de pruebas unitarias y de integración en el pipeline, permitiendo feedback inmediato antes de cualquier despliegue. Elemento concreto: Principio tres: las pruebas tempranas ahorran tiempo y dinero. Por qué importa: Evita el cuello de botella del QA manual. Aplicación práctica: Integración de herramientas como Jest o JUnit en GitHub Actions. Ejemplo real: Un equipo de e-commerce que corre tests automáticos en cada pull request. Qué revela: La clase es insuficiente para entornos modernos de despliegue continuo. Aporte: Define la necesidad de automatización como extensión del principio.
Pregunta: Ante la "paradoja del pesticida", ¿qué métrica técnica permite identificar cuándo una suite de regresión ha perdido efectividad? Respuesta: La tasa de detección de defectos (Defect Detection Rate) en pruebas de regresión. Si tiende a cero, la suite es obsoleta. Elemento concreto: Principio cinco: la paradoja del pesticida. Por qué importa: Evita la falsa sensación de seguridad. Aplicación práctica: Dashboards de QA que trackean qué casos encuentran errores. Ejemplo real: Un sistema bancario que actualiza sus tests tras cada cambio de API. Qué revela: La clase omite la medición cuantitativa del testing. Aporte: Introduce el control de calidad basado en datos.
Pregunta: ¿Es posible aplicar el "Principio de pruebas exhaustivas imposibles" en sistemas críticos de seguridad (ej. software médico)? Respuesta: Sí, mediante el uso de métodos formales y pruebas basadas en modelos, que cubren estados críticos en lugar de combinaciones infinitas. Elemento concreto: Principio dos: las pruebas exhaustivas son imposibles. Por qué importa: Define el límite de la cobertura de pruebas. Aplicación práctica: Verificación formal de algoritmos. Ejemplo real: Software de control de marcapasos. Qué revela: La clase ignora la existencia de pruebas de alta rigurosidad. Aporte: Diferencia entre testing funcional y verificación formal.
Pregunta: ¿Cómo afecta el "Principio de dependencia del contexto" a la elección entre pruebas manuales y automatizadas? Respuesta: En contextos de alta incertidumbre (MVP), lo manual permite exploración rápida; en contextos estables, la automatización garantiza consistencia. Elemento concreto: Principio seis: el testing depende del contexto. Por qué importa: Optimiza la inversión en QA. Aplicación práctica: Selección de estrategia de testing según la etapa del producto. Ejemplo real: Startup lanzando un MVP vs. Banco actualizando su core. Qué revela: La clase es demasiado genérica. Aporte: Proporciona un criterio de decisión estratégico.
Pregunta: ¿Qué significa "validar que estamos construyendo lo correcto" en términos de métricas de negocio? Respuesta: Significa medir la adopción, el uso de funcionalidades y la satisfacción del usuario, no solo la ausencia de bugs. Elemento concreto: Principio siete: la falacia de la ausencia de errores. Por qué importa: Alinea el QA con el valor de negocio. Aplicación práctica: Pruebas de aceptación de usuario (UAT) y análisis de producto. Ejemplo real: Una app con 0 bugs pero con alta tasa de desinstalación por UX deficiente. Qué revela: La clase reconoce la limitación del QA tradicional. Aporte: Conecta QA con el éxito del producto.
11. 5 proyectos avanzados para practicar
Me llevo esto de la clase, gran aporte
Me gustría aprender a desarrollar este tipo de cursos.
¿Qué cursos debo hacer para aprender a realizar este formato de cursos?
No me molesta que el curso esté hecho con IA, porque al final lo que importa es el contenido y cómo lo explican. La verdad, explica bastante bien; incluso me sorprendió la calidad de los videos. Todavía se nota que están hechos con IA, pero están decentes.
Lo que sí me molesta mucho es la voz. Creo que la IA todavía no da para tanto en ese aspecto. Mi sugerencia sería que, al menos, la voz la haga una persona real mientras tanto.
¿Por qué es imposible probar absolutamente todo?
Porque las combinaciones matemáticas de variables, entornos y acciones de usuario crecen de forma exponencial, superando cualquier presupuesto o tiempo de desarrollo. Piensa en un simple campo de texto: puedes ingresar letras, números, emojis, scripts maliciosos o dejarlo en blanco. Si multiplicas esto por cada botón y pantalla de una plataforma, el número de escenarios es inabarcable.
En lugar de buscar una cobertura del 100%, debes adoptar una mentalidad basada en el riesgo. Evalúa dos variables clave: la probabilidad de que una sección falle (por ejemplo, código heredado o integraciones de terceros) y el impacto que tendría ese fallo en el negocio (como la caída de la pasarela de pagos). Al cruzar estos datos, sabrás exactamente dónde enfocar tus recursos. Tu objetivo no es certificar la perfección absoluta, sino garantizar que los flujos críticos funcionen impecablemente.
hiper exponencial
Podrían dejar de hacer vídeos con chagpt.
a mi me resulta indiferente ya que es para ilustrar las explicaciones
bug = bicho
Estaba esperando la actualización del Curso de Fundamentos de Pruebas de Software, ya que el anterior era del 2018. Es una lástima que hayan decidido hacer un curso completamente con IA en vez de recurrir a la experiencia de un docente en un área tan importante como es la calidad de software.
Es imposible garantizar que un software esté libre de bugs. Por eso existen 7 principios del testing, que ayudan a tomar decisiones inteligentes sobre qué probar, cuándo hacerlo y cómo priorizar. Estos principios permiten optimizar tiempo, costo y esfuerzo, enfocándose en lo que realmente importa: detectar riesgos relevantes y asegurar que el producto funcione para el usuario
⚡ Ideas clave para recordar
Who in 2026 Ready?
Si Platzi usa full IA para crear cursos, podemos usar solo IA para aprender.
🧪 PRINCIPIOS FUNDAMENTALES DEL TESTING DE SOFTWARE
━━━━━━━━━━━━━━━━━━━
🎯 OBJETIVO DEL TESTING
El testing NO busca demostrar que el software es perfecto.
Su verdadero propósito es:
✅ Reducir riesgos antes del lanzamiento.
✅ Detectar problemas importantes a tiempo.
✅ Aumentar la confianza en el producto.
💡 Lanzar con confianza significa:
➡️ Que el riesgo es aceptable.
━━━━━━━━━━━━━━━━━━━
1️⃣ EL TESTING NO DEMUESTRA AUSENCIA DE ERRORES
Aunque no aparezcan fallos:
❌ Eso NO significa que el sistema sea perfecto.
📌 IDEA CLAVE
Las pruebas solamente pueden demostrar:
🔹 Que se encontraron errores.
🔹 O que todavía no aparecieron.
🧠 EJEMPLO
👨🍳 Un inspector revisa alimentos y no detecta problemas.
❌ Pero eso NO garantiza que todo esté perfecto.
✅ CONCLUSIÓN
🎯 El objetivo real del testing es:
➡️ Reducir el riesgo a un nivel aceptable.
━━━━━━━━━━━━━━━━━━━
2️⃣ ES IMPOSIBLE PROBAR TODO
Un sistema posee demasiadas combinaciones posibles.
📌 EJEMPLO
Incluso un login puede variar por:
👤 Usuarios.
🔑 Contraseñas.
📱 Dispositivos.
🌐 Navegadores.
📶 Conexiones.
🔒 Permisos.
➡️ Las combinaciones crecen rápidamente.
❌ PROBLEMA
Probar absolutamente todo sería:
💸 Muy costoso.
🐢 Muy lento.
🚫 Prácticamente imposible.
✅ SOLUCIÓN
Se priorizan:
🔥 Áreas críticas.
⭐ Funciones importantes.
⚠️ Riesgos más altos.
━━━━━━━━━━━━━━━━━━━
3️⃣ DETECTAR ERRORES TEMPRANO AHORRA DINERO
Encontrar errores al inicio cuesta muchísimo menos.
💰 IMPACTO ECONÓMICO
Corregir un error temprano puede costar:
➡️ Hasta 20 veces menos.
📉 Que corregirlo después del lanzamiento.
👥 POR ESO LOS TESTERS PARTICIPAN DESDE:
📝 Planificación.
📋 Requisitos.
🏗️ Diseño.
✅ Criterios de aceptación.
🎯 BENEFICIO
✔️ Menos retrabajo.
✔️ Menos problemas en producción.
━━━━━━━━━━━━━━━━━━━
4️⃣ LOS ERRORES SUELEN CONCENTRARSE
La mayoría de los defectos aparece en pocas partes del sistema.
📌 REGLA 80/20
📊 80% de los errores.
➡️ Proviene del 20% del código.
🧠 EJEMPLO
🚗 Como los accidentes de tránsito:
🔹 Muchas calles tienen pocos accidentes.
🔹 Pocas intersecciones concentran la mayoría.
✅ APLICACIÓN EN TESTING
Conviene enfocar más pruebas en:
🔥 Módulos complejos.
⚡ Funciones críticas.
📍 Zonas con historial de errores.
━━━━━━━━━━━━━━━━━━━
5️⃣ PARADOJA DEL PESTICIDA
Repetir siempre las mismas pruebas hace que pierdan efectividad.
🧠 IDEA PRINCIPAL
💻 El software “aprende” a pasar esas pruebas.
🐛 Igual que los insectos se adaptan a un pesticida.
🚨 SEÑALES DE ALERTA
Hay que renovar pruebas cuando:
⚠️ Ya no aparecen errores nuevos.
⚠️ Existen áreas sin probar.
⚠️ Cambian los riesgos.
⚠️ Las pruebas no representan el uso real.
✅ SOLUCIÓN
Actualizar y variar continuamente:
🔄 Casos de prueba.
🧩 Escenarios.
📊 Datos utilizados.
━━━━━━━━━━━━━━━━━━━
6️⃣ EL TESTING DEPENDE DEL CONTEXTO
No existe una única forma correcta de probar software.
🎯 Cada sistema necesita estrategias diferentes.
📌 EJEMPLOS
🏥 SISTEMAS HOSPITALARIOS
✅ Controles estrictos.
✅ Alta precisión.
✅ Máxima confiabilidad.
✈️ SISTEMAS DE AVIACIÓN
🛡️ Seguridad extrema.
🔍 Validaciones rigurosas.
🚫 Tolerancia mínima a errores.
🚀 MVP (PRODUCTO MÍNIMO VIABLE)
⚡ Pruebas rápidas.
🎯 Foco en lo esencial.
🧪 Validación temprana del producto.
✅ IDEA CLAVE
El testing debe adaptarse:
🏢 Al negocio.
⚠️ Al riesgo.
👥 Al tipo de usuario.
💥 Al impacto del error.
━━━━━━━━━━━━━━━━━━━
7️⃣ POCOS ERRORES NO GARANTIZAN ÉXITO
Un sistema puede funcionar “bien” técnicamente y aun así fracasar.
❌ ¿POR QUÉ?
Porque quizá:
🚫 No resuelve el problema real.
😵 Es difícil de usar.
📉 No aporta valor.
🙍 No satisface al usuario.
✅ ENTONCES…
El testing también debe validar:
🎯 Si se está construyendo el producto correcto.
Yo me atreveria a decir que si se van a hacer cursos con IA uno mismo en un tiempo mas rápido que tarde va a poder crear cursos con IA mucho mas enfocados a la necesidad del momento. Los tiempos de aprender como si se tratara de una receta de cocina lineal y secuencial estan llegando a su fin. La velocidad a la que la IA adquiere informacion y puede compartirla en el momento mismo de la necesidad va a terminar por superar la forma de aprendizaje tradicional. Claramente la educacion como industria sufrira una disrrupcion en la proxima decada de manera brutal. Porque el paradigma competitivo se va a cumplir aquí al igual que otras Industrias. Diaria que es mas question de tiempo que de cualquier otra variable.