¿Estás probando las cosas correctas? ¿Estás cubriendo los flujos que aportan más valor a la empresa? Entonces, ¿cómo puedes abordar tus pruebas, cómo puedes escribir menos pruebas y obtener una mayor confianza? Así que, nuevamente, supongo que al menos has escuchado, o incluso tal vez ya estás aplicando el trofeo de pruebas. Se promueve y se hizo popular después de que Kent C. Dodds, creo, escribiera un artículo al respecto y ahora imparte capacitaciones al respecto. Pero básicamente, la idea principal del trofeo de pruebas es ayudarte a enfocarte en escribir las pruebas correctas. Si ves que cada prueba tiene su costo y te brinda cierto nivel de confianza, y tiene cierta velocidad.
Entonces, las pruebas unitarias tienen un costo muy bajo, ¿verdad? Es muy fácil escribir pruebas unitarias, especialmente hoy en día que tenemos GPT, puedes preguntar y generará pruebas unitarias automáticamente. Te brindan, diría yo, una confianza promedio porque si solo tienes pruebas unitarias, es posible que no sea suficiente para implementar automáticamente, pero la velocidad es muy alta. Puedes ejecutarlas más rápido. Por otro lado, las pruebas de extremo a extremo. El costo para ellas es muy alto porque no solo es el costo de escribir la prueba de extremo a extremo, sino también mantenerla a largo plazo. Necesitas una infraestructura especial, necesitas un entorno especial donde debes ejecutarlas, ese entorno debe ser estable. Pero te brinda una confianza muy alta. Si tu prueba de extremo a extremo está en verde, tienes mucha confianza de que todo funciona como se espera, pero la velocidad es baja, ¿verdad? En algún punto intermedio están las pruebas de integración. El costo para ellas es muy similar al de las pruebas unitarias, te brindan una muy buena confianza. Diría que, en mi experiencia, solo tener pruebas de integración a veces es suficiente y puedes prescindir de las pruebas de extremo a extremo y su velocidad sigue siendo alta. Y puedes ver que en este trofeo de pruebas, se enfatiza que la cantidad de pruebas de integración debe superar la cantidad de pruebas de extremo a extremo y pruebas unitarias.
Entonces, ¿cómo abordas esto? Paso número cero. ¿Recuerdas? Puedes habilitar linters estáticos y verificaciones de tipo. Es gratis, ¿verdad? Todos deberían hacerlo. Paso número uno. Comienzas escribiendo pruebas de integración. Intentas escribir pruebas de integración para cada flujo feliz y no feliz. Luego verificas la cobertura de tus pruebas. Identificas, ok, tal vez hay algunos casos de borde para los cuales no tiene sentido escribir una prueba de integración, puedes escribir una prueba unitaria para cubrirlos. O tal vez dentro de tu aplicación, hay algún código reutilizable que utilizas en varias partes. Entonces, tal vez lo consideres como una biblioteca. Entonces, también tiene sentido escribir pruebas unitarias para eso. Y por último, en términos de pruebas, habla con tu equipo de negocios, habla con tu producto. Pídeles que identifiquen los flujos críticos para el negocio.
Comments