Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PRUEBA DE
SOFTWARE
MARIA EUGENIA VALENCIA DE ABADIA
Ingeniero Electricista de la Universidad del Valle. Ma-
gíster en Ingeniería Industrial y de Sistemas, Sistemas
de la Universidad del Valle. Especialista en Diseño de
Software de la Universidad Carolina del Sur U.S.A. Pro-
fesora del Departamento de Información y Sistemas de
la Universidad del Valle.
INTRODUCCION DEFINICIONES
Este artículo presenta los procedimien- Si la prueba se diseña para descubrir
tos para realizar la prueba de aplicaciones defectos, debemos definir el significado de
o programas grandes de computador y "defecto" en el campo de la programación
define los términos asociados con la y lo que ocurre cuando un defecto se en-
misma. cuentra durante la ejecución de un pro-
grama.
Una de las metas de la Ingeniería de Existe un defecto en un ambiente, algo-
Software es aumentar el nivel de correc- ritmo o dato. cuando esa entidad no reune
ción del software de computador. El sus especificaciones.
propósito de la prueba es dar una medida
Una falla puede resultar cuando persis-
de la corrección de un programa.
te en mantener una entidad con un defec-
to. Cuando el sistema procesa una falla se
La prueba es parte integral del ciclo de da lugar a la aparición de comportamien-
diseño y por tanto debe chequearse la tos anormales que pueden identificarse
corrección del programa cuando éste se como un error, una excepción, un com-
está desarrollando. portamiento erróneo o un fracaso.
~~riit:~~~'·,. ~ /i!t~Jk~~ü,;;~·~!t,;;':S't~~~f;~;¿~)"'7
. ~¿:~-6J~~,Z'f'''~~~1~~~; t~;~;'~~ii~i=~~-
falla se detecta
, - -error
---1
I 1- - - excepción
defecto - - - > falla - - ~
I rt..
1 1- - -campo amiento erroneo
---,
1- - -fracaso
falla no se detecta
Las pruebas estáticas son muy especi- Los procedimientos de pruebas estáti-
ficas y similares a las de revisión de la co- cas son importantísimos, pues permiten
dificación y pueden hacerse sin necesidad determinar múltiples defectos y ubicarlos
de ejecutar el programa. al mismo tiempo con pruebas sencillas tan-
to en la parte de declaraciones como en las
Las pruebas dinámicas toman como porciones ejecutables del programa.
base los resultados de la última ejecución y
deben realizarse después de las pruebas Los procedimientos son:
estáticas. a. Chequee el alcance de las variables
Procedimientos de prueba para ver si es factible reducirlo y evi-
tar así posibles problemas. Esto faci-
Debe seguirse la técnica TüP-DOWN, litará la lectura del programa, pues la
es decir que cuando cada nuevo módulo declaración de variables estaría lo más
se agregue al programa, éste se ejecuta cerca posible del punto donde se usan.
utilizando "etiquetas" en reemplazo de la
verdadera codificación de cada uno de los b. Chequee el uso de las variables globa-
demás módulos de los niveles inferiores. les y si una variable global puede ser
Las "etiquetas" pueden ser por ejemplo, referenciada por más de un módulo,
trátese en lo posible, que ella no sea los en él y proceder a probar el pro-
modificada por más de uno. grama principal.
c. Téngase especial cuidado con aque- b. Cuando ya estén integrados al progra-
llas variables que son usadas en va- ma todos los módulos del último nivel
rios niveles. Asegúrese que estén defi- de la jerarquía, deben conservarse las
nidas en cada nivel para que no se ori· etiquetas que saquen por pantalla al-
ginen problemas. Una situación tí- gún mensaje indicador de que ese
pica es aquella donde existen ciclos a módulo ya se alcanzó y además, a los
más de un nivel (ciclos anidados) y se argumentos de salida de cada módulo
usa la misma variable como control de debe asignárseles algún valor para ve-
ciclo. Es buena práctica usar nombres rificar si trabajan bien.
únicos para cada ciclo.
C. Deben hacerse las pruebas necesa-
d. Verifique si todas las variables tienen rias para chequear todas las posibles
asignado algún valor inicial antes de alternativas que se presenten en cada'
ser referenciadas. mÓdulo antes de probar el siguiente.
e. Chequee si todos los arugmentos de d. Trate de diseñar pruebas que en el
los subprogramas o procedimientos caso de presentarse un fracaso gene-
coinciden en número y tipo con los ren información sobre la naturaleza y
de las respectivas invocaciones. localización del defecto.
f. Verifique que todas las estructuras de e. En la búsqueda de defectos es reco-
repetición tengan un mecanismo de mendable usar "instrucciones de de-
terminación bien definido. puración" dentro del programa para
Procedimientos de pruebas dlnjmlcas imprimir valores de variables o sim-
plemente para verificar que se ha
El concepto básico de estas pruebas llegado hasta cierto punto del pro-
está en empezar desde arriba trabajando grama y utilice por ejemplo alguna
hacia abajo y asumiendo que todos los mó- marca de comentario antes de cada
dulos de los niveles inferiores trabajan co- una de ellas para hacer más fácil su lo-
rrectamente. Así en cualquier momento se calización.
estará probando la codificación de UN SO-
LO módulo y las interfases con los otros. El f. y por último, si después de detectar
punto de partida para las pruebas dinámi- un defecto usted considera que todo
cas es el programa principal con todos los lo que ha estado haciendo está correc-
primitivos conocidos. Todos los módulos to y sinembargo su programa aún no
que sean invocados en el programa prin- trabaja, necesariamente UNA DE LAS
cipal se reemplazan con "la etiqueta" co- COSAS QUE USTED CREE ESTA
rrespondiente para después ir reemplazán- BIEN, FALLA EN ALGO'
dolos uno a uno. Después de que cada mó- BIBLlOGRAFIA
dulo se reemplaza y se prueba sin que se
detecten defectos. se va añadiendo otro, 1. Davis-Holfman, Fortran 77. Mc Graw Hill -
preferiblemente en el orden en que son lla- 1984. Pág. 88-91.
mados por el programa y se repite el proce-
dimiento para los niveles siguientes. 2. Grogono, Programación en Pascal. Fondo
Educativo Interamericano -1984. Pág 288-
Como cada módulo en la jerarquia se 302.
prueba. se puede decir que el programa.
tiene un buen nivel de corrección, cuando 3. I Sommerville, Software Engineering.
ya no se presente ningún defecto. Debe International Computer Science Series
tenerse en cuenta lo siguiente: 1982. Pág 152 - 180
20
ICESI