viernes, 12 de abril de 2013

Téc D P - Caja Blanca - Cobertura de Sentencia (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.



Explicando la Cobertura de sentencia ("Statement coverage").

  • El foco de la atención es la sentencia del código de un programa.- ¿Qué casos de prueba son necesarias con el objeto de ejecutar todas (o un porcentaje determinado) las sentencias del código existentes?
  • La base de este análisis es el gráfico (o diagrama) de flujo de control ("control flow graph").

  1. - Todas las instrucciones están representadas por nodos y el flujo de control entre instrucciones está está representado por aristas (flecha).
  2. - Las instrucciones múltiples se combinan en un nodo independiente si solamente pueden ser ejecutados en una secuencia particular. 

  • El objetivo de la prueba (criterio de salida) es lograr la cobertura de un porcentaje específico de todas las sentencias, denominado cobertura de sentencia. (Co Cobertura de código - "code coverage").
Ejemplo 1: Se evalúa el siguiente segmento de código de un programa, que está representado por el diagrama del flujo de control:



j = f(i);

if (j>10){

   for (k=i; k >10 ; k --){
     .......
   }
}


  









Considerar el programa representado por el gráfico (o diagrama) de flujo de control (imagen de arriba).
    1. Contiene dos  sentencia "if" y un bucle "do - while" dentro de la segunda sentencia "if".
  • Hay tres "caminos" diferentes a través del segmento de programa.
    1. La primera sentencia "if" permite dos direcciones.
    2. La dirección de la derecha de la primera sentencia "if" se divide nuevamente a partir de una segunda sentencia "if".
  • Todas las sentencias de este programa pueden ser alcanzadas haciendo uso de este camino.
    1. Un solo caso de prueba será suficiente para alcanzar el 100% de cobertura de sentencia.
Ejemplo 2: En este ejemplo el gráfico ("diagrama") es ligeramente más complejo:
 
  • El programa contiene las sentencias "if" y un bucle (dentro de una sentencia "if").
  • Cuatro caminos diferentes conducen a través de este segmento de programa. 
    1. La primera sentencia "if" permite dos direcciones.
    2. En cada rama de la sentencia "if" otra sentencia "if" permite nuevamente dos direcciones diferentes.
    3. Para cada una cobertura de sentencia del 100% hacen falta cuatrocasos de prueba.
Conclusiones generales de la cobertura de sentencias.
  • La medición de la cobertura se realiza con el uso de herramientas diseñadas de forma específica. - 

  1. - Estas herramientas se denominan Herramientas de análisis de Cobertura ("Coverage Analysis Tools") o Analizadores de Cobertura ("Coverage Analyzers").

  • Beneficios /desventajas de este método.

  1. - Será detectado el código muerto, es decir, código constituido por sentencias que nunca se ejecutan.
  2. - Si hay código muerto en el programa , no se podrá lograr una cobertura del 100%.

  • No podrán ser detectados instrucciones faltantes, es decir, código que es necesario con el objeto de cumplir con la especificación.

  1. - Las pruebas se desarrollan solamente respecto de sentencias ejecutadas, ¿Tódo el código puede ser alcanzado / ejecutado?.
  2.  - El código faltante no puede ser detectado utilizando técnica de caja blanca (análisis de cobertura). 
Pregunta de examen:

13 Given the following:
Switch PC on
Start “outlook”
IF outlook appears THEN
Send an email
Close outlook
a) 1 test for statement coverage, 1 for branch coverage
b) 1 test for statement coverage, 2 for branch coverage-->OK
c) 1 test for statement coverage. 3 for branch coverage
d) 2 tests for statement coverage, 2 for branch coverage
e) 2 tests for statement coverage, 3 for branch coverage

13 Teniendo en cuenta lo siguiente:

Switch PC on
Start “outlook”
IF outlook appears THEN
Send an email
Close outlook

a) Prueba 1 para la cobertura de declaración, 1 para la cobertura de rama
b ) 1 prueba para la cobertura de sentencias , 2 para la cobertura de ramas-->OK
c ) 1 prueba para la cobertura de declaración. 3 para la cobertura de ramas
d ) 2 pruebas para la cobertura de declaración , 2 para la cobertura de ramas
e) 2 pruebas para la cobertura de declaración, 3 para la cobertura de la rama

14 Given the following code, which is true:
IF A > B THEN
C = A – B
ELSE
C = A + B
ENDIF
Read D
IF C = D Then
Print “Error”
ENDIF
a) 1 test for statement coverage, 3 for branch coverage
b) 2 tests for statement coverage, 2 for branch coverage-->OK
c) 2 tests for statement coverage. 3 for branch coverage
d) 3 tests for statement coverage, 3 for branch coverage
e) 3 tests for statement coverage, 2 for branch coverage

14 Dado el siguiente código, lo cual es cierto :

IF A > B THEN
C = A – B
ELSE
C = A + B
ENDIF
Read D
IF C = D Then
Print “Error”
ENDIF


a) Prueba 1 para la cobertura de declaración, 3 para la cobertura de la rama
b) 2 pruebas para la cobertura de sentencia, 2 para la cobertura de ramas-->OK
c ) 2 pruebas para la cobertura de declaración. 3 para la cobertura de ramas
d ) 3 pruebas para la cobertura de declaración , 3 para la cobertura de la rama
e) 3 pruebas para la cobertura de declaración, 2 para la cobertura de rama

15 Consider the following:
Pick up and read the newspaper
Look at what is on television
If there is a program that you are interested in watching then switch the the television on and watch
the program
Otherwise
Continue reading the newspaper
If there is a crossword in the newspaper then try and complete the crossword
a) SC = 1 and DC = 1
b) SC = 1 and DC = 2
c) SC = 1 and DC = 3
d) SC = 2 and DC = 2
e) SC = 2 and DC = 3-->OK

15 Considere lo siguiente 

Recogida y leer el periódico
Mira lo que está en la televisión
Si hay un programa que usted está interesado en ver a continuación, encienda el televisor encendido y 

reloj el programa
De otra manera
Seguir leyendo el periódico
Si hay un crucigrama en el periódico y luego tratar de completar el crucigrama
a) SC = 1 and DC = 1
b) SC = 1 and DC = 2
c) SC = 1 and DC = 3
d) SC = 2 and DC = 2
e) SC = 2 and DC = 3-->OK


No hay comentarios:

Publicar un comentario