Beruflich Dokumente
Kultur Dokumente
3.1. Introduccin
Las pruebas de software consisten en verificar un producto de software antes de
su puesta en marca. Constituyen una de las etapas del desarrollo de software, y
bsicamente consiste en probar la aplicacin construida. Se integran dentro de las d
iferentes fases del ciclo de vida del software.
La ejecucin de pruebas de un sistema involucra una serie de etapas:
- Planificacin de pruebas
- Diseo y construccin de casos de prueba
- Definicin de los procedimeintos de prueba
- Ejecucin de las pruebas
- Registro de resultados obtenidos
- Registros de errores encontrados
- Depuracin de los errores
- Informe de los resultados obtenidos
3.2. Tcnicas de diseo de casos de prueba
**Caso de prueba**. Conjunto de entradas, condiciones de ejecucin y resultados es
perados, desarrollo para conseguir un objetivo particular o condicin de prueba. P
ara llevar a cabo un caso de prueba, es necesario:
- Definir las precondiciones y post condiciones.
- Identificar unos valores de pruebas.
- Conocer el comportamiento que debera tener el sistema ante dichos valores.
Tras realizar ese anlisis e introducir dichos datos en el sistema, se observa si
su comportamiento es el previsto o no y por qu. De esta forma se determina si el
sistema ha pasado o no la prueba.
Para llevar a cabo el diseo de casos de prueba se utilizan dos tcnicas o enfoques:
- **Pruebas de caja blanca**. Se centran en validar la estructura interna dle pr
ograma (necesitan conocer los detalles procedimentales del cdigo).
- **Pruebas de caja negra**. Se centran en validar los requisitos funcionales si
n fijarse en el funcionamiento interno del programa (necesitan saber el funciona
lidad que el cdigo ha de proporcionar).
Estas pruebas no son excluyentes y se pueden combinar para descubirir diferentes
tipos de errores.
3.2.1. Pruebas de caja blanca
Conocidas tambin como **pruebas estructurales** o **pruebas de caja de cristal**.
Se basan en el minucioso examen de los detalles procedimentales del cdigo de la
aplicacin Mediante esta tcnicas se pueden obtener casos de prueba que:
- Garanticen que se ejecutan al menos una vez todas los camino independientement
e de cada mdulo.
- Ejecuten todas las sentencias al menos una vez.
- Ejecuten todas las decisiones lgicas en su parte verdadera y en su parte falsa.
- Utilicen todas las estructuras de datos internas para aseguirar su validez.
Una de las tcnicas utilizadas para desarrollar los casos de prueba de caja blanca
es la **prueba del camino bsico**.
3.2.2. Pruebas de caja negra
Estas pruebas se llevan a cabo sobre la interfaz del software, no hace falta con
ocer la estructura interna del programa ni su funcionamiento. Se pretende obtene
r casos de prueba que demuestren que las funciones del software son operativas,
es decir, que las salidas devuelvan la aplicacin son las esperadas en funcin de la
s entradas que se proporcionen.
A este tipo de pruebas tambin se les llama **pruebas de comportamiento**.
El sistema se considera como una caja negra, cuyo comportameinto solo se puede d
eterminar estudiando las entradas y las salidas que devuelve en funcin de las ent
radas suministradas.
Con este tipo de pruebas se intenta encontrar errores como:
- Funcionalidades incorrectas o ausentes.
- Errores de interfaz.
- Errores en estructuras de datos o en accesos a bases de datos externas.
- Errores de rendimiento.
- Erroes de inicializacin y finalizacin.
Existen diferentes tcnicas para confeccionar los casos de pruebas de caja negra:
- Clases de equivalencia
- Anlisis de valores lmite
- Mtodos basados en grafos
- Pruebas de comparacin
3.3. Estrategia de pruebas del software.
La **estrategia de pruebas del sofware** se puede analizar en forma de espiral:
- En el vrtice de la espiral comienza la **prueba de unidad**. Se centra en la un
idad ms pequea del software, el mdulo tal y como est implementado en cdigo fuente.
- La prueba avanza para llegar a la **prueba de integracin**. Se toma los mdulos p
robados mediante la prueba de unidad y se construye una estructura de programa q
ue est de acuerdo con lo que dicta el diseo. El foco de atencin esta el diseo.
- La espiral avanza llegando a la **prueba de validacin**. Prueba de software en
el entorno de trabajo con intervencin del usuario final. Se validan los requisito
s establecidos con parte del anlisis de requisitos de software comparndolos con el
sistema construido.
- Finalmente se llega a la **prueba del sistema**. Verifica que cada elemento en
caje de forma adecuada y se alcanza la funcionalidad y rendimiento total. Se pru
eba como un todo el software y otros elementos del sistema.
3.3.1. Pruebas de unidad
En este nivel se prueba cada unidad o mdulo con el objetivo de eliminar errores e
n la interfaz y la lgica interna. Esta actividad utiliza tcnicas de caja negra y c
aja blanca. Se realizan sobre componentes como:
- La interfaz del mdulo
- Las estructuras de datos locales
- Las condiciones lmite
- Todos los caminos independientes de la estructura de control
- Todos los caminos de manejo de errores
Algunas herramientas que se utilizan para pruebas unitarias son:
- JUnit
- CPPUnit
- xUnit
- PHPUnit
3.3.2. Pruebas de integracin
En este tipo de prueba se observa cmo interaccionan los distintos mdulos. Aunque l
os mdulos funcionen correctamente por separado, debemos comprobar si funcionan ju
ntos.
**Enfoques**:
- **Integracin no incremental**. Se prueba cada mdulo por separado y luego se comb
inan todos de una vez y se prueba el programa completo. En este enfoque se encue
ntran gran cantidad de errores y la correcin se hace difcil.
- **Integracin incremental**. El programa completo se va construyendo y probando
en pequeos segmentos, en este caso los errores son ms fciles de localizar. Se dan d
os estrategias:
- **Ascendente**. La construccin y prueba del programa empieza desde los
mdulos de los niveles ms bajos de la estructura.
- **Descendente**. La integracin comienza en el mdulo principal movindose h
acia abajo por la jerarqua de control.
3.3.3. Pruebas de validacin
La validacin se consigue cuando el software funciona de acuerdo con las expectati
vas razonables del cliente definidas en el documento de especificacin de requisit
os de software.
Se llevan a cabo pruebas de caja negra. Las tcnicas a utilizar:
- **Prueba Alfa**. Llevada a cabo por el cliente o usuario en el lugar de desarr
ollo. El cliente utiliza el software de forma natural bajo la observacin del desa
rrollador.
- **Prueba Beta**. Llevada a cabo por los usuarios finales del software en su lu
gar de trabajor. El desarrollador no est presente. El usuario registra todos los
problemas e informa al desarrollador en los intervalos definidos en el plan de p
ruebas. Segn la informacin recibida, el desarrollador hace modificaciones y lanza
nuevas versiones.