¿Cómo se explican las pruebas unitarias a un laico?

La prueba unitaria es probar los componentes de un programa de software de forma aislada. Las interacciones de prueba entre componentes generalmente se llaman pruebas de integración.

Una analogía de automóvil podría ser útil aquí. Las pruebas unitarias estarían probando el tanque de combustible por sí mismo (asegúrese de que no gotee, que contenga tanta gasolina como se supone que debe, que pueda soportar cambios de temperatura razonables
sin deformación, etc.), probando la radio por sí misma (funcionan los botones, capta una señal, etc.), y así sucesivamente. Las pruebas de integración consistirían en conducir el automóvil (cuando gira el volante, ¿giran las ruedas?),
asegurándose de que presionar el pedal del freno haga reaccionar las ruedas, etc.

Las pruebas de unidad de ejemplo para un programa de software probarían piezas muy pequeñas: la función X guarda los datos correctos en la base de datos, la función Y actualiza la contraseña del usuario, la función Z envía un correo electrónico, etc. Las pruebas de integración verificarían
todo el flujo (“cuando el usuario ingresa una nueva contraseña y hace clic en el botón ‘Aceptar’, ¿se cambia la contraseña en la base de datos y recibe un correo electrónico de confirmación?”)

Algunas respuestas realmente buenas ya; agregando mi respuesta y una perspectiva.

Respondiendo: ¿Cómo explicas las pruebas unitarias a un laico?

Hablemos de cocinar primero. Supongamos que quieres hacer una tortilla.

(Fuente de la imagen: IHOP)

Un desayuno, nada lujoso. Sin embargo, necesita algunos ingredientes, como huevos, leche, tocino, queso, tomates, sal …

Y aquí hay algunas cosas que [probablemente] inspeccionaría , evaluaría , verificaría , etc.

  • ¿Cuántos huevos? ¿Son frescos?
  • Que tipo de leche ¿Cuánto cuesta? ¿Está malcriado?
  • ¿Está limpio su tazón (para revolver)?
  • ¿Su sartén está suficientemente caliente? Cuando pones tocino?
  • Y así..

Cada vez que verificas, inspeccionas, evalúas, saboreas … estás probando . Estás haciendo observaciones y juicios mientras estás en el proceso de creación del producto. Estás probando tu trabajo y las unidades que comprenderán el producto. Estás haciendo una prueba unitaria en este sentido.

Pero tenga en cuenta que no está probando el producto .

En teoría, uno puede tratar de cocinar sin prestar atención al proceso y a los componentes, y probar el producto final, la tortilla, después, una vez finalizado.

Pero hay implicaciones:

  • Ciertamente lleva más tiempo hasta que los resultados de la evaluación;
  • Será demasiado tarde para tomar medidas correctivas;
  • Tampoco podrás responder al cambio;
  • Ciertos problemas (como la leche en mal estado o el tazón sucio) no se manifestarán inmediatamente después de la degustación, pero pueden tener graves consecuencias para la salud.

Todo eso se traduce bien en el desarrollo de software. Si desea ser eficaz y eficiente, entonces es necesario realizar pruebas unitarias.


Por supuesto, incluso las excelentes pruebas unitarias no pueden mitigar la ausencia de pruebas funcionales o deficientes [caja negra] . El último es un enfoque listo para usar: ¿Qué es la prueba de caja negra?

Las pruebas de recuadro negro pueden ayudar a evitar fallas al plantear preguntas como …

¿Estamos cocinando el orden correcto? Tal vez el cliente quería esto, pero ocurrió una falta de comunicación.

(Fuente de la imagen: IHOP)


¡Gracias por leer!

  • Si te gustó esta respuesta, vota y sígueme
  • Si lo encuentra útil, por favor comparta con otros
  • ¿No estás de acuerdo o no te gustó? ¡Dispárame un comentario! Estoy seguro de que hay un margen de mejora.

Aquí está la definición (que parece ser universalmente aceptada) sobre quién es un laico: una persona sin conocimiento profesional o especializado en un tema en particular .

Ahora, mi madre también es un laico (wo) y no entiende los automóviles y la mecánica y todo eso. Por lo tanto, aprovecho esta oportunidad y les doy la bienvenida a los evaluadores para que reconozcan que asumir que todo el mundo sabe acerca de la analogía del automóvil es una prueba en sí misma. Es como suponer que todos los usuarios son iguales.

El primer pensamiento que me vino a la mente es: ¿por qué explicar las pruebas unitarias a un laico? ¿Cómo les ayuda o te ayuda? La segunda es: ¿por qué asumir que las pruebas unitarias siempre se refieren a las pruebas unitarias de software?

Incluso si estuviera en una posición de explicarle las pruebas unitarias a un laico, miraría o escucharía lo que hacen y trataría de usar ejemplos de lo que hacen para explicar sobre las pruebas unitarias y decirles: “Usted también lo hace. Solo que no sabías que se llama prueba unitaria “(por nosotros, amigos del software). Para explicarle la prueba unitaria a mi madre, usaría ejemplos de cómo cocina la comida después de saber qué analogía le conviene. Por ejemplo, la apoyaría en la cocina y la vería inspeccionar la frescura de un vegetal específico porque contribuye a cómo será el producto final (alimento) pero debe probarse antes de que se mezcle con otros ingredientes porque si no No hagas eso, será difícil para ella saber qué ingrediente echó a perder la comida. Entonces dile: yo también lo hago, yo lo llamo prueba unitaria.

Enfoque impulsado por el contexto!