Você está na página 1de 12

ValidacinyVerificacindeSoftware UNPAUACO 1

TestingEstructurado
2daParte
Tema1 Tema1
ValidacinyVerificacindeSoftware UNPAUACO 2
Contenido
FundamentosdeAnlisis
EjecucinSimblica
UsodeEjecucinSimblica
ValidacinyVerificacindeSoftware UNPAUACO 3
EjecucinSimblica
Lectura
Ghezzi,C.,et.al.FundamentalsofSoftwareEngineering.
PrenticeHall,1991.[Cap.6]
ValidacinyVerificacindeSoftware UNPAUACO 4
FundamentosdeAnlisis(1)
Analizar una pieza de trabajo significa inspeccionarla
para entender sus propiedades y capacidades
Se aplican diferentes tcnicas segn el propsito:
formales e informales.
Verifica una amplia gama de cualidades.
Puede ser realizado por humanos (diseadores,
clientes) basados en su intuicin;
o bien contar con la ayuda de instrumentos
mecnicos. Ej: Compilador.
Caractersticas
ValidacinyVerificacindeSoftware UNPAUACO 5
Una ejecucin simple.
Limitado al contexto
del programa.
Poca generalidad.
Muestra la presencia
de errores, pero no
su ausencia.
Una clase de ejecuciones.
Sujeto a falibilidad de
razonamiento humano.
Basado en un modelo en lugar
del producto en s.
Formalidad: ayuda a reducir,
pero no evita riesgos de falibilidad
Testing Testing An An lisis lisis
El Anlisis complementa y se integra
a la Verificacin Experimental
FundamentosdeAnlisis(2)
ValidacinyVerificacindeSoftware UNPAUACO 6
Tcnicas Informales
La tcnica ms simple es slo observar el software
(requerimientos, especificacin, cdigo), e imaginar su
comportamiento por simulacin manual (quiz en papel),
poniendo atencin a los hechos ms relevantes.
Realizado por personal diferente del diseador.
Razon ->Ego humano
Dos tcnicas exitosas: Code-Walk-Throughs y Code-
Inspections
FundamentosdeAnlisis(3)
ValidacinyVerificacindeSoftware UNPAUACO 7
Tcnicas Formales
Ayudan a mejorar la confianza en la correctitud del sistema.
Programa: objeto formal =>sintaxis y semntica del lenguaje de
programacin puede ser definido formlmente.
Dada la especificacin formal de un programa, las pruebas de
correctitud se caracterizan por la construccin de una prueba
matemtica de la equivalencia del programa con su
especificacin.
La aplicacin de Razonamiento Matemtico a las pruebas
(anlisis) ayuda a mejorar la confianza en el programa.
FundamentosdeAnlisis(4)
ValidacinyVerificacindeSoftware UNPAUACO 8
La ejecucin simblica es una tcnica usada por
muchas herramientas de soporte a la produccin de
software
- herramientas de anlisis
- herramientas de optimizacin
- herramientas de documentacin automtica
La ejecucin simblica permite determinar
las condiciones que deben ser verificadas por los datos de
ingreso para que un camino particular se ejecute
la relacin entre los valores ingresados y los producidos por
la ejecucin del programa
EjecucinSimblica(1)
ValidacinyVerificacindeSoftware UNPAUACO 9
Sirve para
Detectar caminos no ejecutables: pueden representar anomalas en el
software
Detectar las condiciones que provocan la ejecucin de ciertos
caminos: informacin para la documentacin
Detectar la relacin entre datos de ingreso yresultado: puede ser
utilizada para la prueba formal de programas
Determinar la relacin entre datos del programa por medio
de ejecuciones determinadas: puede ser usada para la
optimizacin de cdigo
Producir datos que provocan la ejecucin de ciertos
caminos: herramienta para la seleccin de datos de test
EjecucinSimblica(2)
ValidacinyVerificacindeSoftware UNPAUACO 10
La ejecucin simblica extiende a los programas de evaluacin
simblica de expresiones
La ejecucin numrica difiere de la simblica por los ambientes
de ejecucin
N Num um rico rico
- asocia a cada variable un valor
numrico compatible con el tipo
- el ambiente es una funcin con
dominio en el conjunto de las
variables visibles al programa y
codominio en el conjunto de
constantes compatibles con cada
tipo
S Simb imb lico lico
- asocia a cada variable un valor
simblico
- el dominio del ambiente son
las variables y un smbolo
especial PC; el codominio es un
conjunto de smbolos S
llamados smbolos iniciales
EjecucinSimblica(3)
ValidacinyVerificacindeSoftware UNPAUACO 11
PATH CONDITION (PC)
- Representa la condicin de ejecucin del camino
- Su valor es una expresin simblica del tipo
Booleano sobre el conjunto S
- La expresin simblica asociada a PC indica el
conjunto de valores numricos iniciales que
causan la ejecucin del camino considerado
EjecucinSimblica(4)
Reglas y Condiciones
ValidacinyVerificacindeSoftware UNPAUACO 12
- No implican cambios sintcticos ni semnticos
- Usa la semntica definida de la ejecucin numrica
- La ejecucin considera los tipos
- Por simplicidad consideraremos slo enteros
Condiciones de Ejecucin de un Camino
- Permite establecer si el camino es ejecutable
- Si s, permite derivar los datos que causan la ejecucin de
instrucciones que componen el camino
RECORDAR: que saber si un camino es (o no) ejecutable es indecidible
Se necesitar ayuda humana
Caractersticas
EjecucinSimblica(5)
ValidacinyVerificacindeSoftware UNPAUACO 13
INSTRUCCIN VARIABLES PC
read (x) asociar smbolo nuevo a x dejar igual
x :=expr(y,z) sustituir z e y por sus valores dejar igual
(numricos o simblicos).
Simplificar lo ms posible.
Asociar a x la eval(expr).
if cond then C1 evaluar cond y luego agregar a PC el
else C2 evaluar C1 o C2 segn valor de cond
el resultado de cond definido
EjecucinSimblica(6)
ValidacinyVerificacindeSoftware UNPAUACO 14
1 program absoluto (input,
output)
2 var
3 x, y: integer
4 begin
5 read (x);
6 read (y);
7 y :=abs (y);
8 x :=y;
9 if x >=0then write (x)
10 else write (0)
11 end.
1 {(x =undef), (y =undef), (PC =true) }
5 {( x =Q ), (y =undef), (PC =true) }
6 {( x =Q ), (y =K), (PC =true) }
7 {( x =Q ), (y =| K | ), (PC =true) }
8 {( x =| K | ), (y =| K | ), (PC =true) }
9 ( x >=0) ( | K | >=0) true
nunca se ejecuta el else
EjecucinSimblica(7)
ValidacinyVerificacindeSoftware UNPAUACO 15
1 program choose (input,
output)
2 var
3 x, y: integer
4 begin
5 read (x);
6 read (y);
7 x :=y;
8 if x >10 then begin
9 if y >0then ...
1 {(x =undef), (y =undef), (PC =true) }
5 {( x =Q ), (y =undef), (PC =true) }
6 {( x =Q ), (y =K ), (PC =true) }
7 {( x =K ), (y =K ), (PC =true) }
8 {( x =K ), (y =K ),
(PC =true and K >10) }
9 {( x =K ), (y =K ),
(PC =K >10 and K >0) }
(PC =K >10)
EjecucinSimblica(8)
ValidacinyVerificacindeSoftware UNPAUACO 16
if B then C1 else C2
1) Evaluar simblicamente la condicin B sustituyendo las variables que
aparecen en B por el valor simblico asociado en el ambiente. La
expresin obtenida es eval(B)
2) Si la expresin PC =>eval(B) vale True se ejecuta simblicamente C1
3) Si la expresin PC =>not eval(B) vale True se ejecuta simblicamente
C2
4) Si no valen (2) ni (3) entonces se puede ejecutar C1 o C2.
Si se decide C1 (es decir el then), el valor de PC debe ser actualizado
en el modo siguiente:
PC_new :=PC_old and eval(B)
Si se decide C2 (else) entonces PC_new :=PC_old and not eval(B)
EjecucinSimblica(9)
ValidacinyVerificacindeSoftware UNPAUACO 17
1) Evaluar simblicamente la condicin B sustituyendo las variables que
aparecen en B por el valor simblico asociado en el ambiente. La
expresin obtenida es eval(B)
2) Si la expresin PC =>eval(B) vale true se ejecuta simblicamente el
cuerpo del ciclo
3) Si la expresin PC =>not eval(B) vale true se ejecuta simblicamente
la instruccin posterior al ciclo
4) Si no valen (2) ni (3), entonces se puede seguir ejecutando el ciclo o
salir.
Si se decide el cuerpo, el valor de PC debe ser actualizado en el
modo siguiente: PC_new :=PC_old and eval(B)
Si se decide salir, entonces PC_new :=PC_old and not eval(B)
EjecucinSimblica(10)
While B do
ValidacinyVerificacindeSoftware UNPAUACO 18
- a[i] :=expr;
case i of
when 1 =>a[1] :=exp;
when 2 =>a[2] :=exp;
. . .
- genera una proliferacin
de caminos de ejecucin
- mejor:
asignar al array un
smbolo inicial y registrar las
modificaciones con relaciones
entre los smbolos
{(A[i], q) }
a[i] :=expr;
{(A[i], h) }con h =q <i, exp>
es decir:
for all k if k = i then h[k] = exp
else h[k] = q[k]
EjecucinSimblica(11)
Arreglos
ValidacinyVerificacindeSoftware UNPAUACO 19
Los criterios vistos permiten determinar
qu caminos seguir para obtener un
cubrimiento deseado del programa, pero
no dan un mtodo para determinar
efectivamente los datos de test
necesarios que causan la ejecucin
de los caminos seleccionados
UsodeEjecucinSimblica(1)
ValidacinyVerificacindeSoftware UNPAUACO 20
1 program divide (input, output)
2 var
3 x,y: integer
4 begin
5 read(x);
6 read(y);
7 quot :=0;
8 rem:=x;
9 while rem>=y do
10 begin
11 quot :=quot +1;
12 rem: =rem- 1;
13 end
14 print (quot);
15 print (rem);
16 end.
UsodeEjecucinSimblica(2)
ValidacinyVerificacindeSoftware UNPAUACO 21
SELECCIONAR CAMINO
- Suponga el criterio de
Cubrimiento Cubrimiento de de Comandos Comandos
Se puede ver que el camino
c:=(5, 6, 7, 8, 9, 11, 12, 9,
14, 15) lo satisface
Se debe determinar al menos
un dato que provoque su
ejecucin
UsodeEjecucinSimblica(3)
ValidacinyVerificacindeSoftware UNPAUACO 22
4 {(x,undef), (y,undef), (quot,undef), (rem,undef), (PC =
true)}
5 {(x,X), (y,undef), (quot,undef), (rem,undef), (PC =true) }
6 {(x,X), (y,Y), (quot,undef), (rem,undef), (PC =true) }
7 {(x,X), (y,Y), (quot,0), (rem,undef), (PC =true) }
8 {(x,X), (y,Y), (quot,0), (rem,X), (PC =true) }
9 {(x,X), (y,Y), (quot,0), (rem,X), (PC = X >= Y) }
11 {(x,X), (y,Y), (quot,1), (rem,X), (PC =X >=Y) }
12 {(x,X), (y,Y), (quot,1), (rem,X - Y), (PC =X >=Y) }
9 . . .
PC
new
= PC
old
and not (( X Y ) >= Y ) =
( X >= Y ) and not (( X Y ) >= Y ) =
( X >= Y ) and ( X < 2 * Y ) = PC
c
UsodeEjecucinSimblica(4)
ValidacinyVerificacindeSoftware UNPAUACO 23
PC
c
= Condicin de ejecucin del camino C
Cada conjunto de valores que satisface PC
c
causa la ejecucin
correspondiente al camino C
Ej. ={( X =5 ), ( Y =3 ) }es un dato de test que satisface el
Criterio de los Comandos
UsodeEjecucinSimblica(5)
PCc = ( X >= Y ) and ( X < 2 * Y )
ValidacinyVerificacindeSoftware UNPAUACO 24
SESION DE TEST
1) Seleccionar el criterio deseado
2) Seleccionar un conjunto de caminos que satisfaga el criterio
seleccionado
3) Ejecucin simblica de los caminos seleccionados para
determinar la condicin de ejecucin de cada uno
4) Seleccin de un conjunto de valores por cada condicin
seleccionada en el paso 3.
Los valores seleccionados representan los
datos de test para el programa
UsodeEjecucinSimblica(6)

Você também pode gostar