viernes, 12 de abril de 2013

Téc D P - Técnicas basadas en la estructura o técnicas de caja blanca (K4).

Objetivos:
  1. Describir el concepto y el valor de la cobertura de código (K2).
  2. Explicar los conceptos de sentencia y cobertura de decisión y explicar por qué estos conceptos pueden utilizarse también en niveles de prueba que no sean pruebas de componente (por ejemplo, en procedimientos de negocio a nivel de sistema)(K2).
  3. Escribir casos de prueba a partir de flujos de control de datos utilizando técnicas de diseño de pruebas de decisión y sentencia (K3).
  4. Evaluar la cobertura de sentenca y decisión para la integridad por lo que respecta a los criterios de salida definidos (K4).
Términos usados en este artículo: COBERTURA DE CÓDIGO, COBERTURA DE DECISIÓN, COBERTURA DE SENTENCIA, PRUEBAS BASADAS EN LA ESTRUCTURA.

Antecedentes.




Las pruebas basadas en la estructura o de caja blanca se basan en una estructura identificada del software o del sistema, según se demuestra en los siguientes ejemplos:
  • Nivel de componente: la estructura de un componente de software, es decir, sentencias, decisiones, ramas o incluso caminos distintos.
  • Nivel de integración: la estructura puede ser un árbol de llamadas (un diagrama en el los módulos llaman a otros módulo).
  • Nivel de sistema: la estructura puede ser una estructura de menús, procesos de negocio o una estructura de página web.
En este apartado, se tratan tres técnicas de diseño de pruebas estructurales relacionadas con códigos para la cobertura de código, en base a sentencias, ramas y decisiones. Para las pruebas de decisiones, puede utilizarse un diagrama de flujo para visualizar las alternativas para cada decisión.

Pruebas de sentencias y cobertura (K4).

En las pruebas de componentes, la cobertura de sentencia es la evaluación del porcentaje de sentencias ejecutables que han sido practicadas por un juego de caso de prueba. La técnica de pruebas de sentencia obtiene casos de prueba para ejecutar sentencias específicas, normalmente con vistas a aumentar la cobertura de sentencias.

La cobertura de sentencia viene determinada por el número de sentencias ejecutables cubiertas (diseñadas o ejecutadas) por casos de prueba dividido entre el número de todas las   sentencias ejecutables en el código objeto de la prueba.

Prueba de decisión y cobertura (K4).

La cobertura de decisión a las pruebas de rama, es la evaluación del porcentaje de los resultados de decisión (por ejemplo, las opciones verdadero y falso de una sentencia SI) que han sido practicados por un juego de caso de prueba. La técnica de prueba de decisión obtiene los casos de prueba para ejecutar resultados de decisiones específicos. Las ramas forman puntos de decisión en el código.

La cobertura de decisión viene determinada por el número total de resultados de decisión cubiertos (diseñados o ejecutados) por casos de prueba dividido entre el número total de posibles resultados de decisión en el código objeto de la prueba.

Las pruebas de decisión constituyen una forma de pruebas de flujo de control ya que siguen un flujo específico de control a través de los puntos de decisión. La cobertura de decisiones es más fuerte que la cobertura de sentencias; un 100% de cobertura de decisión garantiza un 100% de cobertura de sentencia, pero no al contrario.

Otras técnicas basadas en la estructura  (K1).

Existen niveles más fuertes de cobertura estructural además de la cobertura de decisión, como por ejemplo la cobertura de condición y la cobertura de condición múltiple.

El concepto de cobertura también puede aplicarse a otros niveles de prueba. así por ejemplo, el nivel de integración, el porcentaje de módulos, componentes o clases practicados por un juego de caso de prueba podría expresarse como módulo , componente o cobertura de clase.

El uso de herramientas constituye un soporte útil para las pruebas estructurales del código.


Técnicas basadas en la estructura o de caja blanca ("white box").

  • El probador conoce la estructura interna del programa / código, es decir , la jerarquía de los componentes, flujos de control, flujo de datos, etc.
  • Los casos de prueba son seleccionados en base a la estructura interna del programa / código.
  • A lo largo de las pruebas es posible que se interfiera con la ejecución de otro tipo de prueba.
  • La estructura del programa es el foco de atención.
  • La técnica de caja blanca también es conocido como prueba basada en la estructura o prueba basada en ele flujo de control.
Detalle de la técnica White Box.
  1. Pruebas de sentencia y cobertura ("statement testing and coverage").
  2. Pruebas de decisión y cobertura ("decision testing and coverage").
  3. Pruebas de condición y cobertura ("condition testing and coverage").
  4. Pruebas de cobertura de camino y ("path testing coverage").
Observación:
  • Estas técnicas representan las técnicas de pruebas dinámicas más importantes y utilizadas de forma más frecuente. Estas técnicas están relacionadas con las técnicas de análisis estático descritas anteriormente.
  • Otras técnicas de caja blanca son las siguientes (no limitada a la enumeración):

  1. - SLYSC ("LCSAJ - Linear Code sequence and Jump"): Secuencia lineal y salto de código.
  2. - Técnicas basadas en el flujo de datos.

  • Está basada en la estructura identificada del software o del sistema.

  1. - Nivel de componente: la estructura de un componente software , es decir sentencias , decisiones, ramas , distintos caminos.
  2. - Nivel de integración: la estructura puede ser un árbol de llamada (un diagrama en el cual unos módulos llaman a otros módulos).
  3. - Nivel de sistema: la estructura puede ser una estructura de un menú, un proceso de negocio o la estructura de una página web.
  • Tres técnicas de diseño de pruebas estructurales relacionadas al código para cobertura del código basadas en sentencias, ramas y decisiones.
Herramientas.
  • Durante las pruebas de caja blanca, el programa objeto de las pruebas es ejecutada de la misma forma que las pruebas de caja negra. Ambas categorías (caja blanca y caja negra) conforman las pruebas dinámicas.- La teoría establece que todas las partes de un programa deberían ser ejecutadas por lo menos una vez durante las pruebas.
  • El grado de cobertura de un programa se mide con el uso de herramientas (por ejemplo analizadores de cobertura):
  1. - Los instrumentos del código se lleva a cabo con el objeto de contar la ejecución de caminos, es decir se insertan contadores en el código del programa del objeto de prueba.
  2.  - Estos contadores son iniciados en cero, cada ejecución del camino específico incrementará el contador correspondiente.
  3. - Los contadores que mantienen el valor cero tras las pruebas indican las partes del programa que aún no han sido ejecutadas.
  • Las técnicas de caja blanca requieren el apoyo de herramientas en muchas áreas, a saber:
  1. - Especificación de caso de prueba.- Generación automática del diagrama del flujo de control a partir del código fuente del programa.
  2. - Ejecución de la prueba..- Herramientas para monitorizar y controlar el flujo del programa dentro del objeto de prueba.

  • El soporte de herramientas asegura la calidad de las pruebas e incrementa su eficiencia.
  • Dada la complejidad de las mediciones necesarias para las pruebas de caja blanca, la ejecución manual de pruebas implica:

  1. - Consumo de tiempo, consumo de recursos.
  2. - Dificultad en la implementación y propensión a errores. 
Principales tipos de cobertura.
  • Cobertura de sentencia ("statement coverage").
  1. - Porcentaje de sentencias ejecutables que han sido practicadas por los casos de prueba.
  2. - También puede ser aplicado a módulos, clases, elementos de un menú, etc.
  • Cobertura de decisión (= cobertura de rama) ("decisión coverage = branch coverage").
  1. - Porcentaje de resultados de decisión que han sido practicadas por los casos de prueba.

  • Cobertura de camino ("path coverage").

  1. - Porcentaje de caminos de ejecución que han sido practicados por casos de pruebas.

  • Cobertura de condición ("condition coverage").

  1. - Porcentaje de todos los resultados individuales de condición que afectan de forma independiente al resultado de una decisión que ha sido practicado por casos de prueba.
  2. - La cobertura de condición se presenta en distintos grados, por ejemplo, cobertura de condición simple y cobertura de condición múltiple mínima.

No hay comentarios:

Publicar un comentario