El principal beneficio de las pruebas unitarias es verificar las regresiones.
El punto no es probar que el código hace lo que se supone que debe hacer. Las pruebas funcionales se acercan a este objetivo porque esas pruebas se definen en un nivel mucho más alto, más cercano a la especificación.
Las pruebas unitarias tampoco ayudan mucho a encontrar problemas en el código. Si el programador que escribe la prueba es el mismo que escribió el código de producción (generalmente el caso), es probable que existan los mismos errores en ambos lugares. Usted obtiene algún beneficio de la “contabilidad de doble entrada”, pero las linters, los compiladores y los sistemas de tipo estático hacen innecesarias muchas preocupaciones.
- ¿Qué es una lista de compañías en el Área de la Bahía que contratan ingenieros de software que tienen poca experiencia (2 años) pero son buenos para resolver problemas?
- ¿Qué recomendaría como una buena computadora portátil para un ingeniero o programador de software de nivel básico?
- ¿Cuáles son los mejores equipos de ingenieros de software en Google?
- ¿Siento que otros ingenieros de software están ocultando cómo obtuvieron tanta información de mí?
- ¿Podría literalmente alguien convertirse en ingeniero de software y hacer 6 figuras?
Cuando desea refactorizar su código (limpiarlo sin cambiar su comportamiento), las pruebas unitarias responden a la pregunta: ¿Mi código se comporta exactamente de la misma manera que la última vez que ejecuté las pruebas? Cuando desea agregar una nueva función y le preocupa que pueda romper accidentalmente una parte diferente del código, las pruebas unitarias pueden asegurarle que no tiene nada de qué preocuparse.
Las pruebas de regresión solo funcionan si confía en sus pruebas. Entonces, si desea obtener los beneficios que describí, debe poner el mismo trabajo en las pruebas, y eso lleva tiempo. Recuperará ese tiempo diez veces más con el tiempo ahorrado durante el mantenimiento.