Las pruebas unitarias y las pruebas funcionales tienen dos resultados diferentes.
La Prueba de la unidad comprueba que un pequeño código funciona como se esperaba. Por lo general, el desarrollador lo hace para garantizar que el código funcione correctamente. Por lo general, también están automatizados por un marco de prueba.
La Prueba funcional verifica que una característica funciona como se esperaba al pasar por una determinada ruta a través del programa. Por lo general, son ejecutados por una persona en el software que garantiza que el programa funcionará de la manera que se supone que debe ser para el usuario. Es, como tal, un nivel más alto, y por lo tanto prueba varias unidades a la vez.
Creo que ambos son importantes. Sin embargo, si tiene recursos limitados y tiene que elegir/elegir técnicas, y creo que depende de los productos que crea, pero para lo que hago (productos de control automotriz usados por humanos a través de algunos botones) las pruebas funcionales son las más importantes. Comprueba y asegura que cuando el usuario obtiene el producto, hace lo que se supone que debe hacer. Esto no significa que debemos optar por no participar en las pruebas unitarias, pero si el empuje viene a empujar, el más funcional es el más importante para garantizar una gran experiencia de usuario y sacar el producto a la calle.
Si produce, por ejemplo, un motor de base de datos (u otro producto que no necesariamente esté orientado al usuario), la prueba de unidad puede ser lo que realmente debería hacer.
¿Pruebas funcionales == pruebas de integración? –
Todo el mundo tiene una muy buena respuesta a mi pregunta y aporta la claridad adecuada a las explicaciones presentadas. ¡Gracias a todos! Elegí la respuesta de @ TrueWill ya que proporciona referencias, además de lo que todos ustedes dijeron. Por favor, sepan que todos elevé sus respuestas, volví a leer y volví a leer sus respuestas para comprender completamente sus puntos. ¡Gracias! –
@JoshKodroff, no del todo (aunque encontrará diferentes opiniones y definiciones). Las pruebas funcionales, tal como lo entiendo, prueban el comportamiento esperado para un caso de uso, sin tener demasiado en cuenta lo que está sucediendo detrás de escena. Prueba unidades de código trabajando juntas que ya están probadas por unidades. Las pruebas de integración, por otro lado, prueban que todo funciona correctamente de principio a fin con entradas y salidas realistas. Creo que las pruebas de integración se burlarán mucho menos de las dependencias externas y las fuentes de datos, y realmente harán el trabajo que ocurriría en la aplicación real. – hotshot309