A la pregunta Am I unit testing or integration testing? He respondido, un poco provocativo: Do your test and let other people spend time with taxonomy.Prueba: unidad vs. integración vs. otros, ¿cuál es la necesidad de separación?
Para mí, la distinción entre varios niveles de prueba es técnicamente inútil: a menudo se usan las mismas herramientas, se necesitan las mismas habilidades, se debe alcanzar el mismo objetivo: eliminar fallas de software. Al mismo tiempo, puedo entender que los flujos de trabajo tradicionales, que la mayoría de los desarrolladores usan, necesitan esta distinción. Simplemente no me siento a gusto con los flujos de trabajo tradicionales.
Pensé que mi respuesta sería fuertemente negativa o altamente votada. De hecho ambos ocurrieron, con cinco upvotes y cuatro downvotes. Incluso el primer comentario fue un poco vacilante (¡gracias por tu voto positivo por cierto!).
Por lo tanto, mi pregunta tiene como objetivo comprender mejor lo que me parece una controversia y reunir varios puntos de vista sobre si esta separación entre los diferentes niveles de prueba es relevante o no.
¿Mi opinión es incorrecta? ¿Existen otros flujos de trabajo que no enfatizan en esta separación (tal vez métodos ágiles)? ¿Cuál es su experiencia sobre el tema?
Precisión: Estoy perfectamente al tanto de las definiciones (para los que no, vea this question). Creo que no necesito una lección sobre pruebas de software. Pero no dude en proporcionar algunos antecedentes si su respuesta lo requiere.
Si entiendo correctamente, construyes tus grupos de prueba de acuerdo a qué tan rápido son y cuantas veces los ejecutas. Creo que este es un buen punto, gracias. – mouviciel
+1 Mientras más tiempo se ejecuten las pruebas, es menos probable que un desarrollador ejecute el conjunto de pruebas. –
Interesante. Así que tal vez no queremos diferenciar entre 'unidad/integración/funcional', sino más bien entre 'rápido' y 'lento' independientemente del nivel de abstracción percibido de la prueba. Podría ser un paradigma más poderoso ya que algunas aplicaciones simples (cli) podrían no tener pruebas lentas y la diferenciación entre las pruebas de bajo nivel (unidad) y las pruebas de alto nivel (integración/funcional) en ellas sería un ejercicio de taxonomía inútil. – PSkocik