Prueba de caja blanca
White Box Testing es una técnica de prueba de software en la que se prueba la estructura interna, el diseño y la codificación del software para verificar el flujo de entrada-salida y mejorar el diseño, la usabilidad y la seguridad. En las pruebas de caja blanca, el código es visible para los probadores, por lo que también se denomina prueba de caja transparente, prueba de caja abierta, prueba de caja transparente, prueba basada en código y prueba de caja de vidrio.
Es una de las dos partes del enfoque de Box Testing para las pruebas de software. Su contraparte, Blackbox testing, implica realizar pruebas desde una perspectiva de tipo externo o de usuario final. Por otro lado, las pruebas de caja blanca en la ingeniería de software se basan en el funcionamiento interno de una aplicación y giran en torno a las pruebas internas.
El término "WhiteBox" se utilizó debido al concepto de caja transparente. El cuadro transparente o el nombre de WhiteBox simboliza la capacidad de ver a través de la capa exterior (o "caja") del software en su funcionamiento interno. Del mismo modo, la "caja negra" en "Prueba de caja negra" simboliza no poder ver el funcionamiento interno del software, de modo que solo se puede probar la experiencia del usuario final.
En este tutorial de prueba de caja blanca, aprenderá:
- ¿Qué son las pruebas de caja blanca?
- ¿Qué verifica en White Box Testing?
- ¿Cómo se realizan las pruebas de caja blanca?
- Ejemplo de prueba de WhiteBox
- Técnicas de prueba de caja blanca
- Tipos de pruebas de caja blanca
- Herramientas de prueba de caja blanca
- Ventajas de las pruebas de caja blanca
- Desventajas de las pruebas de WhiteBox
¿Qué verifica en White Box Testing?
La prueba de caja blanca implica la prueba del código de software para lo siguiente:
- Agujeros de seguridad internos
- Rutas rotas o mal estructuradas en los procesos de codificación
- El flujo de entradas específicas a través del código.
- Rendimiento esperado
- La funcionalidad de los bucles condicionales.
- Prueba de cada declaración, objeto y función de forma individual
Las pruebas se pueden realizar a nivel de sistema, integración y unidad de desarrollo de software. Uno de los objetivos básicos de las pruebas de caja blanca es verificar el flujo de trabajo de una aplicación. Implica probar una serie de entradas predefinidas contra salidas esperadas o deseadas para que cuando una entrada específica no dé como resultado la salida esperada, haya encontrado un error.
Haga clic aquí si el video no es accesible
¿Cómo se realizan las pruebas de caja blanca?
Para darle una explicación simplificada de la prueba de caja blanca, la hemos dividido en dos pasos básicos . Esto es lo que hacen los probadores cuando prueban una aplicación utilizando la técnica de prueba de caja blanca:
PASO 1) COMPRENDER EL CÓDIGO FUENTE
Lo primero que suele hacer un evaluador es aprender y comprender el código fuente de la aplicación. Dado que las pruebas de caja blanca implican la prueba del funcionamiento interno de una aplicación, el evaluador debe tener un gran conocimiento de los lenguajes de programación utilizados en las aplicaciones que está probando. Además, la persona que realiza la prueba debe ser muy consciente de las prácticas de codificación segura. La seguridad es a menudo uno de los principales objetivos de las pruebas de software. El evaluador debería poder encontrar problemas de seguridad y prevenir ataques de piratas informáticos y usuarios ingenuos que podrían inyectar código malicioso en la aplicación, ya sea a sabiendas o sin saberlo.
Paso 2) CREAR CASOS DE PRUEBA Y EJECUTAR
El segundo paso básico para las pruebas de caja blanca implica probar el código fuente de la aplicación para determinar el flujo y la estructura adecuados. Una forma es escribiendo más código para probar el código fuente de la aplicación. El probador desarrollará pequeñas pruebas para cada proceso o serie de procesos en la aplicación. Este método requiere que el evaluador tenga un conocimiento profundo del código y, a menudo, lo realiza el desarrollador. Otros métodos incluyen pruebas manuales, pruebas y pruebas de error y el uso de herramientas de prueba, como explicaremos más adelante en este artículo.
Ejemplo de prueba de WhiteBox
Considere el siguiente fragmento de código
Printme (int a, int b) {------------ Printme es una funciónint resultado = a + b;Si (resultado> 0)Imprimir ("Positivo", resultado)DemásImprimir ("Negativo", resultado)} ----------- Fin del código fuente
El objetivo de las pruebas de WhiteBox en ingeniería de software es verificar todas las ramas de decisión, bucles y declaraciones en el código.
Para ejercitar las declaraciones en el ejemplo de prueba de caja blanca anterior, los casos de prueba de WhiteBox serían
- A = 1, B = 1
- A = -1, B = -3
Técnicas de prueba de caja blanca
Una técnica importante de prueba de caja blanca es el análisis de cobertura de código. El análisis de cobertura de código elimina las lagunas en un conjunto de casos de prueba. Identifica áreas de un programa que no son ejercidas por un conjunto de casos de prueba. Una vez que se identifican las lagunas, crea casos de prueba para verificar las partes no probadas del código, lo que aumenta la calidad del producto de software.
Hay herramientas automatizadas disponibles para realizar análisis de cobertura de código. A continuación, se muestran algunas técnicas de análisis de cobertura que puede utilizar un probador de cajas:
Cobertura de declaraciones : - Esta técnica requiere que todas las declaraciones posibles en el código se prueben al menos una vez durante el proceso de prueba de la ingeniería de software.
Cobertura de rama: esta técnica comprueba todas las rutas posibles (if-else y otros bucles condicionales) de una aplicación de software.
Aparte de lo anterior, existen numerosos tipos de cobertura, como cobertura de condición, cobertura de condición múltiple, cobertura de ruta, cobertura de función, etc. Cada técnica tiene sus propios méritos e intenta probar (cubrir) todas las partes del código de software. Al utilizar la cobertura de estado de cuenta y sucursal, generalmente obtiene una cobertura de código del 80-90%, que es suficiente. A continuación se presentan importantes técnicas de prueba de WhiteBox:
- Cobertura de estados de cuenta
- Cobertura de decisiones
- Cobertura de sucursales
- Cobertura de condición
- Cobertura de múltiples condiciones
- Cobertura de la máquina de estado finito
- Cobertura de ruta
- Prueba de flujo de control
- Prueba de flujo de datos
Consulte este artículo para obtener más detalles https://www.guru99.com/code-coverage.html
Tipos de pruebas de caja blanca
Las pruebas de caja blanca abarcan varios tipos de pruebas que se utilizan para evaluar la usabilidad de una aplicación, bloque de código o paquete de software específico. Se enumeran a continuación:
-
Prueba unitaria: a menudo es el primer tipo de prueba que se realiza en una aplicación. La prueba unitaria se realiza en cada unidad o bloque de código a medida que se desarrolla. La prueba unitaria la realiza esencialmente el programador. Como desarrollador de software, usted desarrolla algunas líneas de código, una sola función o un objeto y lo prueba para asegurarse de que funciona antes de continuar. Las pruebas unitarias ayudan a identificar la mayoría de los errores, en las primeras etapas del ciclo de vida del desarrollo del software. Los errores identificados en esta etapa son más baratos y fáciles de solucionar.
-
Prueba de pérdidas de memoria: las pérdidas de memoria son las principales causas de que las aplicaciones se ejecuten más lentamente. Un especialista en control de calidad con experiencia en la detección de fugas de memoria es esencial en los casos en los que tiene una aplicación de software de ejecución lenta.
Aparte de lo anterior, algunos tipos de pruebas forman parte de las pruebas de caja blanca y negra. Se enumeran a continuación
- Prueba de penetración de caja blanca: en esta prueba, el probador / desarrollador tiene información completa del código fuente de la aplicación, información detallada de la red, direcciones IP involucradas y toda la información del servidor en la que se ejecuta la aplicación. El objetivo es atacar el código desde varios ángulos para exponer las amenazas a la seguridad.
- Pruebas de mutaciones de caja blanca : las pruebas de mutaciones se utilizan a menudo para descubrir las mejores técnicas de codificación que se pueden utilizar para ampliar una solución de software.
Herramientas de prueba de caja blanca
A continuación se muestra una lista de las principales herramientas de prueba de caja blanca.
- Parasoft Jtest
- EclEmma
- NUnit
- PyUnit
- HTMLUnit
- Unidad Cpp
Ventajas de las pruebas de caja blanca
- Optimización de código al encontrar errores ocultos.
- Los casos de pruebas de caja blanca se pueden automatizar fácilmente.
- Las pruebas son más completas ya que normalmente se cubren todas las rutas de código.
- Las pruebas pueden comenzar temprano en SDLC incluso si la GUI no está disponible.
Desventajas de las pruebas de WhiteBox
- Las pruebas de caja blanca pueden ser bastante complejas y costosas.
- Los desarrolladores que suelen ejecutar casos de prueba de caja blanca lo detestan. La prueba de caja blanca por parte de los desarrolladores no está detallada y puede dar lugar a errores de producción.
- Las pruebas de caja blanca requieren recursos profesionales, con una comprensión detallada de la programación y la implementación.
- Las pruebas de caja blanca requieren mucho tiempo, las aplicaciones de programación más grandes requieren tiempo para probarlas por completo.
Notas finales:
- Las pruebas de caja blanca pueden ser bastante complejas. La complejidad involucrada tiene mucho que ver con la aplicación que se está probando. Una aplicación pequeña que realiza una sola operación simple podría probarse en caja blanca en pocos minutos, mientras que las aplicaciones de programación más grandes tardan días, semanas e incluso más en probarse completamente.
- Las pruebas de caja blanca en las pruebas de software deben realizarse en una aplicación de software a medida que se desarrolla después de que se escribe y nuevamente después de cada modificación.