Introducción al testing
Aprende con este curso de introducción al testing todo sobre la terminología y los conceptos referidos al testing,...
Dentro del mundo de las pruebas de software, tenemos las conocidas como pruebas de caja negra o black box. Sobre ellas vamos a profundizar en este post.
Las pruebas de caja negra, también conocidas como pruebas funcionales, son un tipo de pruebas de software basadas en el grado de conocimiento de los procesos - en este caso nulo - que se dispone al momento de realizar un conjunto de pruebas.
Para explicar el origen del término es útil realizar un Diagrama EPS (Entrada, Proceso y Salida) donde cada elemento corresponde a:
Las operaciones que se realizan en el proceso, por ser de tipo caja negra no son visibles por el usuario, ya que desconoce su implementación. Sin embargo, a pesar de no conocer la forma en la que se le da solución al problema, conoce los datos de entrada y la salida que arroja el proceso.
El desconocimiento de un proceso no implica que el mismo no pueda ser probado. La técnica de caja negra permite ilustrar el siguiente ejemplo en el que es necesario obtener el menor de dos números:
Por ser caja negra se desconoce la forma en la que se lleva a cabo el proceso, mientras que se conoce a 5 y 9 como los valores de los datos de entrada, y que el menor números de ambos es 5. ¿Por qué elegir este tipo de pruebas para ciertos procesos? ¿Cuándo es conveniente aplicar esta técnica?
Si bien el conocimiento del proceso descrito anteriormente puede resultar trivial, en la construcción de un elemento de software, existen múltiples factores que influyen en la toma de decisiones respecto a qué tipo de prueba es conveniente aplicar. Algunos ejemplos que justifican la elección de pruebas de caja negra pueden ser la experiencia de quien realiza las pruebas, el nivel de accesos y permisos para comprobar las operaciones que realiza internamente el proceso o incluso la etapa en la que se encuentre el desarrollo del producto de software.
La generación de un caso de prueba puede realizarse a partir de la estructura de un Documento ERS (Especificaciones de Requisitos de Software) para cada una de las funcionalidades que un software deberá cumplir. Puesto que cada caso de prueba de caja negra estará relacionado con cada funcionalidad del software, también son conocidas como pruebas funcionales.
Esta tarea de creación de casos de prueba es parte de las actividades que realiza un tester o analista de calidad, para lo cual, deberá trabajar de forma coordinada junto al analista funcional que relevó cierta funcionalidad de forma tal que pueda lograrse un entendimiento mutuo en el funcionamiento esperado, así como la trazabilidad necesaria entre requerimiento funcional y caso de prueba.
Para el desarrollo de un requerimiento y su posterior caso de prueba estaremos abordando las implicancias del registro de cierto usuario en una aplicación web.
A partir del requerimiento funcional “El sistema deberá permitir el registro de un usuario” y analizando los datos de entrada, proceso y salida es que podremos elaborar y comprender el alcance de su prueba de caja negra.
El detalle del requerimiento funcional junto a la técnica de caja negra nos permite elaborar el siguiente caso de prueba para el registro de un usuario:
Una vez elaborado el análisis previo, sólo resta definir cuáles serán los datos de entrada y realizar la prueba funcional en la aplicación web. Considerando que los datos de entrada a utilizar no se encuentran ya registrados, y con un mensaje de confirmación de registro una vez ingresados los datos, es posible concluir que la prueba de caja negra se ha realizado correctamente sin tener conocimiento de cuáles son las implicancias del proceso de registro del usuario y cómo se efectúa dicho proceso.
Esto no quiere decir que las pruebas de caja negra sean incompletas o no tengan la profundidad necesaria para considerarlas como pruebas sino que están asociadas al comportamiento de lo qué debe suceder y no del cómo. Las pruebas de caja negra se abstraen de los detalles del proceso y su foco está puesto en definir correctamente cuáles son los datos de entrada y qué salida debe obtenerse para el registro del usuario.
Los detalles de la implementación del proceso de registro de usuario podrán definirse en otro tipo de prueba conocida como caja blanca.
Las pruebas de caja negra suelen estar asociadas a los siguientes factores:
Las pruebas de caja negra tienen por objetivo poder reproducir, verificar y asegurar el correcto funcionamiento de las acciones que realiza un usuario promedio de un software. En el caso de una aplicación web, es posible distinguir aquellas funcionalidades que son inherentes a cada lanzamiento de una nueva versión, así como las que han sido incluidas por primera vez.
Existen diferentes estrategias para definir un plan de pruebas junto a sus casos y tipos de prueba asociados. Una estrategia a considerar puede ser la de analizar cuáles son las funcionalidades que no sufrirán modificaciones entre cada lanzamiento, siendo éstas candidatas a ser automatizadas, simulando el comportamiento del usuario por un software que genere el código que reproduzca los pasos para completar cada una de sus acciones.
El desarrollo de esta tarea no pretende ser resuelta por una sola persona en un sólo lanzamiento, sino que a lo largo del surgimiento de una nueva versión, se irá completando el grado de avance hasta llegar - en el mejor de los casos - al 100% de automatización de las pruebas de caja negra. Puede realizarse con el conjunto de pruebas de caja negra automatizadas, una primera ejecución de pruebas de regresión, que reducirá los esfuerzos destinados a pruebas manuales posteriores del equipo de testing.
Los siguientes pasos tienen como objetivo ilustrar una serie de recomendaciones para identificar oportunidades en la automatización pruebas funcionales:
Las técnicas de pruebas de caja negra son parte de una estrategia de pruebas que depende de múltiples factores como se han analizado anteriormente. El desconocimiento del proceso, ya sea por limitaciones propias o parte del contexto en el que se ejecutan las pruebas, es el factor principal que determinará la utilización de esta técnica.
El grado de conocimiento de un proceso determina la utilización de:
De forma complementaria, será necesario evaluar, si se cuenta en el proyecto con el acceso a los recursos involucrados en dicho proceso para poder formular las pruebas que correspondan en cada caso. Esta combinación de conocimiento y acceso determinará qué tipos de prueba utilizar, siendo la correcta elección según sea el caso, la estrategia de pruebas adecuada.
Si este artículo te resultó interesante, no te pierdas la oportunidad de conocer los siguientes cursos:
También te puede interesar
Aprende con este curso de introducción al testing todo sobre la terminología y los conceptos referidos al testing,...