Está en la página 1de 4

PROCEDIMIENTO PARA

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

El esquema anterior muestra la relación que su propósito es localizar sus defectos.


entre estos comportamientos anormales y
Así, si un programa pasa todas las prue-
el hecho de detectar o no la falla.
bas, eso no implica que esté libre de defec-
-Cuando el sistema encuentra una falla, tos, sólo que no se localizó ninguno. Es en-
la reconoce, y la maneja de tal forma que tonces esencial el que se diseñen cuidado-
el procesamiento normal puede conti- samente las pruebas para que sean lo más
nuar, se dice que ocurre un error. completas posibles.
-Se tiene una excepción cuando el siste- Condiciones
ma encuentra una falla, la reconoce pero
Los procedimientos de prueba que aquí
no la puede manejar de forma que el pro-
se presentan asumen ciertas condiciones
cesamiento normal pueda continuar.
sobre los programas que van a probarse.
-Existe un comportamiento erróneo Estas son:
cuando el sistema no detecta la falla y
a. Se asume que el programa tiene una
ésta no causa una violación observable
estructura jerárquica con módulos par-
de sus especificaciones.
ticionados funcionalmente y los módu-
-Se tiene un fracaso cuando el sistema los que no estén incluidos en ella de-
no detecta una falla y ésta causa una ben aparecer claramente como primi-
violación de las especificaciones. tivos.
Un intento de encontrar defectos ejecu- b. El programa debe diseñarse, imple-
tando un programa en un ambiente de mentarse y probarse en la forma TOP-
prueba (simulado) se denomina verifica- DOWN. La implementación de cada
ción. módulo debe seguir las técnicas es-
tructuradas en el uso de estructuras
Un intento de encontrar defectos ejecu-
de control. Los módulos no deben ex-
tando un programa en un ambiente real se
ceder en longitud, una página de lista-
denomina validación.
do de codificación.
INFORMACION FUNDAMENTAL
c. El programa debe diseñarse de tal
Debido a la gran complejidad de los pro- forma que los parámetros explícitos se
gramas de computador, ha sido imposible usen para pasar información entre mó-
hasta el momento presentar una técnica dulos donde quiera sea posible, las va-
estandarizada y razonable que permita dar riables globales sean modificadas so-
a las aplicaciones un buen nivel de correc- lamente por un módulo (típicamente
ción. Por tal razón es necesario utilizar una un primitivo) y la estructura de los
técnica "negativa" de prueba, la cual no datos debe ser presentada con el
asegura que el programa sea correcto sino mayor nivel de detalle posible.
Niveles de prueba instrucciones de impresión con el nombre
del módulo que la contiene. Es muy impor-
Los principales niveles son:
tante que el programa se ejecute con un
Prueba de Módulo (o unidad) solo módulo cada vez. Esto permite simpli-
Prueba la lógica del módulo como uni- ficar enormemente el proceso de detec-
dad solamente, sin importar su función ción de defectos pues ellos estarían nece-
dentro del programa. sariamente en el módulo nuevo que se está
Prueba de Integración probando.
Prueba la estructura del programa y el
algoritmo que el programa implemen- Procedimientos y técnicas generales
ta. Los siguientes procedimientos y técni-
Prueba funcional cas se aplican a todos los programas y
Efectúa \a verificación de una función pruebas:
dada del programa.
a. Para probar los programas debe usar-
Prueba del sistema y prueba de
se siempre datos de entrada bien defi-
aceptación.
nidos para los cuales se conozca de
Ambas involucran pruebas sobre
antemano los resultados correctos
el programa total. La primera intenta
que deben obtenerse.
verificar que el programa cumple con
las especificaciones y se hace con da- b. Debe tratar de detectarse primero los
tos de prueba. La segunda se hace con defectos "obvios" y para ello se utilizan
datos reales y prueba el programa con- datos de prueba muy simples y luego
tra los requerimientos. Es práctica- sí, realizar las pruebas más complejas.
mente una validación. c. Si el programa se modifica mientras se
Prueba de Instalación aprueba, CAMBIE UNA SOLA COSA
Es la validación de una instalación par- CADA VEZ Y utilice los mismos datos
ticular del programa. de prueba con que detectó el defecto.
Prueba de vida El defecto es corregido cuando al re-
Es la prueba de las necesidades que petirse la prueba, el defecto ya no se
satisface el programa, en ese momen- detecta.
to, contra las necesidades originales. d Debe probar su programa para
Tipos de pruebas verificar si es capaz de detectar en-
tradas incorrectas.
Existen dos tipos de pruebas: las estáti-
cas y las dinámicas. Procedimientos de pruebas estéticas

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

a. Deben probarse todos los primitivos 4. Zelkowitz-Shaw-Gannon, Principies 01


individualmente antes de usarse en el Software Engineering and Design. Prentice
programa y una vez probados insertar- Hall - 1977. PáQ 7-9.27-30.89-99.

20
ICESI

También podría gustarte