La caja blanca es una categoría de las pruebas de software que se refiere a los métodos de comprobación del funcionamiento de la estructura interna y el diseño del software. Contrasta con las pruebas de caja negra, que no se ocupan de las operaciones internas del software, sino que sólo comprueban sus resultados externos.
En este artículo, exploraremos el tema de las pruebas de caja blanca: qué es, cómo funciona y qué tipos de herramientas de pruebas de software pueden ayudar a los probadores y desarrolladores a realizar pruebas de caja blanca en las pruebas de software.
¿Qué es la prueba de caja blanca?
La prueba de caja blanca es una técnica de prueba de software que consiste en probar la estructura interna y el diseño de un programa, en contraposición a los resultados externos o la experiencia del usuario final que se prueban en la prueba de caja negra.
Las pruebas de caja blanca son un término genérico que engloba muchos tipos diferentes de pruebas de software, incluidas las pruebas unitarias y las pruebas de integración. Dado que las pruebas de caja blanca implican probar el código y la programación, llevarlas a cabo suele requerir ciertos conocimientos de programación informática.
Las pruebas de caja blanca en ingeniería de software pueden consistir en probar el código y el diseño interno del software para verificar el flujo de entrada-salida y comprobar el diseño, la usabilidad y la seguridad del software.
Las pruebas de caja blanca permiten a los probadores inspeccionar el funcionamiento interno del sistema al mismo tiempo que verifican que las entradas dan lugar a salidas específicas y esperadas.
Las pruebas de caja blanca son un paso esencial en las pruebas de software porque es el único tipo de prueba que tiene en cuenta cómo funciona el propio código.
1. Cuándo y por qué necesita una caja blanca
en pruebas e ingeniería de software?
Las pruebas de caja blanca pueden realizarse en distintas fases del ciclo de pruebas para verificar el funcionamiento del código y la estructura internos.
Lo más habitual es que las pruebas de caja blanca se realicen cuando los desarrolladores y los probadores llevan a cabo pruebas unitarias y, a veces, durante las pruebas de integración.
Por definición, las pruebas unitarias se consideran un tipo de pruebas de caja blanca, mientras que las pruebas de integración pueden compartir características tanto de las pruebas de caja blanca como de las de caja negra, pero generalmente se consideran una forma de pruebas de caja negra.
Por otra parte, las pruebas de caja blanca también pueden utilizarse ad hoc para verificar el funcionamiento interno de una compilación de software. Las pruebas de caja blanca son la forma más económica de aumentar la cobertura de las pruebas si existe la necesidad de ello, y también es una forma sencilla de verificar cómo funcionan secciones específicas del código o probar áreas de una compilación de software que los probadores sospechan que no se están probando lo suficiente.
Las revisiones formales del código, que se llevan a cabo con pruebas de caja blanca, también pueden utilizarse para identificar fallos de seguridad y otras vulnerabilidades. Del mismo modo, si hay elementos del código que no funcionan, las pruebas de caja blanca pueden ayudar a los ingenieros de software a determinar dónde está el error.
2. Cuando no es necesario realizar pruebas de caja blanca
En la mayoría de los casos, cuando los ingenieros de software y los probadores someten una nueva compilación de software al ciclo de pruebas, es necesaria cierta cantidad de pruebas de caja blanca para verificar el funcionamiento interno del código.
Las pruebas unitarias son un tipo de pruebas de caja blanca que realizan los desarrolladores para verificar que las unidades individuales funcionan como se espera. Este tipo de pruebas tempranas permite a los desarrolladores identificar errores y defectos antes de que tengan lugar las pruebas formales en un entorno de control de calidad.
Después de las pruebas unitarias, tienen lugar las pruebas de integración, las pruebas del sistema y las pruebas de aceptación del usuario. En general, se consideran formas de pruebas de caja negra que no suelen implicar muchas técnicas de pruebas de caja blanca.
Sin embargo, en algunos casos, los probadores y desarrolladores pueden utilizar pruebas de caja blanca durante estas etapas para identificar defectos específicos dentro del código. En esta fase, si no hay indicios de que el código contenga ningún error y se superan todas las pruebas de caja negra, muchos equipos de pruebas pueden considerar que no es necesario realizar más pruebas de caja blanca.
3. ¿Quién participa en las pruebas de caja blanca?
Las pruebas de caja blanca casi siempre las llevan a cabo desarrolladores e ingenieros de software. Esto se debe a que las pruebas de caja blanca requieren un conocimiento detallado del código informático y de las técnicas de codificación, y la mayoría de los evaluadores de control de calidad carecen de los conocimientos técnicos necesarios para llevar a cabo pruebas de caja blanca.
Las pruebas unitarias, el principal tipo de pruebas de caja blanca, las realizan siempre los desarrolladores en el entorno de desarrollo. Los desarrolladores también pueden realizar pruebas de caja blanca cuando sea necesario, para verificar el funcionamiento de distintos elementos del código o comprobar que los errores se han corregido correctamente.
Ventajas de las pruebas de caja blanca
Las pruebas de caja blanca permiten a los desarrolladores e ingenieros de software probar más aspectos del código que las pruebas de caja negra.
Mientras que las pruebas de caja negra nos dicen cómo funciona un software para los usuarios finales, las de caja blanca nos dicen más sobre cómo funciona el código del software. Un código limpio y eficiente es esencial en el desarrollo de software, sobre todo si los desarrolladores quieren reutilizar el código más adelante o añadir parches y actualizaciones en el futuro.
1. Maximizar la cobertura de las pruebas
Las pruebas de caja blanca pueden ayudar a los probadores a maximizar la cobertura de las pruebas. Probar la mayor parte posible del código del software suele maximizar las posibilidades de detectar cualquier fallo o error presente en el código, y el propósito de las pruebas de caja blanca suele ser probar la mayor parte posible del código.
Las pruebas de caja negra, por su parte, consisten simplemente en ejecutar casos de prueba que pueden ofrecer o no una amplia cobertura del código.
2. Encontrar errores y fallos ocultos
Una de las mayores ventajas de las pruebas de caja blanca es que, dado que verifican la funcionalidad interna, facilitan a los desarrolladores la detección de errores y fallos que, de otro modo, podrían estar ocultos en lo más profundo del código.
Además de identificar la presencia de errores, suele ser más fácil localizar exactamente en qué parte de la base de código se encuentra un error cuando se realizan pruebas de caja blanca debido a la naturaleza altamente específica de este tipo de técnica de prueba.
3. Facilidad de automatización
Es muy fácil automatizar las pruebas de caja blanca, especialmente cuando se realizan pruebas unitarias. Las pruebas unitarias suelen requerir que los desarrolladores prueben pequeños fragmentos de código de forma individual para comprobar si se ejecutan según lo esperado. Es muy fácil de automatizar, lo que significa que es una forma rápida y eficaz de probar el software.
Esta es una de las razones por las que las pruebas unitarias se realizan antes que otros tipos de pruebas que requieren más tiempo.
4. Tiempo eficiente
Las pruebas de caja blanca ahorran tiempo por varias razones.
Como ya se ha mencionado, es relativamente fácil automatizar la mayoría de los tipos de pruebas de caja blanca, lo que significa que a menudo es más rápido llevar a cabo pruebas de caja blanca que pruebas de caja negra. Además, las pruebas de caja blanca facilitan a los desarrolladores la localización de los fallos y errores que identifican en el código, ya que los encuentran mientras prueban el propio código.
5. Calidad del código
Las pruebas de caja blanca permiten a los desarrolladores echar un segundo vistazo al código que han escrito y evaluar su calidad y limpieza.
Revisar el código pieza por pieza da a los desarrolladores la oportunidad de eliminar secciones innecesarias y limpiar el código, lo que facilita su reutilización y edición en el futuro.
También puede obligar a los desarrolladores a considerar cómo se implementa el código y si esto se escalará bien en el futuro.
Los retos de las pruebas de caja blanca
Las pruebas de caja blanca no están exentas de dificultades. Hay algunas razones por las que algunos equipos de desarrollo pueden considerar que las pruebas de caja blanca son más difíciles de llevar a cabo que las pruebas de caja negra, así como otras razones por las que algunas personas pueden considerarlas menos importantes que las pruebas de caja negra.
1. Obstáculos técnicos
Las pruebas de caja blanca conllevan barreras técnicas que no tienen las pruebas de caja negra. Para realizar pruebas de caja blanca, los probadores necesitan conocer el funcionamiento interno del sistema, lo que, en las pruebas de software, suele significar conocimientos de programación.
Por eso, las pruebas de caja blanca las realizan casi siempre los ingenieros y desarrolladores de software y no los evaluadores de control de calidad, que rara vez tienen los conocimientos técnicos necesarios para realizar este tipo de pruebas.
2. Coste
Las pruebas de caja blanca pueden ser más costosas de llevar a cabo que las de caja negra debido a lo exhaustivas que son.
Los desarrolladores deben dedicar mucho tiempo a escribir pruebas unitarias intensivas, y las pruebas de caja blanca a menudo no pueden reutilizarse para otras aplicaciones, lo que significa que la realización de pruebas de caja blanca suele costar bastante.
3. Precisión
Las pruebas de caja blanca no siempre son el método de prueba de software más preciso, y si los equipos de desarrollo confiaran únicamente en ellas, se pasarían por alto muchos errores y casos.
Las pruebas de caja blanca sólo validan las características que ya existen, mientras que las de caja negra pueden utilizarse para probar características parcialmente implementadas o identificar las que realmente faltan en el software y deberían incluirse en iteraciones posteriores.
4. Alcance
Las pruebas de caja blanca no suelen decirnos mucho sobre la experiencia del usuario o el resultado final de las funciones integradas en el software.
Aunque los desarrolladores pueden utilizar las pruebas de caja blanca para verificar si el código funciona como debería, no pueden concluir que el código en funcionamiento ofrece los resultados correctos a los usuarios finales sin combinar las pruebas de caja blanca con las de caja negra.
Esto significa que hay limitaciones en el alcance de las pruebas de caja blanca y en lo que pueden decirnos sobre el software.
Características de las pruebas de caja blanca
Las pruebas de caja blanca pueden definirse por características particulares que las diferencian de otras formas de pruebas como las de caja negra y caja gris.
La mayoría de estas características pueden considerarse desde la perspectiva de cómo difieren de las características de las pruebas de caja negra y cómo esto diferencia las pruebas de caja blanca y las pruebas de caja negra.
1. Mantenibilidad
Las pruebas de caja blanca conducen a un mayor nivel de mantenimiento del código, lo que simplifica el trabajo que el equipo debe realizar en el futuro.
Como se vigila constantemente el código y lo que hace con los datos, su mantenimiento es mucho más sencillo, ya que se entiende dónde surgen los problemas y por qué lo hacen. Esto también mantiene el código más simple para futuras actualizaciones, ya que no se desarrollan parches grandes y complejos para problemas desconocidos y simples.
2. Flexibilidad
Las pruebas de caja blanca se realizan sobre código lo suficientemente flexible como para aceptar cambios con relativa rapidez. El código inflexible, como el que forma parte de un módulo o integración de terceros, impide a un comprobador de caja blanca realizar cambios rápidos.
Centrarse en disponer de código que pueda cambiar en cuanto descubra un problema hace que las pruebas de caja blanca sean muy adaptables y significa que los problemas de un programa se resuelven mucho antes.
3. Modularidad
Las pruebas de caja blanca prosperan en código con cierto grado de modularidad, lo que significa que los distintos elementos del software se distinguen claramente unos de otros.
Si un programa tiene un problema de “código espagueti” en el que cada aspecto está ligado a otro, las pruebas de caja blanca se vuelven infinitamente más complejas, ya que un probador debe examinar todo el programa en lugar de una unidad específica.
4. Integración
Las pruebas de caja blanca son extremadamente útiles para las pruebas de integración. Los encargados de las pruebas pueden ver si una función funciona hasta el punto en que sale del software en cuestión y si vuelve del sistema integrado tan funcional como se esperaba.
Esto es muy informativo y permite a una organización saber si el problema es local o forma parte de la plataforma integrada.
¿Qué probamos en las pruebas de caja blanca?
Las pruebas de caja blanca se utilizan para comprobar características del código que no pueden verificarse mediante métodos de prueba de caja negra. Esto puede significar probar cómo funciona el propio código, lo que permite a los desarrolladores comprender la causa y el efecto de distintos aspectos del código.
Los desarrolladores utilizan las pruebas de caja blanca para comprobar agujeros de seguridad, declaraciones y funciones, salidas y rutas en el código.
1. Agujeros de seguridad internos
Las pruebas de caja blanca pueden utilizarse para buscar brechas de seguridad y vulnerabilidades en el código que los piratas informáticos y los ciberdelincuentes podrían aprovechar en el futuro.
Las pruebas de caja blanca pueden utilizarse para comprobar si se han seguido las mejores prácticas de seguridad durante la fase de desarrollo y para buscar vulnerabilidades de seguridad que puedan repararse antes de que el código pase a pruebas posteriores.
2. Vías en los procesos de codificación
Las pruebas de caja blanca permiten a los desarrolladores comprobar las rutas que conectan los distintos elementos del código. Los desarrolladores no sólo comprueban la lógica del código, sino que también pueden buscar la estructura y la higiene del código.
Un código bueno y limpio no tiene líneas innecesarias ni elementos rotos que no funcionen como se espera, aunque los resultados externos de las pruebas de caja negra sean los esperados.
3. Resultados esperados
Las pruebas de caja blanca también pueden comprobar los resultados esperados del código del mismo modo que las pruebas de caja negra, aunque los evaluadores lo hacen teniendo en cuenta el código en lugar de utilizar la aplicación como podrían hacer en las pruebas de caja negra.
Los desarrolladores comprueban los resultados esperados verificando las entradas una a una y comprobando que el resultado se ajusta a las expectativas.
4. Declaraciones, objetos y funciones
Mediante la aplicación de técnicas de prueba de caja blanca, los desarrolladores de software pueden garantizar que las sentencias, objetos y funciones del código se comportan de forma lógica y producen los resultados esperados.
5. Funcionalidad de los bucles condicionales
Las pruebas de caja blanca también pueden utilizarse para comprobar la funcionalidad de los bucles condicionales, incluidos los bucles simples, concatenados y anidados. Los desarrolladores comprobarán si estos bucles son eficientes, si cumplen los requisitos de la lógica condicional y si manejan correctamente las variables locales y globales.
Aclarar algunas confusiones:
Pruebas de caja blanca, caja negra y caja gris
Pruebas de caja blanca, pruebas de caja negra y pruebas de caja gris son términos que los evaluadores de software utilizan para referirse a diferentes categorías de pruebas o diferentes métodos de prueba.
Una visión moderna de estas distinciones de las pruebas es que las líneas trazadas entre los distintos tipos de pruebas de caja son cada vez más difusas, ya que los distintos tipos de pruebas combinan con frecuencia elementos de las pruebas de caja blanca y de caja negra y derivan pruebas de documentos a varios niveles de abstracción.
No obstante, sigue habiendo diferencias importantes entre estas formas de pruebas.
1. ¿Qué es la prueba de caja negra?
La prueba de caja negra es una forma de prueba de software en la que la funcionalidad del software es comprobada por probadores que no tienen conocimiento de la estructura interna del código o de cómo implementar el código a un nivel más técnico.
Las pruebas de caja negra sólo comprueban los resultados externos del programa, es decir, lo que experimentará el usuario final cuando utilice el programa.
Las pruebas de caja negra también se conocen como pruebas de comportamiento porque comprueban cómo se comporta el software en determinadas condiciones.
Los probadores pueden utilizar las pruebas de caja negra para evaluar cómo se comportan las distintas funciones del software y cotejarlas con las expectativas para asegurarse de que el software cumple los requisitos de los usuarios. Las pruebas de caja negra se utilizan en las pruebas del sistema y las pruebas de aceptación para verificar distintas funciones y comprobar que el sistema funciona como se espera cuando trabaja en conjunto.
Al realizar pruebas de caja negra, los usuarios escriben casos de prueba para verificar distintos elementos individualmente. Dado que las pruebas de caja negra no requieren los mismos conocimientos técnicos que las pruebas de caja blanca, suelen ser realizadas por evaluadores en un entorno de control de calidad y no por desarrolladores.
La automatización de las pruebas de caja negra suele ser más fácil de automatizar en comparación con las pruebas de caja blanca mediante la utilización de herramientas de automatización de extremo a extremo como ZAPTEST.
¿Cuáles son las diferencias entre pruebas de caja blanca y caja negra?
La principal diferencia entre las pruebas de caja negra y de caja blanca es lo que se está probando.
Las pruebas de caja negra consisten en comprobar los resultados externos de la compilación del software, mientras que las pruebas de caja blanca consisten en comprobar lo que ocurre bajo el capó.
Algunas de las principales diferencias entre las pruebas de caja negra y caja blanca son:
Propósito
El objetivo de las pruebas de caja negra es verificar que el sistema funciona como espera el usuario final, mientras que el de las pruebas de caja blanca es comprobar la calidad e integridad del código del software.
Por ejemplo, las pruebas de caja negra de un videojuego pueden consistir en que un usuario final pruebe el juego y lo revise según su experiencia, mientras que las pruebas de caja blanca del mismo proyecto garantizan que la introducción de datos específicos lleve al personaje a realizar la acción correcta.
Proceso
Los procesos utilizados en las pruebas de caja blanca y negra son muy diferentes. Las pruebas de caja blanca son mucho más fáciles de automatizar que las pruebas de caja negra y, por lo general, las pruebas de caja negra deben automatizarse con la ayuda de herramientas de automatización de software.
Por ejemplo, al probar una base de datos, una prueba de caja blanca implica automatizar la entrada de datos para comprobar que todos los resultados son correctos, mientras que las pruebas de caja negra implican que los usuarios reproduzcan procesos manuales y elaboren informes sobre ellos sin utilizar un sistema de automatización.
Probadores
Las pruebas de caja negra casi siempre las llevan a cabo en un entorno de control de calidad evaluadores de software profesionales, mientras que las pruebas de caja blanca las realizan desarrolladores e ingenieros de software que tienen un conocimiento técnico más detallado del código fuente.
Técnicas
Las pruebas de caja negra utilizan diversas técnicas, como la partición de equivalencias, el análisis de valores límite y las pruebas de tablas de decisión. Las pruebas de caja blanca utilizan técnicas como la cobertura de decisiones, la cobertura de condiciones y la cobertura de sentencias.
Operaciones
Las metodologías de pruebas de caja negra se adaptan a las operaciones de pruebas de niveles superiores, como las pruebas del sistema y las pruebas de aceptación, mientras que las pruebas de caja blanca son más adecuadas para operaciones de niveles inferiores, como las pruebas unitarias y las pruebas de integración.
Por este motivo, las pruebas de caja blanca suelen realizarse antes que la mayoría de las pruebas de caja negra.
2. ¿Qué es la prueba de caja gris?
La prueba de caja gris es una técnica de prueba de software que se utiliza para probar productos y aplicaciones de software por parte de probadores que pueden tener un conocimiento parcial de la estructura interna de la aplicación, pero no un conocimiento completo de la misma.
Las pruebas de caja gris pueden combinar elementos tanto de las pruebas de caja negra como de las de caja blanca para permitir a desarrolladores y probadores identificar defectos en el código y localizar errores específicos del contexto.
Las pruebas de caja gris combinan características de las pruebas de caja negra y de caja blanca. Los probadores deben tener cierto conocimiento del funcionamiento interno del sistema, como en las pruebas de caja blanca, pero utilizan este conocimiento para crear casos de prueba y ejecutarlos a nivel de funcionalidad, como ocurre en las pruebas de caja negra.
Las pruebas de caja gris ofrecen muchas de las ventajas de las pruebas de caja negra y de caja blanca, al tiempo que resultan relativamente flexibles y eficaces en términos de tiempo.
¿Cuáles son las diferencias entre pruebas de caja blanca y de caja gris?
Dado que las pruebas de caja gris ofrecen algunas de las mismas funcionalidades que las pruebas de caja negra, existen algunas grandes diferencias entre las pruebas de caja gris y las pruebas de caja blanca, aunque quizás no tantas como con las pruebas de caja negra.
Algunas de las mayores diferencias entre las pruebas de caja gris y las de caja blanca son:
Conocimientos estructurales
En las pruebas de caja blanca, la persona que realiza las pruebas debe conocer perfectamente el diseño interno y la estructura del código. En las pruebas de caja gris, la estructura interna del código suele conocerse sólo parcialmente.
Personas implicadas
Las pruebas de caja blanca las realizan casi exclusivamente desarrolladores e ingenieros de software, mientras que las de caja gris pueden llevarlas a cabo usuarios finales, probadores y desarrolladores.
Eficiencia
Las pruebas de caja blanca se consideran el tipo de prueba de software que más tiempo consume, mientras que las pruebas de caja gris toman prestadas algunas de las eficiencias de las pruebas de caja negra para reducir el tiempo que se tarda en realizar las pruebas.
Operación
En las pruebas de caja blanca, los desarrolladores simplemente escriben código para implementar las pruebas de caja blanca y ejecutan este código. En las pruebas de caja gris, al igual que en las de caja negra, los probadores realizan pruebas funcionales para evaluar el funcionamiento externo del sistema.
Cobertura
Las pruebas de caja blanca son el tipo de prueba más exhaustivo, mientras que la cobertura de las pruebas de caja gris puede variar en función de si el tipo de casos de prueba ejecutados se basa en código o en GUI.
Conclusión:
Caja blanca vs Caja negra vs. Pruebas de caja gris
Pruebas de caja blanca, pruebas de caja negra y pruebas de caja gris son términos utilizados para referirse a distintas técnicas de pruebas de software. A grandes rasgos, cada tipo de prueba puede definirse en función del grado de conocimiento que deben tener los probadores sobre la base de código y la implementación del código:
1. Pruebas de caja negra:
Se desconoce la estructura interna del código.
2. Pruebas de caja blanca:
Se conoce la estructura interna del código.
3. Pruebas de caja gris:
La estructura interna del código se conoce parcialmente.
Durante las pruebas de software, los tres tipos de pruebas son importantes para verificar el funcionamiento y la integridad del software. Mientras que las pruebas de caja blanca nos informan más sobre la estructura subyacente del código, las pruebas de caja gris y de caja negra pueden verificar cómo funciona el sistema y si cumple los requisitos del usuario final.
Quizá las mayores diferencias entre estos tres tipos de pruebas estén relacionadas con quién las realiza, los requisitos de las propias pruebas y lo que éstas implican.
Las pruebas de caja blanca tienen la barrera de entrada más alta porque las llevan a cabo desarrolladores con un conocimiento detallado de la propia base de código y porque es el tipo de prueba que más tiempo consume y a menudo es más costosa.
En cambio, las pruebas de caja negra son las más fáciles de realizar y pueden llevarlas a cabo probadores sin conocimiento del código subyacente.
Tipos de pruebas de caja blanca
Hay muchos tipos diferentes de pruebas de caja blanca, cada una de las cuales puede utilizarse para probar aspectos ligeramente diferentes de la estructura interna del código.
A continuación se presentan algunos de los tipos más comunes de pruebas de caja blanca que se utilizan hoy en día.
1. Pruebas de trayectoria
La prueba de ruta es un tipo de prueba de caja blanca basada en la estructura de control de un programa. Los desarrolladores utilizan la estructura de control para crear un gráfico de flujo de control y probar diferentes rutas en el gráfico.
La prueba de ruta es un tipo de prueba que depende de la estructura de control del programa, lo que significa que requiere que los probadores conozcan a fondo esta estructura.
Por ejemplo, si se supone que un sistema debe ponerse en contacto con los clientes con mensajes establecidos en determinados puntos del embudo de ventas, las pruebas de trayectoria consisten en asegurarse de que sigue los pasos correctos en función de las condiciones que establecen los datos.
2. Pruebas en bucle
Las pruebas de bucles son uno de los tipos más importantes de pruebas de caja blanca que comprueban los bucles dentro del código del programa. Los bucles se implementan en algoritmos dentro del código y la comprobación de bucles verifica si estos bucles son válidos.
Las pruebas de bucles pueden evaluar si existen vulnerabilidades en bucles específicos y poner de relieve las áreas en las que los desarrolladores pueden necesitar corregir el código para garantizar que el bucle funciona como debería.
Un ejemplo de prueba de bucle es el seguimiento a través del bucle con un conjunto específico de puntos de datos que incitan al bucle a continuar, como la negativa a aceptar algunos términos y condiciones, antes de introducir una cifra que rompa específicamente el bucle. Si el bucle se comporta como se espera, la prueba se realiza correctamente.
3. Pruebas condicionales
La prueba condicional es un tipo de prueba de caja blanca que comprueba si las condiciones lógicas para los valores dentro del código son verdaderas o falsas.
Las pruebas condicionales son una forma importante de pruebas de caja blanca que indican a los desarrolladores si el código es lógico y cumple los requisitos de la lógica de programación.
Un ejemplo de prueba condicional es dentro de una plataforma de contabilidad. La introducción de una serie de gastos e ingresos debería arrojar los totales correctos, y el programa informático proporcionaría resultados precisos a lo largo de una prueba satisfactoria.
4. Pruebas unitarias
Las pruebas unitarias son una fase importante de las pruebas de software, en la que los desarrolladores prueban componentes y módulos individuales y comprueban que funcionan como se espera antes de integrar las distintas unidades.
Los ingenieros de software utilizan métodos de prueba de caja blanca en las pruebas unitarias para probar pequeños fragmentos de código cada vez. Esto facilita la identificación de fallos y errores cuando se producen durante las pruebas.
Un ejemplo de pruebas unitarias se produce al principio del desarrollo, cuando una empresa crea un simple botón en un sitio web que lleva al usuario a otra página. Si la unidad funciona como se espera, entonces tiene éxito, y los desarrolladores realizan cambios hasta que lo hace.
5. Pruebas de mutación
Las pruebas de mutaciones son un tipo de pruebas que analizan alteraciones y mutaciones. En las pruebas de mutación, los desarrolladores introducen pequeñas modificaciones en el código fuente para ver si esto puede revelar fallos en el código.
Si el caso de prueba pasa, esto indica que hay algún problema con el código porque no debería pasar después de haber realizado los cambios. Idealmente, en las pruebas de mutación, todos los casos de prueba fallarán.
Un ejemplo de prueba de mutaciones es el aprendizaje automático. Los programas de aprendizaje automático “mutan” automáticamente en función de la nueva información, por lo que probar estos programas de forma sistemática según el estándar de “mutación” informa a los desarrolladores de si el software funciona como se espera.
6. Pruebas de integración
Las pruebas de integración son una fase importante de las pruebas de software durante la cual los probadores comprueban si los distintos módulos funcionan correctamente cuando se integran con otros.
Las técnicas de pruebas de caja blanca se utilizan durante las pruebas de integración para comprobar que el código funciona incluso cuando varios módulos -que a menudo han sido codificados por distintos desarrolladores- trabajan juntos.
Cuando una base de datos extrae información de una fuente en línea, por ejemplo, las pruebas de integración garantizan que los datos que extrae son precisos y se actualizan a un ritmo razonablemente coherente.
7. Pruebas de penetración
Las pruebas de penetración son un tipo de pruebas de caja blanca que pueden utilizarse para simular ciberataques específicos en el sistema.
En las pruebas de penetración, los probadores tienen acceso a datos completos de la red y del sistema, como contraseñas y mapas de red. A continuación, intentan acceder a los datos del sistema o destruirlos intentando atacar por tantas vías como sea posible.
Las pruebas de penetración son un aspecto importante de las pruebas de seguridad que deben realizarse en todas las construcciones de software.
Una plataforma de recursos humanos, por ejemplo, realizará pruebas de penetración y buscará vulnerabilidades en el código para asegurarse de que la plataforma es lo suficientemente segura como para albergar datos de los empleados.
Técnicas de pruebas de caja blanca
Hay muchas técnicas diferentes de pruebas de caja blanca que se pueden utilizar para llevar a cabo las pruebas de caja blanca enumeradas anteriormente. Como siempre ocurre, cada técnica es más adecuada para probar distintos aspectos del código, pero todas las técnicas de caja blanca que se enumeran a continuación son importantes.
1. Cobertura de la declaración
Una de las características que definen las pruebas de caja blanca es que los probadores deben intentar abarcar la mayor parte posible del código fuente cuando realicen pruebas de caja blanca.
La cobertura del código es una buena medida de ello, y la cobertura de sentencias es una técnica que los evaluadores de caja blanca pueden utilizar para aumentar la cobertura de las sentencias dentro del código.
La cobertura de sentencias es una métrica que mide el número de sentencias ejecutadas dividido por el número total de sentencias y multiplicado por 100. Los probadores de caja blanca deben aspirar a una cobertura de declaración alta.
2. Cobertura de ramas
La cobertura de ramas, al igual que la cobertura de sentencias, refleja la amplitud de la cobertura de determinados elementos del código en las pruebas de caja blanca. Las bifurcaciones equivalen a las sentencias “SI” de la lógica, en las que el código se bifurca en opciones verdaderas y falsas que influyen en el resultado de la operación.
Cuando se utilizan técnicas de cobertura de ramas, los probadores de caja blanca comprueban si cada rama se procesa al menos una vez y validan que ambas ramas funcionan correctamente.
3. Cobertura de la ruta
Las técnicas de cobertura de rutas evalúan las rutas dentro de una aplicación de software. Maximizar la cobertura de la ruta de prueba significa garantizar que todas las rutas del programa se exploran al menos una vez. Es un tipo de técnica de prueba similar a la cobertura de ramas, pero se considera más exhaustiva y eficaz.
Las pruebas de cobertura de rutas suelen considerarse más adecuadas para probar aplicaciones completas que compilaciones parciales.
4. Cobertura de decisiones
La cobertura de decisiones es una de las técnicas de caja blanca más importantes porque proporciona datos sobre los resultados verdaderos y falsos de las expresiones booleanas en el código fuente.
Las pruebas de cobertura de decisiones validan el código fuente garantizando que cada marca de cada decisión potencial se recorre al menos una vez durante las pruebas.
Los puntos de decisión incluyen cualquier ocasión en la que exista la posibilidad de dos o más resultados diferentes.
5. Cobertura de condiciones
La cobertura de condiciones también se conoce como cobertura de expresión. Esta técnica de caja blanca evalúa las subvariables de las sentencias condicionales dentro del código para verificar el resultado de cada condición lógica.
Este tipo de pruebas sólo tiene en cuenta las expresiones con operandos lógicos, mientras que las pruebas de cobertura de decisiones y las pruebas de cobertura de ramas se utilizan para garantizar otras operaciones lógicas.
6. Cobertura de afecciones múltiples
En las pruebas de cobertura de condiciones múltiples, los probadores verifican diferentes combinaciones de condiciones y evalúan la decisión que toma el código para cada combinación.
Puede haber muchos casos de prueba diferentes para las pruebas de cobertura de condiciones múltiples debido al enorme número de combinaciones de condiciones que existen, por lo que este tipo de pruebas suele llevar mucho tiempo.
7. Cobertura de máquinas de estados finitos
La cobertura de máquinas de estados finitos es un tipo de prueba importante, pero también una de las formas más difíciles de lograr una alta cobertura de código en las pruebas de caja blanca. Trabaja sobre la funcionalidad del diseño y requiere que los desarrolladores cuenten el número de veces que se visita o transita por un estado durante el proceso de prueba, así como cuántas secuencias contiene cada sistema de estados finitos.
8. Pruebas de flujo de control
La prueba de flujo de control es una técnica de prueba de caja blanca que trata de establecer el orden de ejecución del programa utilizando una estructura de control sencilla.
Los desarrolladores construyen casos de prueba de flujo de control eligiendo una sección específica del programa y construyendo una ruta de prueba. Las pruebas de flujo de control suelen utilizarse en las pruebas unitarias.
El ciclo de vida de las pruebas de caja blanca
en desarrollo de software
Las pruebas de caja blanca son un paso importante en el ciclo de vida del desarrollo de software, aunque no tienen un “lugar” estricto en el ciclo.
Los desarrolladores pueden llevar a cabo pruebas de caja blanca siempre que necesiten comprobar el funcionamiento del código, y algunos desarrolladores pueden ser más minuciosos que otros a la hora de comprobar el código recién escrito para asegurarse de que está limpio y libre de líneas innecesarias.
Sin embargo, las pruebas de caja blanca suelen realizarse durante las pruebas unitarias y de integración. Tanto las pruebas unitarias como las de integración las llevan a cabo los desarrolladores durante la fase de desarrollo.
Tienen lugar antes de las pruebas funcionales, como las pruebas del sistema y las pruebas de aceptación, y ofrecen a los desarrolladores la oportunidad de identificar, localizar y corregir los principales errores al principio de la fase de pruebas, antes de entregar el producto al equipo de control de calidad.
¿Pruebas de caja blanca manuales o automatizadas?
Al igual que otros tipos de pruebas de software, es posible automatizar las pruebas de caja blanca. Puede ser manual o automatizada, aunque en la mayoría de los casos es más fácil automatizar las pruebas de caja blanca que las de caja negra.
Dado que las pruebas de caja blanca son un tipo de prueba que requiere mucho tiempo, la automatización es cada vez más popular entre los equipos de software.
Pruebas manuales de caja blanca: ventajas, retos y procesos
Las pruebas de caja blanca manuales consisten en realizar pruebas de caja blanca manualmente, y requieren que los desarrolladores tengan las habilidades y el tiempo para escribir casos de prueba individuales para probar cada línea de código en una compilación de software posible. Esto puede llevar mucho tiempo, pero también da lugar a los resultados de pruebas y productos más exhaustivos.
Algunas de las ventajas de realizar pruebas de caja blanca manualmente son:
1. Profundidad
Las pruebas manuales permiten a los evaluadores explorar el código del software en mayor profundidad que las pruebas automatizadas si así lo desean, por ejemplo, leyendo todo el código fuente de una aplicación en lugar de limitarse a automatizar tareas que tocan la funcionalidad superficial.
2. Localización de errores
Las pruebas manuales facilitan la localización de errores y defectos porque los desarrolladores deben ser capaces de señalar exactamente en qué línea de código está presente el error.
Por ejemplo, ver que una imagen no se carga y examinar el código en busca de líneas que impliquen la carga de imágenes reduce significativamente la causa.
3. Velocidad
Las pruebas manuales suelen llevar más tiempo que las automatizadas, pero si los desarrolladores sólo quieren realizar una o dos pruebas rápidas, probablemente sea más rápido llevarlas a cabo manualmente que configurar la automatización.
Por ejemplo, las pruebas unitarias consisten en examinar una función y ver si funciona, en lugar de recopilar grandes cantidades de datos automatizando el proceso. Sin embargo, las pruebas manuales de caja blanca también presentan desventajas.
Algunos de los retos de las pruebas manuales de caja blanca son:
1. Precisión
Las pruebas manuales pueden permitir a los desarrolladores abarcar una amplia gama de códigos, pero los probadores humanos siempre son más propensos a equivocarse y cometer errores que los programas informáticos, por lo que las pruebas manuales suelen considerarse menos precisas que las automatizadas.
2. Tiempo
Las pruebas manuales llevan más tiempo que las automatizadas, y las pruebas manuales de caja blanca son algunas de las que más tiempo consumen. Esto aumenta el tiempo de respuesta y puede dificultar el cumplimiento de plazos de desarrollo ajustados.
3. Coste
Debido a la cantidad de mano de obra y recursos que conllevan las pruebas manuales de caja blanca, a menudo resultan más costosas para los equipos de desarrollo que las pruebas automatizadas, que suelen requerir menos desarrolladores y menos tiempo.
4. Escalabilidad
En realidad, las pruebas manuales sólo son adecuadas para probar aplicaciones pequeñas o componentes individuales de aplicaciones más grandes. Para aplicaciones de mayor tamaño, como una base de datos alojada en la nube con miles de entradas por minuto, es muy preferible realizar pruebas automatizadas como método de simulación de cargas estándar.
Pruebas automatizadas de caja blanca: ventajas,
retos y procesos
La tecnología de automatización facilita cada día la automatización de aspectos de las pruebas de software. El avance de la industria hacia la hiperautomatización se debe en parte a la eficiencia y el ahorro de costes que la automatización ofrece a los equipos de desarrollo, que siempre se sienten muy apretados.
Las pruebas de caja blanca son uno de los tipos de pruebas más apropiados y adecuados para la automatización, ya que son relativamente fáciles de automatizar y el ahorro de tiempo y costes que supone la automatización de las pruebas de caja blanca puede ser considerable.
Las pruebas automatizadas de caja blanca pueden implicar que los propios desarrolladores escriban guiones de prueba, o el proceso se puede acelerar con el uso de herramientas de pila completa como ZAPTEST, que proporcionan tecnología punta de pruebas de software de extremo a extremo.
Algunas de las ventajas de automatizar las pruebas de caja blanca son:
1. Precisión
Las pruebas por ordenador eliminan el riesgo de errores porque los ordenadores no se cansan ni cometen errores.
2. Tiempo
Las pruebas de caja blanca automatizadas son mucho más rápidas que las pruebas de caja blanca manuales y liberan tiempo que los desarrolladores pueden dedicar a otras tareas, como la corrección de errores o la redacción de parches de actualización.
3. Escala
Las pruebas automatizadas se escalan mucho mejor que las pruebas manuales, por lo que si su aplicación de software crece o si desea realizar pruebas a gran escala de una sola vez, la automatización es la mejor opción.
Por ejemplo, ampliar la entrada de datos implica solicitar más entradas en la automatización, en comparación con la contratación de más personal en las pruebas manuales.
4. Coste
El coste de las pruebas automatizadas suele ser, una vez totalizado, inferior al coste de las pruebas manuales debido al número de horas de trabajo que ahorra la automatización. El ROI 10 veces superior de ZAPTEST demuestra cómo la automatización puede ahorrar dinero a los desarrolladores y generar mayores beneficios. Sin embargo, la automatización no está exenta de inconvenientes.
Algunos de los retos de la automatización de las pruebas de caja blanca son:
1. Seguimiento de errores
La automatización no siempre facilita la localización de errores en el código, dependiendo de cómo automaticen las pruebas los desarrolladores o de qué herramientas de prueba se utilicen, sobre todo si se compara con las pruebas manuales de caja blanca, en las que los evaluadores pueden ver el código que se está ejecutando cada vez que surge un error.
2. Habilidades
No todos los desarrolladores saben cómo automatizar las pruebas o cómo utilizar las herramientas de pruebas automatizadas, por lo que el cambio a la automatización puede requerir cierta inversión en la formación de habilidades importantes, como la codificación en el lenguaje de esa plataforma de pruebas específica y el uso de habilidades de análisis de datos para comprender la causa de los problemas en una prueba de caja blanca.
Conclusiones: Pruebas manuales de caja blanca
o automatización de pruebas de caja blanca?
En general, las pruebas de caja blanca en ingeniería de software son uno de los tipos de pruebas más apropiados para adaptarse a las pruebas automatizadas, en gran parte debido a la naturaleza compleja y lenta de las pruebas manuales de caja blanca.
Las pruebas automatizadas de caja blanca son más rápidas, baratas, eficaces y precisas que las pruebas manuales, sobre todo cuando se trabaja con aplicaciones de mayor tamaño.
Siempre que sea posible, los desarrolladores de software deben automatizar las pruebas de caja blanca en las pruebas de software para aumentar la fiabilidad de las pruebas y cubrir un área mayor de aplicaciones más grandes mediante pruebas de lo que es prácticamente posible al realizar las pruebas manualmente. Esto se debe a los considerables costes y conocimientos técnicos necesarios cuando se realizan pruebas de caja blanca con métodos exclusivamente manuales.
¿Qué necesita para empezar?
¿pruebas de caja blanca?
Antes de empezar las pruebas de caja blanca, asegúrese de que tiene todo lo que necesita para empezar. Dependiendo de si realiza pruebas de caja blanca manuales o automatizadas, no necesitará muchos recursos aparte de tiempo y dinero.
Sin embargo, tendrá que asegurarse de que su equipo dispone de los conocimientos y herramientas adecuados para llevar a cabo correctamente las pruebas de caja blanca.
1. Comprensión del código fuente
Las pruebas de caja blanca son las que realizan los desarrolladores e ingenieros de software con pleno conocimiento del código fuente y la estructura interna del software.
Si eres un probador de control de calidad sin estos conocimientos, tendrás que pasar el software a otra persona antes de que puedan comenzar las pruebas de caja blanca.
2. Casos de prueba
Es necesario escribir casos de prueba antes de ejecutar pruebas de caja blanca. Los casos de prueba son conjuntos individuales de instrucciones que describen las acciones que los probadores o desarrolladores pueden realizar para probar las funciones y el funcionamiento de un sistema.
En las pruebas de caja blanca, los casos de prueba son diseñados por personas con un conocimiento completo de la estructura interna del sistema y creados para verificar si éste funciona como debería.
3. Herramientas de prueba de caja blanca
Hay muchas herramientas disponibles para las pruebas de caja blanca que permiten acceder al código fuente y a los documentos de diseño, además de completar la automatización de las pruebas. Además, los usuarios pueden elegir entre diferentes precios, como las versiones ZAPTEST FREE y ZAPTEST ENTERPRISE, que ofrecen una mayor flexibilidad.
Elija las herramientas que desea utilizar antes de empezar las pruebas, haciendo hincapié en asegurarse de que tienen la funcionalidad adecuada, como el funcionamiento multiplataforma y la tecnología de visión por ordenador, para que usted vea lo mismo que las pruebas automatizadas.
Asegúrese de que todos los desarrolladores e ingenieros implicados en las pruebas sepan cómo y cuándo utilizarlos.
El proceso de pruebas de caja blanca
Las pruebas de caja blanca implican un conocimiento mucho mayor del funcionamiento de un sistema que las pruebas de caja negra, y algunos de los pasos de las pruebas de caja blanca son un poco diferentes.
Los probadores de caja blanca deben identificar primero las características o componentes del sistema que desean verificar antes de trazar las posibles rutas a probar y escribir los casos de prueba a ejecutar.
El proceso de prueba de caja blanca también puede variar en función de la técnica de prueba de caja blanca que utilice. Siga los pasos que se indican a continuación para averiguar cómo realizar pruebas de caja blanca maximizando la cobertura de la ruta.
Paso 1: Identificar las características que se van a probar
Antes de realizar pruebas de caja blanca, piense exactamente qué quiere probar y cómo va a hacerlo. Esto suele implicar centrarse en un pequeño conjunto de funciones o características y crear un conjunto de casos de prueba sólo para probarlas.
Realizará este paso una y otra vez para diferentes áreas del sistema con el fin de maximizar la cobertura de las pruebas, pero es importante dividir las diferentes áreas en pruebas individuales.
Cuanto más estrecho sea su enfoque, más fiables y precisas serán sus pruebas.
Paso 2: Trazar todas las trayectorias posibles en un diagrama de flujo
Una parte importante del trabajo de preparación para las pruebas de caja blanca consiste en trazar en un diagrama de flujo todas las rutas posibles que hay que probar.
Este paso puede ayudarle a maximizar la cobertura de rutas y asegurarse de que está verificando todas las rutas posibles en cada caso de prueba que cree. Dibuje un diagrama de flujo que cubra todas las rutas posibles para cada función o componente que esté probando, por ejemplo, esbozando varias rutas que surgen cuando se introducen diferentes valores.
Paso 3: Identificar todos los caminos posibles
Observe su diagrama de flujo e identifique todos los caminos posibles que pueden tomar los usuarios, empezando por el primer paso de su diagrama de flujo y terminando en el último paso.
Cuantas más ramas y decisiones aparezcan en su diagrama de flujo, más rutas únicas existirán. Comprender cuántas rutas posibles únicas existen puede ayudarle a asegurarse de que sus casos de prueba cubren cada posibilidad.
Paso 4: Crear casos de prueba
La siguiente etapa de las pruebas de caja blanca consiste en escribir casos de prueba que verifiquen todas las rutas que ha identificado anteriormente.
Es importante asegurarse de que los casos de prueba cubren todos los caminos posibles y describen claramente las acciones que los probadores o desarrolladores deben realizar para ejecutar cada caso de prueba.
Para cada caso de prueba, incluya un ID y un nombre de caso de prueba junto con una breve descripción, así como los resultados esperados de cada prueba.
Paso 5: Ejecutar los casos de prueba
Ahora es el momento de ejecutar los casos de prueba, que es lo que la mayoría de la gente considera que es llevar a cabo las pruebas de caja blanca propiamente dichas.
Los probadores ejecutan los casos de prueba siguiendo el breve conjunto de instrucciones descritas en cada caso de prueba e informando del resultado de cada caso de prueba. Esto se puede comparar con los resultados esperados descritos en el caso de prueba para determinar si cada prueba de caja blanca se ha superado o no.
Paso 6: Repetir el ciclo según sea necesario
Al igual que otras formas de pruebas de software, las pruebas de caja blanca consisten en comparar cómo funciona realmente el sistema con las expectativas que tienen los probadores de cómo debería funcionar el sistema.
Si los probadores descubren que el sistema no se comporta como esperan, esto puede significar que la prueba de caja blanca ha fallado, y los desarrolladores deben corregir líneas de código antes de realizar más pruebas.
Repita el proceso anterior para realizar más pruebas de caja blanca hasta que el sistema se haya probado a fondo y se hayan corregido los posibles errores.
Prácticas recomendadas para las pruebas de caja blanca
Las mejores prácticas en las pruebas de caja blanca dependen del tipo de prueba que se esté realizando y de la fase del proceso de prueba en la que se encuentre.
Dado que la mayor parte de las pruebas de caja blanca tienen lugar durante las pruebas unitarias y las pruebas de integración, la mayoría de las mejores prácticas de pruebas de caja blanca se aplican a estas fases.
1. Maximizar la cobertura de las pruebas
Por definición, es importante maximizar la cobertura de las pruebas cuando se realizan pruebas de caja blanca para garantizar que un alto porcentaje del software se prueba durante esta fase.
Puede hacerlo maximizando la cobertura de rutas y ramas y escribiendo casos de prueba que exploren todas las rutas y resultados posibles durante la fase de preparación.
2. Verificar el comportamiento y el rendimiento
Cuando escriba casos de prueba en pruebas de caja blanca, querrá crear casos de prueba que verifiquen que el sistema funciona como usted espera, así como casos de prueba que verifiquen el rendimiento del sistema.
Por ejemplo, además de comprobar que determinadas acciones conducen a determinados resultados, también puede verificar la rapidez con la que el sistema puede realizar determinadas tareas o cómo se ve afectado el rendimiento por distintas variables.
3. Escribir casos de prueba independientes entre sí
Si quieres verificar dos características distintas, por ejemplo, si una clase de código depende de una base de datos concreta, crea una interfaz abstracta que refleje esta conexión a la base de datos e implementa una interfaz con un objeto mock para probar esta conexión.
Esto garantiza que los casos de prueba verifiquen las conexiones que usted desea que verifiquen y no otra cosa.
4. Cubrir todos los caminos y bucles
Maximizar la cobertura de las pruebas significa cubrir todos los caminos posibles, teniendo en cuenta los bucles condicionales y otros tipos de bucles en el código.
Asegúrese de diseñar casos de prueba que exploren completamente las posibles rutas y verifiquen que los bucles se comportan como usted espera que lo hagan, independientemente de la entrada.
7 errores y trampas al
Realización de pruebas de caja blanca
Cuando empiece a realizar pruebas de caja blanca, es importante que conozca algunos de los escollos más comunes en los que suelen caer los desarrolladores al llevarlas a cabo. Los errores comunes en las pruebas de caja blanca pueden causar retrasos e imprecisiones que podrían perjudicar la calidad y el calendario de la publicación del software.
1. Pensar que las pruebas de caja blanca no son necesarias
Algunos probadores piensan que las pruebas de caja blanca no son necesarias, porque las pruebas de caja negra comprueban todas las salidas externas del software y, si éstas funcionan correctamente, se supone que el funcionamiento interno del sistema también lo hace.
Sin embargo, las pruebas de caja blanca pueden ayudar a los desarrolladores a localizar problemas y fallos que no siempre aparecen en las pruebas de caja negra, y son esenciales para verificar la seguridad de los sistemas informáticos.
Por ejemplo, si un programa tiene una fuga de memoria que provoca una degradación del rendimiento durante largos periodos de tiempo que las pruebas de caja negra no examinan, las pruebas de caja blanca son la única opción para rebuscar en el código y encontrar el problema antes de una publicación generalizada.
2. Realización manual de todas las pruebas de caja blanca
Algunos desarrolladores pueden pensar que es tan fácil realizar pruebas de caja blanca como de caja negra.
Sin embargo, las pruebas de caja blanca consumen mucho más tiempo y los desarrolladores que intentan realizarlas de forma completamente manual pueden descubrir que es imposible llevar a cabo las comprobaciones manuales según los estándares deseados o maximizando la cobertura de las pruebas.
3. Asignación de probadores para realizar los casos de prueba
Las pruebas de caja blanca deben ser realizadas íntegramente por desarrolladores, ingenieros de software y personas que comprendan a la perfección el funcionamiento interno del sistema de software.
Algunos desarrolladores creen que pueden pasar las pruebas de caja blanca a los evaluadores de control de calidad una vez que han escrito ellos mismos los casos de prueba, pero esto sólo dará lugar a una ejecución deficiente y reducirá la calidad de la documentación.
4. Prisas en las pruebas
Las pruebas de software son un proceso largo y laborioso, y algunos desarrolladores pueden tener la tentación de apresurarse con las pruebas de caja blanca para pasar a la siguiente fase de desarrollo. Es importante asignar tiempo y recursos suficientes a las pruebas de caja blanca para garantizar que los desarrolladores no se sientan apresurados y dispongan de tiempo suficiente para maximizar la cobertura de las pruebas.
5. Documentación deficiente
Mantener la documentación adecuada antes, durante y después de las pruebas garantiza que todas las personas implicadas en el desarrollo y las pruebas de software tengan acceso a la información correcta en el momento adecuado.
Asegúrese de que todos los miembros del equipo de desarrollo saben cómo redactar documentación clara y cómo informar de los resultados de las pruebas de caja blanca.
6. Utilización incorrecta de las herramientas de automatización
Las herramientas de automatización pueden facilitar la realización de pruebas de caja blanca, pero es importante asegurarse de que todo el equipo entiende qué herramientas de automatización utiliza y cómo utilizarlas.
Diferentes herramientas son adecuadas para diferentes tipos de pruebas, por lo que es importante elegir herramientas de automatización que sean adecuadas para las pruebas de caja blanca y aprender a utilizar sus funciones correctamente.
Por ejemplo, algunas herramientas no integran la automatización y se centran en la recopilación de información y la organización de tickets, lo que dista mucho de ser ideal para las pruebas automatizadas. Por el contrario, las herramientas de pila completa como ZAPTEST cubren todo el proceso de pruebas a través de características como la automatización de cualquier tarea, lo que las hace apropiadas para un trabajo de pruebas de caja blanca más eficaz.
7. No trabajar con el equipo de control de calidad
El hecho de que las pruebas de caja blanca las planifiquen y realicen los desarrolladores no significa que el equipo de control de calidad no deba participar de ninguna manera.
Es importante transmitir los resultados de las pruebas de caja blanca al equipo de control de calidad para que entiendan lo que se ha probado hasta ahora y cómo los resultados de las pruebas de caja blanca pueden afectar a la forma en que el equipo de control de calidad aborda las pruebas de caja negra.
Si no se involucra al equipo de control de calidad, se crea una desconexión potencial entre los distintos departamentos, lo que puede dar lugar a una comunicación deficiente y a una retroalimentación peor en la fase posterior de las pruebas. El resultado es un nivel de calidad significativamente inferior en el producto final.
Tipos de resultados de las pruebas de caja blanca
Cuando realice pruebas de software de caja blanca, recibirá diversos resultados en función de los resultados de las pruebas que lleve a cabo. Comprender estos resultados de las pruebas de caja blanca puede ayudarle a saber qué pasos dar a continuación.
1. 1. Resultados de las pruebas
Los resultados de sus pruebas de caja blanca le dirán si necesita continuar con más pruebas, si hay defectos que necesitan ser corregidos, y si cada caso de prueba individual ha pasado o fallado. La documentación exhaustiva es necesaria porque ayuda a los desarrolladores y probadores a comprender los resultados de las pruebas de caja blanca.
2. Defectos
Los defectos se pueden identificar en las pruebas de caja blanca, y a veces el resultado de sus pruebas de caja blanca serán defectos y errores.
Si el sistema de software no se comporta como usted espera durante las pruebas de caja blanca, esto puede indicar que hay defectos graves en el programa que deben repararse antes de continuar con el desarrollo y las pruebas.
3. Informes de las pruebas
Los informes de pruebas son informes elaborados por desarrolladores y probadores durante y después de las pruebas de software.
Contienen detalles de los resultados de la prueba, incluidos los casos que se han superado y los que no, los defectos detectados durante la prueba y las recomendaciones para los siguientes pasos.
Los desarrolladores utilizan los informes de las pruebas para comunicarse con otros desarrolladores cuya tarea puede ser corregir los fallos y errores detectados durante las pruebas.
Ejemplos de pruebas de caja blanca
Las pruebas de caja blanca permiten a los desarrolladores comprobar que la estructura interna del sistema de software funciona como debe, independientemente de los resultados y salidas externas del sistema.
Los ejemplos siguientes ilustran cómo las pruebas de caja blanca pueden ayudar a los desarrolladores a verificar las funciones internas del software.
1. Ejemplo de página de registro de comercio electrónico
Un ejemplo de prueba de caja blanca es cómo los desarrolladores prueban las funciones de un sitio web. Si está intentando probar la página de registro de un sitio web de comercio electrónico, las pruebas de caja blanca pueden permitir a los desarrolladores comprender si las funciones y clases implicadas en el registro funcionan como deberían cuando se lleva a cabo la función de registro.
Esto incluye específicamente toda la información que un usuario introduce y evalúa los parámetros detrás del formulario, incluyendo las fechas que son y no son válidas y lo que el formulario ve como una dirección de correo electrónico legítima.
A continuación, el equipo introduce una serie de cadenas que ponen a prueba el formulario, con algunas diseñadas para fallar y otras para tener éxito, antes de evaluar los resultados frente a los previstos.
Las pruebas de caja negra, en cambio, sólo comprueban si la página funciona, sin analizar por qué ni cómo.
2. Ejemplo de calculadora
Las calculadoras de aplicaciones son otro ejemplo de pruebas de caja blanca.
Si estás creando una calculadora que se utiliza como parte de una aplicación, los probadores de caja negra se limitarán a comprobar si la salida de la calculadora es correcta cuando se utiliza la calculadora tal y como está prevista.
Los probadores de caja blanca comprobarán los cálculos internos de la calculadora para verificar cómo se ha calculado el resultado y si éste es correcto. Esto es más útil para cálculos más complejos con varias etapas, como los impuestos. Los evaluadores examinan el código para ver los pasos que sigue la calculadora y el orden en que se suceden, antes de ver el resultado después de cada etapa.
Si la entrada de la calculadora es (7*4) – 6 y la salida es 22, esto es correcto, y la prueba de caja negra pasaría esta prueba. Sin embargo, esto se debe a que 7*4 = 28, y 28 – 6 es 22. Las pruebas de caja blanca podrían revelar que el software encontró este resultado realizando 7*4 = 32, y 32 – 6 = 22, ninguna de las cuales es correcta.
Esta mayor comprensión muestra que el cálculo es preciso después de cada etapa específica, encuentra la etapa en la que puede no serlo y lo resuelve más rápidamente, ya que el probador puede ver claramente dónde se produce el problema.
Tipos de errores y fallos en las pruebas de caja blanca
Durante las pruebas de caja blanca, es posible identificar y localizar errores que pueden afectar al funcionamiento interno de los sistemas. Estos fallos pueden afectar a funciones externas o afectar al rendimiento o la fiabilidad.
A continuación se enumeran algunos de los tipos más comunes de errores y fallos que surgen durante las pruebas de caja blanca.
1. Errores lógicos
Los errores lógicos surgen en las pruebas de caja blanca porque éstas ponen de manifiesto áreas en las que el programa no funciona de forma lógica o en las que las funciones y condiciones se utilizan de forma incorrecta dentro del código del software.
Los errores lógicos pueden presentarse como fallos del sistema o simplemente dar lugar a comportamientos y resultados inesperados.
2. Errores de diseño
Las pruebas de caja blanca pueden ayudar a los desarrolladores a identificar errores de diseño en el código. Los errores de diseño surgen cuando hay una diferencia entre el flujo lógico del software y la implementación real del mismo. Pueden provocar comportamientos inesperados y errores de funcionamiento.
3. 3. Errores tipográficos
Los errores tipográficos y los fallos de sintaxis son equivocaciones que surgen a causa de un error humano, por ejemplo, porque un desarrollador tecleó mal una frase concreta o añadió la puntuación incorrecta a una línea de código. Pequeños errores como éste pueden dar lugar a funciones rotas y declaraciones que el software no puede leer, lo que puede causar errores importantes en el sistema.
Métricas comunes de las pruebas de caja blanca
Cuando realice pruebas de caja blanca, las métricas de pruebas comunes pueden ayudarle a medir el éxito y la exhaustividad de sus pruebas de caja blanca, así como a comprender la calidad del trabajo de sus desarrolladores.
Las métricas de las pruebas informan al proceso de desarrollo porque pueden identificar áreas de mejora u orientar el proceso de pruebas de cara al futuro.
1. Cobertura del código
Una de las principales características de las pruebas de caja blanca es que deben cubrir la mayor parte posible del código, y se puede medir cuánto código se ha cubierto con las métricas de cobertura de código.
Las métricas de cobertura del código muestran qué parte del código total de la aplicación se ha verificado mediante pruebas de caja blanca. Por lo general, los desarrolladores intentan cubrir el 100% del código del software mediante pruebas de caja blanca.
La cobertura del código puede dividirse en distintas métricas: cobertura de rutas, segmentos, sentencias y ramas.
La cobertura de condiciones compuestas es otro tipo de métrica de cobertura de código que comprueba que cada condición dentro de un conjunto se ha comprobado a lo largo de múltiples rutas y combinaciones de rutas.
2. Métricas de defectos
Las métricas de defectos reflejan cuántos defectos se han encontrado, lo buenas que son sus pruebas de caja blanca a la hora de identificar defectos y qué porcentajes del código superan o no las pruebas de caja blanca.
Las métricas de defectos pueden presentarse como el número de defectos por cada mil líneas de código o el número de defectos totales del programa. Aunque un número bajo de defectos pueda parecer positivo, los desarrolladores deben asegurarse de que no se debe a que se hayan pasado por alto defectos en las pruebas.
3. Ejecución de la prueba
Las métricas de ejecución de pruebas pueden ayudar a los desarrolladores a ver rápidamente qué proporción del total de pruebas se ha ejecutado hasta el momento y cuántas quedan por ejecutar. Las métricas de ejecución de texto ayudan a los equipos de software a comprender en qué punto se encuentra el progreso de las pruebas de caja blanca y si las pruebas de software automatizadas se están ejecutando o no según lo esperado.
Sin embargo, es posible tener tanto falsos positivos como falsos negativos, lo que puede afectar a la precisión de esta métrica.
4. Duración de la prueba
Las métricas de duración de las pruebas nos indican cuánto tiempo se tarda en ejecutar las pruebas automatizadas, lo que es especialmente importante en las pruebas de caja blanca, ya que la automatización es esencial para maximizar la eficacia y la cobertura de las pruebas.
La duración de las pruebas suele ser un cuello de botella en el desarrollo ágil de software, por lo que comprender cuánto tardan en ejecutarse puede ayudar a los equipos de desarrollo a acelerar el proceso de desarrollo.
Sin embargo, es importante recordar que las métricas de duración de las pruebas no dicen nada sobre la calidad de las pruebas que se están ejecutando.
Herramientas de pruebas de caja blanca
Las herramientas y la tecnología pueden hacer que las pruebas de caja blanca sean considerablemente más precisas, eficaces y exhaustivas. Las herramientas de pruebas de caja blanca pueden ayudar a los ingenieros de software a automatizar las pruebas de caja blanca, registrar y documentar el proceso de pruebas de caja blanca y gestionar las pruebas de caja blanca de principio a fin.
5 mejores herramientas gratuitas de pruebas de caja blanca
Si aún no quiere invertir en costosas herramientas de prueba de caja blanca, puede probar una gran cantidad de herramientas de prueba de caja blanca gratuitas en línea sin pagar nada.
Las herramientas de pruebas gratuitas no siempre ofrecen la misma funcionalidad que las herramientas empresariales, pero son un buen punto de partida para los principiantes en las pruebas de caja blanca y pueden ayudar a los equipos de desarrollo a comprender mejor qué herramientas y tecnologías necesitan.
1. Edición GRATUITA de ZAPTEST
ZAPTEST es una herramienta de pruebas de software y software de automatización de procesos robóticos que permite a los desarrolladores y probadores de control de calidad automatizar tanto las pruebas de caja blanca como las de caja negra.
La versión gratuita de ZAPTEST permite múltiples usuarios virtuales, múltiples iteraciones y soporte en el foro de usuarios. La aplicación funciona tanto con fuentes de datos locales como externas y se integra con HP ALM, Rally y JIRA. Los usuarios a los que les guste la oferta gratuita de ZAPTEST y quieran ver más de lo que ofrece la empresa también pueden solicitar la actualización a la edición para empresas una vez que esté lista.
2. Bugzilla
Bugzilla es una herramienta de pruebas de software de código abierto muy popular que permite a los desarrolladores rastrear errores y defectos en el software y gestionar el ciclo de vida de los errores.
Bugzilla facilita la asignación de errores a los desarrolladores, su priorización y verificación, y su cierre una vez solucionados. Bugzilla es una gran herramienta para los equipos que aún intentan estandarizar su enfoque de la notificación de errores, y su uso es totalmente gratuito.
3. OpenGrok
OpenGrok es un navegador de código abierto y motor de búsqueda de código base. Es compatible con código escrito en Java C++, JavaScript y Python, además de otros lenguajes de programación.
Si quieres poder navegar rápidamente por una gran base de código durante las pruebas de caja blanca, OpenGrok es completamente gratuito y fácil de usar.
4. SQLmap
SQLmap es otra herramienta de código abierto que se considera casi esencial en las pruebas de caja blanca. SQLmap regula el flujo de explotación y detección de fallos de inyección SQL.
SQLmap, autodenominada “herramienta de pruebas de penetración”, puede ayudar a los encargados de las pruebas de caja blanca a identificar y localizar errores de seguridad en el código fuente y corregirlos antes de seguir adelante.
5. Emma
Emma es un conjunto de herramientas de código abierto que puede medir la cobertura de tu código si trabajas en Java. Es una forma muy rápida de determinar la cobertura del código y de hacer un seguimiento individual de la cantidad de código que ha cubierto cada miembro del equipo de desarrollo.
Emma admite la cobertura de clases, métodos, líneas y bloques básicos, y está totalmente basada en Java.
5 mejores herramientas de pruebas de caja blanca para empresas
Si está buscando herramientas que ofrezcan una mayor funcionalidad o un mejor soporte, las herramientas de pruebas de caja blanca empresariales pueden ser más adecuadas para su equipo de desarrollo.
1. Edición ZAPTEST ENTERPRISE
La edición empresarial de ZAPTEST es la versión mejorada de ZAPTEST gratuito. En esta versión, los usuarios pueden beneficiarse de plantillas OCR ilimitadas, iteraciones ilimitadas y scripts VBScript y JavaScript ilimitados.
La edición empresarial de ZAPTEST ofrece un conjunto más completo de herramientas para los equipos de desarrollo que desean cambiar a la automatización, y la versión empresarial también viene con el apoyo de expertos para asegurarse de que su equipo obtenga el máximo provecho de la automatización de pruebas de software de ZAPTEST y la tecnología RPA.
2. Violinista
Fiddler es un conjunto de herramientas de Telerik que está hecho para aplicaciones web de prueba de caja blanca. Fiddler puede registrar todo el tráfico HTTP entre su sistema e Internet y evaluar los puntos de interrupción establecidos, así como ajustar los datos salientes y entrantes. Está disponible en distintos formatos en función de tu presupuesto y necesidades, por lo que hay una edición de Fiddler para casi cualquier equipo.
3. Fortalecer HP
HP Fortify, antes conocida como Fortify, es otra herramienta de pruebas de seguridad que ofrece soluciones de seguridad integrales para pruebas de caja blanca. El conjunto de herramientas Fortify incluye la herramienta Fortify Source Code Analysis, que analizará automáticamente su código fuente en busca de vulnerabilidades que podrían dejar su aplicación expuesta a ciberataques.
4. Unidad ABAP
La versión empresarial de ABAP Unit permite a los desarrolladores de software realizar pruebas unitarias tanto manuales como automatizadas de forma rápida y sencilla. Los desarrolladores escriben pruebas unitarias dentro de la aplicación ABAP y utilizan estas pruebas para verificar las funciones del código e identificar errores dentro de las pruebas unitarias.
Los equipos de software que deseen probar esta herramienta pueden empezar con la versión gratuita de ABAP Unit antes de pasar a la edición para empresas.
5. LDRA
LDRA es un conjunto de herramientas patentado que puede utilizarse para la cobertura de sentencias, la cobertura de ramas y la cobertura de decisiones al realizar pruebas de caja blanca. Es una herramienta excelente si desea comprobar que su código fuente cumple los requisitos estándar de conformidad, rastreo e higiene del código.
¿Cuándo utilizar la empresa?
frente a las herramientas de prueba de caja blanca freemium?
Tanto las herramientas de prueba de software empresariales como las freemium tienen su lugar en cualquier equipo moderno de desarrollo de software. A medida que su equipo crece y las pruebas automatizadas se vuelven más importantes para su enfoque de pruebas de caja blanca, es probable que desee pasar de trabajar principalmente con herramientas de pruebas gratuitas a trabajar con herramientas empresariales que ofrecen más funcionalidad y usos ilimitados.
Sin embargo, hay situaciones específicas en las que las herramientas freemium pueden ser más adecuadas que las herramientas empresariales.
Muchos desarrolladores deciden empezar con herramientas freemium cuando están experimentando con nuevas funciones y tecnologías, principalmente para evaluar si estas tecnologías son adecuadas para su equipo antes de invertir en tecnologías empresariales.
También puede probar versiones gratuitas de herramientas empresariales como ZAPTEST para poder probarlas antes de comprarlas y saber más sobre lo que ofrecen las herramientas empresariales.
Por último, algunas herramientas freemium como Emma y Bugzilla se especializan en funciones nicho pero importantes que ofrecen ventajas continuas incluso a los equipos de software dispuestos a pagar por tecnologías empresariales.
Pruebas de caja blanca: lista de comprobación, consejos y trucos
Cuando esté listo para realizar pruebas de caja blanca, asegúrese de que tiene todo lo que necesita antes de empezar. A continuación se muestra una lista de cosas que debe recordar antes de comenzar las pruebas de caja blanca para maximizar la cobertura de sus pruebas y mejorar la precisión de los resultados de sus pruebas de caja blanca.
1. Utilizar herramientas de automatización
Las herramientas de automatización pueden acelerar enormemente el proceso de realización de pruebas de caja blanca, así como reducir la tasa de errores y aumentar la precisión general.
Hoy en día, casi todos los equipos de software utilizan algún nivel de automatización para llevar a cabo pruebas de caja blanca, por lo que experimentar con diversas herramientas y tecnologías de automatización antes de comenzar las pruebas de caja blanca puede ayudarle a elegir las herramientas que desea utilizar antes de iniciar las pruebas.
2. Aspirar a una cobertura de pruebas del 100
Probablemente no alcance su objetivo de una cobertura de pruebas del 100%, pero intentar acercarse lo máximo posible a esta cifra es lo mejor cuando se realizan pruebas de caja blanca.
Utilice herramientas de cobertura de pruebas para realizar un seguimiento y medir métricas individuales como la cobertura de rutas y la cobertura de ramas, y asegúrese de que todas las rutas y ramas más importantes de su software se han cubierto durante las pruebas de caja blanca.
3. Elaborar informes de ensayo claros
Al igual que ocurre con otras formas de pruebas de software, asegúrese de que su equipo sabe cómo compilar informes de pruebas precisos y claros después de que se haya llevado a cabo cada fase de la prueba.
Un informe de prueba debe redactarse en un formato fácil de entender e incluir detalles del enfoque de la prueba, así como un resumen de los productos y resultados de cada caso de prueba ejecutado. El informe final debe justificar las medidas adoptadas y formular recomendaciones para los próximos pasos.
4. Mida su éxito con métricas de prueba
Las métricas de las pruebas ayudan a los equipos de software a seguir y registrar el progreso de las pruebas de caja blanca y ofrecen información valiosa que puede servir de base para futuros procesos de desarrollo.
Es importante que los desarrolladores utilicen métricas para comprender la eficacia de las pruebas que están llevando a cabo y el grado de limpieza de su código inicial, de modo que puedan mejorar su trabajo en el futuro.
Pruebas de caja blanca:
Conclusión
Las pruebas de caja blanca en ingeniería de software son un tipo esencial de prueba de software que verifica la estructura interna y la lógica del código fuente de una aplicación de software.
Junto con las pruebas de caja negra, las pruebas de caja blanca no sólo verifican que el software funciona como se espera, sino que el código interno es lógico, limpio y completo.
Las pruebas de caja blanca se realizan con mayor frecuencia en las pruebas unitarias y de integración, y siempre las llevan a cabo desarrolladores e ingenieros de software con un conocimiento completo del código interno del software.
Aunque algunas pruebas de caja blanca pueden llevarse a cabo manualmente, hoy en día gran parte de las pruebas de caja blanca se automatizan debido a las mejoras en velocidad, eficacia y cobertura que ofrece la automatización de las pruebas de caja blanca.
Preguntas frecuentes y recursos
Si desea obtener más información sobre las pruebas de caja blanca, puede consultar numerosos recursos gratuitos en línea. Puede utilizar vídeos, libros y otros recursos para aprender a realizar pruebas de caja blanca y asegurarse de que sus normas de pruebas de caja blanca siguen las mejores prácticas.
1. Los mejores cursos sobre automatización de pruebas de caja blanca
Si desea obtener más información sobre la automatización de pruebas de caja blanca, puede realizar un curso sobre pruebas de software y pruebas de caja blanca. Algunos de estos cursos están acreditados y ofrecen cualificaciones formales, mientras que otros son cursos informales en línea diseñados para ayudar a desarrolladores y probadores de software que quieren mejorar sus conocimientos sobre un tema concreto.
Algunos de los mejores cursos de pruebas de caja blanca disponibles en línea hoy en día incluyen:
2. ¿Cuáles son las cinco preguntas más frecuentes en una entrevista sobre automatización de pruebas de caja blanca?
Si se está preparando para una entrevista en la que podría hablar de pruebas de caja blanca, técnicas de caja blanca y herramientas de automatización, es importante que lo sepa.
- ¿Qué diferencia hay entre las pruebas de caja blanca y las de caja negra?
- ¿Por qué son importantes las pruebas de caja blanca?
- ¿Cuáles son algunos de los diferentes enfoques que se pueden adoptar para las pruebas de caja blanca?
- ¿Qué procesos intervienen en las pruebas de caja blanca y cómo podemos mejorarlos?
- ¿Cuáles son algunas de las herramientas y tecnologías que puede utilizar para que las pruebas de caja blanca sean más rápidas o precisas?
3. Los mejores tutoriales de YouTube sobre pruebas de caja blanca
Si quieres aprender más sobre las pruebas de caja blanca, ver tutoriales en YouTube puede ayudarte a entender cómo funcionan y a ver explicaciones visuales de los procesos y enfoques que intervienen en las pruebas de caja blanca.
Algunos de los tutoriales más informativos de YouTube en línea ahora incluyen:
- Udacity: Ejemplo de pruebas de caja blanca
- Gurú99: ¿Qué es la prueba de caja blanca?
- Pruebas de caja blanca frente a pruebas de caja negra
- Técnicas de pruebas de caja blanca
- Software Testing Mentor: ¿Qué es la prueba de caja blanca?
4. Cómo mantener las pruebas de caja blanca
El mantenimiento de las pruebas de software garantiza que, una y otra vez, las pruebas que realice sean exhaustivas y adecuadas a su propósito. Es importante mantener todos los tipos de pruebas de software, tanto en las pruebas de caja negra como en las de caja blanca, porque el código sobre el que se realizan las pruebas cambia constantemente con cada reparación de errores e iteración. Esto significa que sus guiones de prueba deben cambiar con él.
El mantenimiento de las pruebas de caja blanca implica mantener actualizado el marco de automatización de las pruebas y aplicar procesos diseñados para garantizar que las pruebas y los casos de prueba se actualizan con regularidad.
Para ello:
Integrar el mantenimiento en el diseño de las pruebas:
Si tiene en cuenta el futuro de las pruebas de caja blanca en el momento de construir y diseñar sus pruebas de caja blanca, le resultará más fácil mantener las pruebas en el futuro.
Permitir una comunicación clara entre los equipos:
Asegúrese de que todos los miembros de su equipo de desarrollo disponen de múltiples canales de comunicación para que, en cuanto se realicen cambios en el código, éstos puedan reflejarse rápidamente en las pruebas.
Sé adaptable:
A veces, es posible que realice cambios en el código que no había previsto. Asegúrese de que su equipo sabe adaptarse rápidamente a estos cambios y cuenta con las habilidades necesarias para realizar un seguimiento de estos cambios en las pruebas.
Reevaluar constantemente los protocolos de ensayo:
Los protocolos de pruebas que se aplicaron al principio pueden no ser adecuados una vez que el software ha sufrido varios cambios y mejoras. Reevalúe sus protocolos de pruebas en fases periódicas para comprobar si siguen siendo adecuados.
5. Los mejores libros sobre pruebas de caja blanca
Las pruebas de caja blanca son un tema profundo que puede llevar años dominar. Si desea convertirse en un experto en pruebas modernas de caja blanca en pruebas de software, puede leer libros sobre pruebas de caja blanca escritos por desarrolladores, académicos e ingenieros.
Algunos de los mejores libros actuales sobre pruebas de caja blanca y automatización de pruebas son:
- El arte de probar el software, tercera edición por Glenford J. Myers, Corey Sandler, Tom Badgett, Todd M. Thomas
- Pruebas de software: A Craftsman’s Approach, Fourth Edition, por Paul C. Jorgensen
- Cómo romper software: A Practical Guide to Testing por James Whittaker
- La Automatización de Pruebas de Software Suficiente por Dan Mosley y Bruce Posey
Puede encontrar estos libros en librerías, bibliotecas y en Internet. También puede encontrar otros materiales de lectura y recursos de aprendizaje en las listas de lectura de buenos cursos y programas de pruebas de software.