top of page
DDQA_edited.jpg

Diario de
QA

  • linkedin
DDQA.png
  • Foto del escritorCarla Gomez

Técnicas de prueba de caja blanca

En este artículo conoceremos las técnicas de caja blanca más utilizadas.



Las técnicas de prueba son mecanismos que los testers utilizan con el objetivo de identificar los casos de prueba con mayor probabilidad de encontrar defectos y obtener la mayor cobertura posible en cuanto a las pruebas de algún sistema.


Las técnicas de pruebas de caja blanca son aquellas que se basan en el conocimiento interno del código de un programa o sistema. Estas técnicas son muy útiles para encontrar errores en el código y garantizar que no exista código muerto o algún aspecto del sistema sin probar.


A continuación, veamos algunas de las técnicas de pruebas de caja blanca más utilizadas.


Técnica de cobertura de sentencia


La cobertura de sentencia es una técnica cuyo objetivo principal es asegurarse de que todas las sentencias de código del programa han sido ejecutadas al menos una vez durante las pruebas.


Cuando hablamos de una sentencia de código nos referimos a cualquier instrucción que el programa puede ejecutar, como declaraciones de variable, asignaciones, llamadas de función, bucles y condicionales.


La prueba de cobertura de sentencia es importante porque ayuda a identificar las sentencias que no han sido ejecutadas. Las sentencias no ejecutadas pueden ser un signo de código muerto o de secciones de código que no se utilizan. También puede ser un signo de que algunas funcionalidades del programa no se han probado adecuadamente.


La cobertura se mide como el número de sentencias ejecutadas entre el número total de sentencias ejecutables en el sistema y generalmente se expresa como un porcentaje. Veamos un ejemplo:


Dado el siguiente bloque de código, vamos a calcular cuantos casos de prueba se necesitan para alcanzar el 100% de cobertura.



Lo primero que debemos hacer es contar las sentencias, en este caso, vamos a decir que cada línea de código es una sentencia. Entonces para este ejemplo tenemos 7 sentencias.


Si num1 = 4 y num2 = 6 entonces la variable result será igual a 10 y por tanto entraremos en la primera condición.



En este caso solo 5 sentencias han sido ejecutadas utilizando el primer caso de prueba, lo que significa que la cobertura es igual a 5/7 = 0.71, lo que equivale a un 71% de cobertura.


Si queremos alcanzar un 100% de cobertura necesitamos un 2do caso de prueba, este caso de prueba podría ser num1 = 3 y num2 = 0.


Este 2do caso de prueba ejecutado por sí solo también representa un 71% de cobertura, ya que también equivale a la ejecución de 5 sentencias, sin embargo si combinamos el 1er caso de prueba con el 2do, fácilmente alcanzamos un 100% de cobertura ya que las 7 sentencias habrán sido ejecutadas.


En conclusión, para este ejemplo se necesitan 2 casos de prueba para alcanzar el 100% de cobertura de sentencias.


Técnica de cobertura de decisión


La técnica de cobertura de decisión se utiliza para medir la cantidad de decisiones en una estructura de control que se han probado. El objetivo principal de esta técnica es asegurarse de que todas las posibles opciones en una estructura de control han sido probadas.


Una estructura de control es cualquier sección de código que controle el flujo de ejecución del sistema. Esto puede incluir estructuras como condicionales (if-else), bucles (for, while) y switch statements. Cada una de estas estructuras de control pueden tener múltiples opciones o caminos, y la prueba de cobertura de decisión se utiliza para asegurarse de que cada una de estas opciones haya sido probada.


Una decisión se refiere a cualquier opción o camino que puede tomar la estructura de control, como un camino verdadero o falso en un condicional.


La cobertura es medida calculando el número de resultados de decisión ejecutados entre el número total de resultados de decisión que haya en el sistema y normalmente se expresa en porcentaje. Veamos un ejemplo:


Utilizando el mismo ejemplo de arriba, vamos a calcular cuantos casos de prueba se necesitan para alcanzar un 100% de cobertura.



Lo primero que debemos hacer es contar las decisiones. En este caso, tenemos una estructura if-else con dos decisiones:

  1. Si result > 5

  2. Si result <= 5

Si num1 = 4 y num2 = 6 entonces la variable result será igual a 10 y por tanto entraremos en la primera condición.



Solo una de dos decisiones ha sido ejecutada, esto significa que la cobertura es de 1/2 = 0.5, lo que equivale a un 50% de cobertura.


Para obtener un 100% necesitamos otro caso de prueba que nos ayude a poder ejecutar la segunda decisión. Al igual que en el ejemplo anterior este caso de prueba puede ser num1 = 3 y num2 = 0. De esta manera ambas decisiones serían ejecutadas y la cobertura sería de 100%.


En conclusión, para este ejemplo se necesitan 2 casos de prueba para alcanzar el 100% de cobertura de decisión.


Nota:

A pesar de que para este ejemplo, en ambas técnicas se necesitaron dos casos de prueba para alcanzar el 100% de cobertura, no siempre se da la coincidencia de que se requiera la misma cantidad de casos de prueba para el mismo bloque de código aplicando ambas técnicas.


Es decir, se puede dar el caso de que para el mismo código para alcanzar un 100% cobertura utilizando la cobertura de sentencias se requieran 3 casos de prueba y que para la cobertura de decisión se requieran 4.


Si se alcanza el 100% de cobertura de decisiones, esto significa que también se alcanzó el 100% de cobertura de sentencias, pero alcanzar el 100% de cobertura de sentencias no asegura que se haya alcanzado el 100% de cobertura de decisiones.

 

Hola amigo lector, estas son las técnicas de pruebas de caja blanca más conocidas y utilizadas, espero que este artículo te sea de ayuda. Cualquier pregunta acerca del tema, no dudes en contactarme.


Para conocer acerca de las técnicas de prueba de caja negra visita mi artículo anterior ---> Técnicas de prueba de caja negra



Fuentes: Syllabus ISTQB Foundation Level

4921 visualizaciones0 comentarios

Entradas Recientes

Ver todo
bottom of page