what is thread testing software testing
Este tutorial explica qué son las pruebas de subprocesos, cuándo y cómo realizarlas, los tipos de pruebas basadas en subprocesos y los desafíos a los que se enfrentan:
La prueba de subprocesos es una técnica de prueba de software que se utiliza para probar las aplicaciones que están basadas en el servidor del cliente.
Las pruebas basadas en subprocesos deben realizarse en las etapas iniciales de las pruebas de integración para que las funciones clave se puedan probar / verificar para una tarea / programa o subproceso específico.
Lo que vas a aprender:
- Por qué Thread Testing
- Cuándo y cómo se realizan las pruebas de hilo
- Tipos de pruebas basadas en subprocesos
- Diferencia entre hilo y procesos
- Diferencia entre pruebas basadas en subprocesos y basadas en usuarios
- Conclusión
Por qué Thread Testing
Cuando los componentes están integrados, es necesario verificar si el sistema funcionará como se esperaba o no y si todas las transacciones se realizarían según el requisito o no. Por lo tanto, las pruebas basadas en subprocesos vienen a probar lo mismo.
Esta prueba se realiza integrando los subprocesos progresivamente en todos los niveles desde el subsistema hasta el sistema completo, es decir, todo el sistema. Todas las actividades del sistema avanzan solo con los hilos.
La definición de subprocesos ayuda a compartir el fondo funcional y los detalles de ejecución de subprocesos entre los desarrolladores y los desarrolladores para los probadores.
Acerca de los hilos
Un hilo es el flujo de control en un proceso. Es la tarea más pequeña del sistema que se puede ejecutar.
solicitando promoción en muestra de tasación
Ejemplo
Un navegador web puede tener uno o más subprocesos en ejecución, a saber. un hilo para mostrar imágenes y texto y otro hilo para recuperar datos. En ciertos casos, se debe requerir una sola aplicación para atender todos los procesos.
La creación de subprocesos múltiples es la mejor solución para el mismo; de lo contrario, el cliente enviará varias solicitudes al servidor y tomará tiempo reconocer las solicitudes una por una. Multi-thread ayudará a responder a las solicitudes simultáneamente.
Cuándo y cómo se realizan las pruebas de hilo
Debe realizarse en la etapa inicial de la prueba de integración del sistema.
Las pruebas de integración se realizan integrando diferentes módulos de forma planificada. Para el mismo se sigue el plan de integración que especifica el orden en el que se integrarán los módulos para hacer el sistema completo.
A continuación se enumeran las técnicas para ejecutar las pruebas de integración:
- Enfoque Big-Bang
- Enfoque de arriba hacia abajo
- Enfoque de abajo hacia arriba
- Enfoque mixto
Veamos cada técnica en detalle.
# 1) Enfoque del Big-Bang
El enfoque del Big Bang se utiliza solo para sistemas pequeños, ya que todos los módulos están integrados y probados en una sola pasada.
Cualquier problema encontrado durante este enfoque es difícil de localizar, ya que el problema puede provenir de cualquiera de los módulos integrados. Por lo tanto, los problemas de depuración encontrados son muy costosos de solucionar con este enfoque.
# 2) Enfoque de arriba hacia abajo
El enfoque de arriba hacia abajo se realiza utilizando los stubs, es decir, una vez que se ha probado el módulo de nivel superior, las subrutinas inmediatas se integran y prueban.
Los stubs son los programas que simulan el efecto de las rutinas de nivel inferior y son llamados por las rutinas bajo prueba. La prueba de subprocesos utiliza un enfoque de arriba hacia abajo.
# 3) Enfoque de abajo hacia arriba
En el enfoque de abajo hacia arriba, todos los subsistemas se prueban individualmente y luego se prueba el sistema completo. La razón detrás de probar todos los subsistemas por separado es probar la interfaz entre todos los módulos que forman parte del subsistema.
Esta técnica requiere controladores de prueba, es decir, el programa que llama a los otros módulos y proporciona la misma salida que el producto real.
# 4) Prueba de integración mixta
Esta técnica es una combinación de enfoques de arriba hacia abajo y de abajo hacia arriba. Por lo tanto, se denomina Prueba de integración mixta.
Puntos clave para realizar pruebas basadas en subprocesos
- Mientras se realizan pruebas de subprocesos, se integran y se prueban subprocesos o pequeñas funciones. Las pruebas realizadas son pruebas incrementales a nivel de subsistema y luego como un sistema completo.
- En la etapa inicial, los probadores de integración obtienen una buena idea y el conocimiento de qué probar más.
- Los probadores de integración deben aplicar y ejecutar escenarios tanto positivos como negativos dentro de los límites del hilo únicamente. Tienen que decidir sobre un enfoque de prueba de subprocesos a seguir para cubrir casos excepcionales y casos límite también.
- La definición de subproceso proporcionada por el desarrollador al probador ayuda a probar el subproceso en consecuencia por los probadores integradores. Cualquier información adicional requerida por el probador se puede responder en el proceso de revisión de hilos.
- Los procesos de subprocesos funcionan para los procesos de integración en lugar de para el proceso de desarrollo de un extremo al otro.
- Para probar la funcionalidad de múltiples subprocesos, permita que las múltiples instancias de la aplicación o el programa que se probarán estén activas al mismo tiempo.
- Ejecute el programa multiproceso en hardware diferente.
- La prueba de subprocesos es una forma de prueba de sesión para la que las sesiones están formadas por subprocesos. No es necesario que un hilo formado sea una sesión.
Tipos de pruebas basadas en subprocesos
Se realizan dos tipos de pruebas basadas en subprocesos:
- Prueba de un solo hilo
- Prueba de subprocesos múltiples
# 1) Prueba de un solo hilo
La prueba de un solo hilo prueba una transacción a la vez. El tiempo de espera para que el cliente obtenga una respuesta a su solicitud podría ser un poco más largo, ya que podrá atender o responder a un cliente a la vez.
Esta prueba ayuda al evaluador a comprender y probar la lógica del programa o el código escrito.
# 2) Prueba de subprocesos múltiples
Las pruebas de subprocesos múltiples prueban varias transacciones activas al mismo tiempo. En este caso, se crean subprocesos separados para las solicitudes del cliente. Siempre que se realiza una solicitud, se crea un hilo para el servicio o responde a la solicitud.
Una transacción que funcionaba bien en la prueba de un solo subproceso puede fallar mientras se prueba en varios subprocesos y también puede interferir con otros subprocesos y funcionalidades y hacer que funcionen como se esperaba.
¿Es un enfoque de subprocesos múltiples mejor que un enfoque de un solo subproceso?
Las aplicaciones de subprocesos múltiples son mejores que las de un solo subproceso, ya que mejoran el rendimiento de la aplicación. El subproceso múltiple permite que varios recursos trabajen en un problema / solicitud al mismo tiempo.
Desafíos al realizar pruebas basadas en subprocesos
Al realizar pruebas basadas en subprocesos, el evaluador se enfrenta a varios desafíos que afectan el rendimiento, el tiempo y el costo de las pruebas.
- Escribir casos de prueba unitarios para código multiproceso es un desafío.
- Cuando se realizan pruebas de subprocesos múltiples en hardware diferente, varía según el tamaño, la capacidad de almacenamiento, la memoria, los problemas, etc.
- Los escenarios de prueba para subprocesos únicos y subprocesos múltiples son diferentes.
- En la prueba de múltiples subprocesos, se deben programar pruebas reproducibles para pruebas unitarias.
Ventajas / Desventajas de Multi-Threading
El multihilo tiene muchas ventajas y desventajas. Como evaluador, saber lo mismo les ayuda a probar y romper el proceso de prueba en consecuencia.
Ventajas
- El subproceso múltiple aumenta la capacidad de respuesta del usuario. La aplicación puede dejar que el programa se ejecute incluso si se bloquea parte de la aplicación.
- El uso compartido de recursos es otra ventaja, ya que los subprocesos comparten los recursos del proceso al que están relacionados o pertenecen.
- La creación de subprocesos es económica, ya que comparte los recursos a los que pertenecen.
Desventajas
- Proceso de prueba complejo
- Los resultados son muy impredecibles.
- Escribir un programa se vuelve más difícil.
- Ocurrencia de interbloqueo.
¿Qué es el punto muerto?
Cuando se realiza el subproceso múltiple, el subproceso entra en un estado de espera si el recurso no está disponible.
Es posible que el estado de espera no cambie para el subproceso, ya que el recurso solicitado se encuentra en otros subprocesos en espera. Cuando surge una situación así, se llama Deadlock.
Diferencia entre hilo y procesos
Entendamos las diferencias entre subprocesos y procesos:
S.No | Hilo | Proceso |
---|---|---|
7 | Los hilos no se pueden dividir más. | Los procesos pueden tener varios subprocesos. |
1 | El hilo es un proceso ligero. | El proceso es un proceso pesado. |
2 | Si el hilo del servidor se bloquea, se puede ejecutar un segundo hilo de la misma tarea y completar el proceso. | Si el proceso del servidor se bloquea, otros procesos no se pueden ejecutar hasta el momento en que se desbloquea el proceso del servidor bloqueado. |
3 | Los hilos no aíslan, comparten memoria. | El proceso está aislado. |
4 | La creación de hilos, el cambio de contexto, la terminación lleva menos tiempo en el hilo. | La creación de hilos, el cambio de contexto y la terminación llevan más tiempo en los procesos. |
5 | El hilo se refiere a la tarea específica de un proceso. | El proceso se refiere a la ejecución de cualquier programa. |
6 | Los recursos utilizados son muy pocos en el hilo. | Los recursos utilizados en los procesos son más. |
Diferencia entre pruebas basadas en subprocesos y basadas en usuarios
S.No. | Pruebas basadas en subprocesos | Pruebas basadas en el uso |
---|---|---|
1 | Los hilos se integran y prueban individualmente. | Las pruebas comienzan con clases que no dependen unas de otras, es decir, son independientes. |
2 | La prueba de regresión se realiza para asegurarse de que nada se vea afectado. | Una vez que se realizan las pruebas de clases independientes, se prueban las clases dependientes. Los dependientes son los que dependen de las clases independientes. Esta serie continúa hasta el momento en que se construye el sistema completo. |
3 | Las pruebas basadas en subprocesos integran las clases que son esenciales para reconocer la entrada o el evento del sistema. | Las pruebas basadas en el uso integran las clases que son esenciales para responder o reconocer el caso de uso. |
Preguntas frecuentes
P # 1) ¿Qué es Thread Testing?
Responder: Las pruebas basadas en subprocesos son una metodología que se realiza durante la fase inicial de las pruebas de integración. Los subprocesos o programas se integran y prueban de forma incremental en un subsistema y luego como un sistema completo.
P # 2) ¿Qué prueba se realiza primero?
Responder : Por lo general, la prueba ascendente se realiza primero y luego se realiza la prueba descendente.
P # 3) ¿Qué son las pruebas descendentes?
Responder: Top-down es una técnica de prueba de integración en la que las pruebas se realizan utilizando stubs, es decir, cuando los componentes de nivel inferior aún no están listos para probar la integración, se crean stubs (módulos temporales) para obtener el mismo resultado que en el caso de los módulos reales.
sitios web para ver anime gratis en inglés
Conclusión
Las pruebas de integración basadas en subprocesos juegan un papel importante en la prueba de las principales funcionalidades o la tarea o subproceso específico. Esta metodología es la mejor para la arquitectura basada en servidor de cliente.
Mientras realiza la prueba de hilo, el probador tiene que enfrentar muchos desafíos, sin embargo, también tiene muchas ventajas que lo hacen fácil y confiable de realizar. Permitió a los probadores probar todas las transacciones y verificar si funciona como se esperaba y según el requisito.
Es imposible probar todas las transacciones / eventos para completar la prueba de subprocesos, por lo que se divide en tipos de subprocesos únicos y múltiples.
Lectura recomendada
- Elegir las pruebas de software como carrera
- Algunas preguntas interesantes de la entrevista sobre pruebas de software
- ¿Es la prueba de software una tarea emocional?
- Java Synchronized: ¿Qué es la sincronización de subprocesos en Java?
- Hilos de Java con métodos y ciclo de vida
- Múltiples subprocesos en C ++ con ejemplos
- Multithreading en Java - Tutorial con ejemplos
- Thread.Sleep () - Método Thread Sleep () en Java con ejemplos