Solución:

Anuncio
Verificación y Validación de Software
Tema II – Trabajo Práctico N° 4
(17)
Suponga la clase PersonaObligadaVotar, la cual representa las personas obligadas a votar en la
votación del próximo 23 de Octubre. La clase posee los siguientes atributos:
PersonaObligadaVotar{
String nombre;
String apellido;
String direccion;
String fecha_de_nacimiento;
Discapacidad discapacidad = new Discapacidad( );
boolean voto_ultima_vez;
boolean tiene_certificacion;
String genero;
}
La función edad(fecha) determina la edad de una persona dada la fecha de nacimiento enviada como parámetro.
La discapacidad es una clase que provee códigos diferentes según la discapacidad de una persona.
assert(
( edad( fecha_de_nacimiento ) >= 18 && edad( fecha_de_nacimiento ) <= 70 ) &&
( voto_ultima_vez || tiene_certificacion ) &&
( genero =”femenino” OR genero=”masculino” ) &&
( discapacidad.getCodigo( ) == 1 || discapacidad.getCodigo( ) == 2 )
)
(i) Encuentre los Puntos On/Off y ejemplos de los Puntos In/Out
(ii) Genere casos de Test mediante el desarrollo de la Matriz de Dominio por cada condición en
la invariante.
Solución:
(i) Tabla de Puntos ON/OFF y Puntos IN/OUT:
Condición
edad(fecha_de_nacimiento) >= 18
edad(fecha_de_nacimiento) <= 70
voto_ultima_vez
tiene_certificacion
genero="femenino"
genero="masculino"
discapacidad.getCódigo()==1
discapacidad.getCódigo()==2
Punto ON
18
70
True
True
"femenino"
"masculino"
1
2
Punto OFF
17, 19
69, 71
False
False
<> "femenino"
<> "masculino"
0
0
Puntos IN
18, 19
69, 70
True, False
True, False
"femenino"
"masculino"
1
2
Puntos OUT
17
71
<> "femenino"
<> "masculino"
0
0
• En el caso de los valores Boolean para “voto_ultima_vez” y “tiene_certificación”, ambos dependen uno
del otro, y son valores válidos (Puntos IN) tanto el True como el False, siempre que aparezcan en forma
altenada en un caso de test. De lo contrario, serían valores no-válidos (Puntos OUT). Por ello
inicialmente los marcamos sólo como Puntos IN, pero también se pueden repetir en la columna de
Puntos OUT, o bien simplemente dejar en blanco para ambas columnas.
• En el caso de “genero”, dado que es de tipo String, entonces debemos considerar la posibilidad de
valores distintos a “masculino/femenino”.
• El caso de “discapacidad” podrían existir otros códigos que no fueran de interés para la aplicación. Aca
se debe considerar que los valores 1 y 2 son Puntos ON para alguna condición, por lo tanto si bien son
también Puntos OFF para la condición opuesta, en la Matriz de Dominio los consideramos sólo una vez
para la condición en sean Puntos ON (y a la vez Puntos IN).
1
Verificación y Validación de Software
Tema II – Trabajo Práctico N° 4
Matriz de Domino:
Variable
Edad
(fecha_de_nacimiento)
Condición
>= 18
<= 70
Típico
voto_ultima_vez
boolean
Tipo
ON
OFF
ON
OFF
IN
ON
OFF
Típico
tiene_certificacion
boolean
Tipico
= "femenino"
genero
= "masculino"
Tipico
discapacidad.
getCódigo()
== 1
== 2
Tipico
Resultado Esperado
1
18
3
4
Casos de Test
8
9
5
6
7
20
True
30
45
65
False
True
True
11
12
13
14
15
16
54
37
21
69
38
26
63
51
True
False
True
False
True
False
True
False
False False
fem
<>
fem
False
False False False
False
False
fem
masc
70
71
False
False
False
False
False False
True
False False
False
True
OFF
ON
OFF
IN
ON
OFF
ON
OFF
IN
10
17
True
ON
OFF
IN
ON
2
masc
<>
masc
fem
masc
fem
masc
fem
masc
fem
masc
fem
1
masc
0
2
0
1
A
2
R
1
A
2
R
1
A
2
A
1
A
2
A
1
A
2
R
1
A
2
R
A
R
A
R
Resultado Esperado: A (Accepted), R (Rejected)
2
Descargar