Duda sobre cubrimiento (Verif. y validación)

Duda sobre cubrimiento (Verif. y validación)

de Valentina Pereira Ciaffone -
Número de respuestas: 2

Hola!

Me surgieron las siguientes dudas:

1. Esta es sólo para corroborar, en los parciales siempre que nos digan algo como: "Cuantos CP necesito para hacer cubrimiento de ..." es para lograr el 100% no? 

2. Cuando hacemos cubrimiento de decisiones, tratamos que cada decisión (que produce una bifurcación según el resultado sea ejecutada), eso incluye sólo los ifs? 

3. De nuevo en cubrimiento de decisiones, en el caso particular de los ifs lo que hay que hacer es lograr que los CP cubran el caso True y el caso False de cada decisión, pero si por temas de contexto sólo pudiese tomar un valor, el cubrimiento sería 100% no? 

Por ejemplo: if (y= a or y = b) {

                        if ( y = a ) ...

                        if (y = b) ... --> Esta condición nunca va a poder tomar valor False.

                      }

Gracias!

En respuesta a Valentina Pereira Ciaffone

Re: Duda sobre cubrimiento (Verif. y validación)

de Cecilia Apa -

Hola Valentina,

Voy entre líneas:

1. Esta es sólo para corroborar, en los parciales siempre que nos digan algo como: "Cuantos CP necesito para hacer cubrimiento de ..." es para lograr el 100% no? 

R: Sí, se refiere al 100% de cubrimiento.

2. Cuando hacemos cubrimiento de decisiones, tratamos que cada decisión (que produce una bifurcación según el resultado sea ejecutada), eso incluye sólo los ifs? 

R: Con el criterio de decisiones la decisión no solamente debe ser ejecutada (eso sería cubrimiento de sentencias), debe tomar el valor verdadero y falso con el conjunto de casos de prueba propuesto. Incluye cualquier decisión que pueda hacerse verdadera o falsa (por ejemplo, la incluida en un while).

3. De nuevo en cubrimiento de decisiones, en el caso particular de los ifs lo que hay que hacer es lograr que los CP cubran el caso True y el caso False de cada decisión, pero si por temas de contexto sólo pudiese tomar un valor, el cubrimiento sería 100% no? 

Por ejemplo: if (y= a or y = b) {

                        if ( y = a ) ...

                        if (y = b) ... --> Esta condición nunca va a poder tomar valor False.

                      }

R: En el ejemplo que das, si ejecuto el código con y = a (a<>b), la primer decisión se hace verdadera (porque es un or) y la decisión del y = b que comentás toma el valor false.
De todas formas, más allá de que en este ejemplo puntual no se cumpla lo que comentás, sí puede pasar que no sea posible evaluar una decisión (o condición) en un determinado valor. Por ejemplo, la decisión if (y=a or y<>a) es siempre verdadera, sin importar el valor de a. Cuando pasan estas cosas, muy probablemente estés frente a un defecto en el código ;-).

Saludos,
Cecilia.