testing - tipos - ¿Cuál es la diferencia entre las pruebas de integración y las pruebas funcionales?
tipos de pruebas de integracion (12)
¿Las pruebas funcionales y las pruebas de integración son las mismas?
Comience su prueba a través de pruebas unitarias, luego, después de completar la prueba unitaria, realizará las pruebas de integración en las que probará el sistema como un todo. ¿Las pruebas funcionales son las mismas que las pruebas de integración? Todavía está tomando el sistema como un todo y probándolo para la conformidad de la funcionalidad.
En un comprobador de pruebas funcional, solo se enfoca en la funcionalidad y la sub funcionalidad de la aplicación. La funcionalidad de la aplicación debería funcionar correctamente o no.
En la prueba de integración, el probador debe verificar la dependencia entre los módulos o submódulos. El ejemplo de los registros de los módulos debe buscarse y mostrarse correctamente en otro módulo.
En una cáscara de nuez ...
Las pruebas funcionales se centraron principalmente en la función del módulo o flujo del módulo, donde las pruebas de integración se centraron en la integración de los módulos de nuestra aplicación
Esta es una distinción importante, pero desafortunadamente nunca encontrarás un acuerdo. El problema es que la mayoría de los desarrolladores los definen desde su propio punto de vista. Es muy similar al debate sobre Plutón. (Si estuviera más cerca del Sol, ¿sería un planeta?)
La prueba unitaria es fácil de definir. Prueba el CUT ( Código bajo prueba ) y nada más. (Bueno, lo menos posible). Eso significa burlas, falsificaciones y accesorios.
En el otro extremo del espectro, hay lo que mucha gente llama pruebas de integración de sistemas . Eso es probar tanto como sea posible, pero sigue buscando errores en su propia CUT.
Pero, ¿qué hay de la vasta extensión entre?
- Por ejemplo, ¿qué pasa si prueba un poco más que la CUT? ¿Qué sucede si incluye una función de Fibonacci, en lugar de utilizar un dispositivo que usted había inyectado? Llamaría a eso pruebas funcionales , pero el mundo no está de acuerdo conmigo.
- ¿Qué pasa si incluye
time()
orand()
? ¿O qué pasa si llamas ahttp://google.com
? Yo llamaría a ese sistema de prueba , pero de nuevo, estoy solo.
¿Por qué importa esto? Porque las pruebas del sistema no son confiables. Son necesarios, pero a veces fallarán por razones que escapan a su control. Por otro lado, las pruebas funcionales siempre deben pasar, no fallar al azar; si son rápidos, también podrían usarse desde el principio para usar Desarrollo basado en pruebas sin escribir demasiadas pruebas para su implementación interna. En otras palabras, creo que las pruebas unitarias pueden ser más problemáticas de lo que valen, y tengo buena compañía .
Puse pruebas en 3 ejes, con todos sus ceros en pruebas unitarias :
- Pruebas funcionales: utilizando código real cada vez más profundo en su pila de llamadas.
- Pruebas de integración: más y más alto en tu pila de llamadas; en otras palabras, probando su CUT ejecutando el código que lo usaría.
- Pruebas del sistema: operaciones cada vez más irrepetibles (programador O / S, reloj, red, etc. )
Una prueba puede ser fácilmente las 3, en diversos grados.
La comprobación de la funcionalidad de la aplicación generalmente se conoce como pruebas funcionales, mientras que la prueba de integración consiste en verificar el flujo de datos de un módulo a otro. Tomemos el ejemplo de la aplicación de transferencia de dinero. Supongamos que tenemos una página en la cual ingresamos todas las credenciales y si presionamos el botón de transferencia y luego si tenemos algún éxito, entonces esta es una prueba funcional. Pero en el mismo ejemplo si verificamos la transferencia de cantidad, entonces es una prueba de integración.
La prueba de integración es cuando prueba más de un componente y cómo funcionan juntos. Por ejemplo, cómo otro sistema interactúa con su sistema o si la base de datos interactúa con su capa de abstracción de datos. Por lo general, esto requiere un sistema completamente instalado, aunque en sus formas más puras no es así.
La prueba funcional es cuando prueba el sistema contra los requisitos funcionales del producto. La gestión de productos / proyectos generalmente los escribe y la garantía de calidad formaliza el proceso de lo que un usuario debería ver y experimentar, y cuál debería ser el resultado final de esos procesos. Dependiendo del producto esto puede ser automatizado o no.
Los autores divergen mucho sobre esto. No creo que haya "la" interpretación correcta para esto. Realmente depende.
Por ejemplo: la mayoría de los desarrolladores de Rails consideran pruebas unitarias como pruebas de modelo, pruebas funcionales como pruebas de controlador y pruebas de integración como las que usan algo como Capybara para explorar la aplicación desde la perspectiva del usuario final, es decir, navegando por el HTML generado de la página para verificar las expectativas
También hay pruebas de aceptación, que a su vez son una documentación "en vivo" del sistema (generalmente usan Gherkin para que sea posible escribirlas en lenguaje natural), describiendo todas las características de la aplicación a través de múltiples escenarios, que a su vez son automatizados. por un desarrollador. Esos, en mi humilde opinión, también podrían considerarse pruebas funcionales y pruebas de integración.
Una vez que comprenda el concepto clave detrás de cada uno de ellos, tendrá que ser más flexible con respecto a lo correcto o incorrecto. Así que, de nuevo en mi humilde opinión, una prueba funcional también podría considerarse una prueba de integración. Para la prueba de integración, dependiendo del tipo de integración que realice, puede que no se considere una prueba funcional, pero generalmente tiene algunos requisitos en mente cuando está escribiendo una prueba de integración, por lo que la mayoría de las veces también puede ser considerada como una prueba funcional.
Prueba de integración: - Cuando se realizan las pruebas de la unidad y los problemas se resuelven para los componentes relacionados, entonces todos los componentes necesarios deben integrarse en un solo sistema para que pueda realizar una operación. Después de combinar los componentes del sistema, para probar que el sistema funcione correctamente o no, este tipo de prueba se denomina Prueba de integración.
Pruebas funcionales: - Las pruebas se dividen principalmente en dos categorías como 1. Pruebas funcionales 2. Pruebas no funcionales ** Pruebas funcionales: - Para comprobar si el software funciona de acuerdo con los requisitos del usuario o no. ** Pruebas no funcionales: - Para probar si el software cumple con los criterios de calidad como prueba de esfuerzo, prueba de seguridad, etc.
Por lo general, el Cliente proporcionará los requisitos para la Prueba funcional únicamente y para la Prueba no funcional. No se deben mencionar los Requisitos, pero la aplicación necesariamente realiza esa actividad.
Pruebas de integración: las pruebas de integración no son más que la prueba de diferentes módulos. Tienes que probar la relación entre los módulos. Por ejemplo, si abre Facebook, ve la página de inicio de sesión después de ingresar la identificación y contraseña de inicio de sesión, puede ver la página de inicio de Facebook, por lo tanto, la página de inicio de sesión es un módulo y la página de inicio es otro módulo. debe verificar solo la relación entre ellos significa que cuando inició sesión, solo la página de inicio debe estar abierta, no en el cuadro de mensaje o en cualquier otra cosa. Hay 2 tipos principales de pruebas de integración enfoque TOP-DOWN y enfoque BOTTOM UP.
Pruebas funcionales: en las pruebas funcionales, solo debe pensar en la entrada y la salida. En este caso, debes pensar como un usuario real. La prueba de qué entrada dio y qué resultado obtuvo es la prueba funcional. solo debes observar la salida. En las pruebas funcionales, no es necesario que pruebe la codificación de la aplicación o el software.
Pruebas funcionales: es un proceso de prueba donde se prueban todos y cada uno de los componentes del módulo. Por ejemplo: si una página web contiene un campo de texto, botones de radio, botones y elementos desplegables, etc., deben verificarse.
Pruebas de integración: Proceso donde se verifica el flujo de datos entre 2 módulos.
Yo diría que ambos están estrechamente vinculados entre sí y muy difíciles de distinguir entre ellos. En mi opinión, las pruebas de integración son un subconjunto de pruebas funcionales.
Las pruebas de funcionalidad se basan en los requisitos iniciales que recibe. Comprobará que el comportamiento de la aplicación es el esperado con los requisitos.
Cuando se trata de pruebas de integración, es la interacción entre módulos. Si un módulo envía una entrada, el módulo B puede procesarlo o no.
Pruebas de integración
Prueba Funcional
Prueba Funcional :
Sí, estamos probando el producto o el software como un todo funcionalmente, ya sea que funcione funcionalmente o no (probando botones, enlaces, etc.)
Por ejemplo: página de inicio de sesión.
usted proporciona el nombre de usuario y la contraseña, prueba si lo lleva a la página de inicio o no.
Pruebas de integración :
Sí, prueba solo el software integrado, pero prueba dónde está pasando el flujo de datos y si hay cambios en la base de datos.
Por ejemplo: envío de correo electrónico
Envía un correo a alguien, hay un flujo de datos y también un cambio en la base de datos (la tabla enviada aumenta el valor en 1)
Recuerde: hacer clic en enlaces e imágenes no es una prueba de integración. Espero que haya entendido por qué, porque no hay cambios en la base de datos simplemente haciendo clic en un enlace.
Espero que esto te haya ayudado.