Actividad - 2
Actividad - 2
Actividad - 2
EVALUACION DE SOFTWARE
TUTOR:
LORICA CORDOBA
2017
ACTIVIDADES
PREGUNTAS Y RESPUESTAS
ISO 8402, ISO 15939, ISO/IEC 9126, ISO/IEC 14598, ISO/IEC 15504, ISO/IEC 25000 SquaRE
(Software product Quality REquirements), Modelo de Madurez de Capacidad para el Software
(Capahility Maturity Model, CMM), CMMI (capability Maturity Model integration), (European
System and Software Iniciative, ESSI)
Consultar:
ESTRUCTURA PARA LAS MTRICAS TCNICAS DEL SOFTWARE, Mtricas del Modelo
de Anlisis, Mtricas basadas en la Funcin, Mtrica Bang, Mtricas del Modelo de Diseo,
Mtricas del Cdigo Fuente, Mtricas para Pruebas, Mtricas del Mantenimiento
DESARROLLO
ISO 8402: Es un complemento de la serie de normas ISO 9000. En ella se definen trminos
relacionados con la calidad. Clarifica y normaliza los trminos relativos a la calidad que sean
aplicables al campo de la gestin de la calidad. La necesidad de utilizar una terminologa
normalizada para evitar malentendidos o confusiones, oblig al desarrollo de una norma
auxiliar que precisara trminos y conceptos.
El estndar ISO/IEC 9126 proviene desde el modelo establecido en 1977 por McCall y sus
colegas, los cuales propusieron un modelo para especificar la calidad del software. El modelo
de calidad McCall est organizado sobre tres tipos de Caractersticas de Calidad:
Factores (especificar): Describen la visin externa del software, como es visto por los usuarios.
Criterios (construir): Describen la visin interna del software, como es visto por el desarrollador.
Mtricas (controlar): Se definen y se usan para proveer una escala y mtodo para la medida.
ISO/IEC 9126 es un estndar internacional para la evaluacin del Software. Est supervisado
por el proyecto SQuaRE, ISO 25000:2005, el cual sigue los mismos conceptos.
Norma ISO/IEC 14598: En sus diferentes etapas, establece un marco de trabajo para evaluar
la calidad de los productos de software proporcionando, adems, mtricas y requisitos para
los procesos de evaluacin de los mismos.
En particular, es utilizada para aplicar los conceptos descritos en la norma ISO / IEC 9126. Se
definen y describen las actividades necesarias para analizar los requisitos de evaluacin, para
especificar, disear y realizar acciones de evaluacin y para concluir la evaluacin de cualquier
tipo de producto de software.
El ISO/IEC 15504, tambin conocido como Software Process Improvement Capability
Determination, abreviado SPICE, en espaol, Determinacin de la Capacidad de Mejora del
Proceso de Software es un modelo para la mejora, evaluacin de los procesos de desarrollo,
mantenimiento de sistemas de informacin y productos de software.
ISO/IEC 25000 SQuaRE (Software Product Quality Requirements and Evaluation) es
organizar, enriquecer y unificar las series que cubren dos procesos principales: especificacin
de requisitos de calidad del software y evaluacin de la calidad del software, soportada por el
proceso de medicin de calidad del software.
Las caractersticas de calidad y sus mediciones asociadas pueden ser tiles no solamente
para evaluar el producto software sino tambin para definir los requerimientos de calidad.La
serie ISO/IEC 25000:2005 reemplaza a dos estndares relacionados: ISO/IEC 9126 (Software
Product Quality) e ISO/IEC 14598 (Software Product Evaluation).
CONSULTAR
MTRICAS DEL SOFTWARE En el campo de la ingeniera del software una mtrica es
cualquier medida o conjunto de medidas destinadas a conocer o estimar el tamao u otra
caracterstica de un software o un sistema de informacin, generalmente para realizar
comparativas o para la planificacin de proyectos de desarrollo. Un ejemplo ampliamente
usado es la llamada mtrica de punto funcin.
Las mtricas de software se refieren aun amplio rango de medidas para el software de
computadoras dentro del contexto de la planificacin del proyecto de software, las mtricas de
calidad pueden ser aplicadas a organizaciones, procesos y productos los cuales directamente
afectan a la estimacin de costos.
Las mediciones en el mundo fsico pueden ser catalogadas en dos campos: medidas directas
(por ej. La longitud de un tornillo), y medidas indirectas (por ej. Calidad de tornillos producidos,
medida por la cuenta de los tornillos rechazados). Las mtricas de software pueden ser
catalogadas de forma parecida.
Mtricas Orientadas al tamao, son utilizadas para obtener medidas directas del resultado y la
calidad de la ingeniera del software.
Mtricas Orientadas a la Funcin, son medidas indirectas del software y del proceso por el cual
se desarrollar; se centran en la funcionalidad o utilidad del programa (Puntos de Funcin)
Proporciona beneficios tanto a nivel del proyecto como del proceso, es una medida para filtrar
las actividades de la garanta de calidad y de control al aplicarse a todas las actividades del
marco de trabajo del proceso.
La Eficacia de la Eliminacin de Defectos (EED) se define de la forma siguiente: EED=E /
(E+D) Donde E es el nmero de errores encontrados antes de la entrega del software al usuario
final y D es el nmero de defectos encontrados despus de la entrega. Cuando el valor de EED
es 1 significa que no se han encontrado defectos en el software, D ser mayor que cero.
Cuando E aumenta (para un valor de D dado), el valor total de EED empieza a aproximarse a
1. De hecho, a medida que E aumenta, es probable que el valor final de D disminuya (los
errores se filtran antes de que se conviertan en defectos). Si se utilizan como una mtrica que
proporciona un indicador de la habilidad de filtrar las actividades de la garanta de la calidad y
del control, EED anima a que el equipo del proyecto de software instituya tcnicas para
encontrar todos los errores posibles antes de su entrega.
EED tambin se puede utilizar dentro del proyecto para evaluar la habilidad de un equipo en
encontrar errores antes de que pasen a la siguiente tarea de ingeniera del software. Se vuelve
a definir como:
EEDi = Ei / (Ei + Ei +1)
Donde Ei es el nmero de errores encontrado durante la actividad de ingeniera del software i
y Ei+1, es el nmero de errores encontrado durante la actividad de ingeniera del software i +
1 que se puede seguir para llegar a errores que no se detectaron en la actividad de la ingeniera
del software i.
Mtricas tcnicas
En este punto, nos damos cuenta que la medicin del software bajo las tcnicas vistas carece
de objetividad, uno que las consideramos tcnicas cualitativas y no cuantitativos. Ahora bien,
el problema es cmo definir un mtodo de medicin que nos permitan mostrar a travs de una
cantidad la complejidad del software.
Entonces, lo primero que debemos hacer es definir una serie de caractersticas que deben
cumplir las tcnicas de medicin para poder tener un criterio base, que nos permita evaluar las
tcnicas de medicin.
Basndonos en todas estas caractersticas la forma de evaluar el software que es dar una
calificacin de la mtrica, multiplicado por un factor de calidad del software y finalmente realizar
una sumatoria de esto.
McCall lo puso en una escala de calificacin del cero al diez, en donde cero es baja calidad y
diez es alta calidad.
Aunque este mtodo es bastante flexible y puede adaptarse a cualquier entorno las mediciones
se basan en un criterio subjetivo.
La mtrica del punto de funcin (PF) se puede utilizar como medio para predecir el tamao de
un sistema obtenido a partir de un modelo de anlisis. Para visualizar esta mtrica se utiliza
un diagrama de flujo de datos, el cual se evaluar para determinar las siguientes medidas clave
que son necesarias para el clculo de la mtrica de punto de funcin:
Para el ejemplo descrito en la figura 9.2 se asume que la EFi es 46 (un producto
moderadamente complejo), por consiguiente:
PF = 50 x (0,65 + 0,01 x 46) = 56
Basndose en el valor previsto del PF obtenido del modelo de anlisis, el equipo del proyecto
puede estimar el tamao global de implementacin de las funciones de interaccin. Asuma
que los datos de los que se dispone indican que un PF supone 60 lneas de cdigo (se utilizar
un lenguaje orientado a objetos) y que en un esfuerzo de un mes-persona se producen 12 PF.
Estos datos histricos proporcionan al gestor del proyecto una importante informacin de
planificacin basada en el modelo de anlisis en lugar de estimaciones preliminares.
MTRICA BANG
Al igual que la mtrica de punto de funcin, la mtrica bang puede emplearse para desarrollar
una indicacin
del tamao del software a implementar como consecuencia del modelo de anlisis.
Las primitivas se determinan evaluando el modelo de anlisis y desarrollando cuentas para los
siguientes elementos:
Elementos de datos (ED). Los atributos de un objeto de datos, los elementos de datos son
datos no compuestos y aparecen en el diccionario de datos.
Adems de las seis primitivas apuntadas arriba, se determinan las cuentas adicionales para:
Primitivas modificadas de funcin manual (PMFu). Funciones que caen fuera del lmite del
sistema y que deben modificarse para acomodarse al nuevo sistema.
Elementos de datos de salida (EDS). Aquellos elementos de datos que se sacan del sistema.
Elementos de datos retenidos (EDR). Aquellos elementos de datos que son retenidos
(almacenados) por el sistema.
Muestras (tokens) de datos (TCi). Las muestras de datos (elementos de datos que no se
subdividen dentro de una primitiva funcional) que existen en el lmite de la i-sima
primitiva funcional (evaluada para cada primitiva).
Conexiones de relacin (REi). Las relaciones que conectan el i-simo objeto en el modelo
de datos con otros objetos.
DeMarco sugiere que la mayora del software se puede asignar a uno de los dos dominios
siguientes, dominio de funcin o dominio de datos, dependiendo de la relacin RE/PFu. Las
aplicaciones de dominio de
Como diferentes modelos de anlisis harn una particin del modelo con mayor o menor grado
de refinamiento. DeMarco sugiere que se emplee una cuenta media de muestra (token) por
primitiva
Teavg= DC,IPFu
para controlar la uniformidad de la particin a travs de muchos diferentes modelos dentro del
dominio de una aplicacin.
Para calcular la mtrica bang para aplicaciones de dominio de funcin, se emplea el siguiente
algoritmo:
FinMientras
FinMientras
El IOBC corregido se determina tambin de una tabla publicada por DeMarco. A continuacin
se muestra una versin abreviada:
Una vez que se ha calculado la mtrica bang, se puede emplear el historial anterior para
asociarla con el esfuerzo y el tamao. DeMarco sugiere que las organizaciones se construyan
sus propias versiones de tablas
Las mtricas de diseo para el software, como otras mtricas del software, no son perfectas.
Contina el debate sobre la eficacia y cmo deberan aplicarse. Muchos expertos argumentan
que se necesita ms experimentacin hasta que se puedan emplear las mtricas de diseo. Y
sin embargo, el diseo sin medicin es una alternativa inaceptable.
Mtricas del Cdigo Fuente
La teora de Halstead de la ciencia del software es probablemente la mejor conocida y ms
minuciosamente estudiada ... medidas compuestas de la complejidad (software). La ciencia
del software
La ciencia del software asigna leyes cuantitativas al desarrollo del software de computadora,
usando un conjunto de medidas primitivas que pueden obtenerse una vez que se ha generado
o estimado el cdigo despus de completar el diseo. Estas medidas se listan a continuacin.
Halstead usa las medidas primitivas para desarrollar expresiones para la longitud global del
programa; volumen mnimo potencial para un algoritmo; el volumen real (nmero de bits
requeridos para especificar un programa); el nivel del programa (una medida de la complejidad
del software); nivel del lenguaje (una constante para un lenguaje dado); y otras
caractersticas tales como esfuerzo de desarrollo, tiempo de desarrollo e incluso el nmero
esperado de fallos en el software.
Las mtricas basadas en la funcin pueden emplearse para predecir el esfuerzo global de las
pruebas. Se pueden juntar y correlacionar varias caractersticas a nivel de proyecto (por
ejemplo, esfuerzo y tiempo para las pruebas, errores descubiertos, nmero de casos de
prueba producidos) de proyectos anteriores con el nmero de PF producidos por un equipo del
proyecto. El equipo puede despus predecir los valores esperados de estas caractersticas
del proyecto actual.
La mtrica bang puede proporcionar una indicacin del nmero de casos de prueba necesarios
para examinar las medidas primitivas. El nmero de primitivas funcionales (PFu),
elementos de datos (DE), objetos (OB), relaciones (RE), estados (ES) y transiciones (TR)
pueden emplearse para predecir el nmero y tipos de prueba del software de caja negra y de
caja blanca. Por ejemplo, el nmero de pruebas asociadas con la interfaz hombre-mquina se
puede estimar examinando: (1) el nmero de transiciones (TR) contenidas en la
representacin estado-transicin del IHM y evaluando las pruebas requeridas para
ejecutar cada transicin, (2) el nmero de objetos de datos (OB) que se mueven a travs de la
interfaz y (3) el nmero de elementos de datos que se introducen o salen.
Las mtricas del diseo arquitectnico proporcionan informacin sobre la facilidad o dificultad
asociada con
Por esta razn, el analista debera invertir un esfuerzo extra para descubrir errores en el
mdulo antes de integrarlo en un sistema. Es esfuerzo de las pruebas tambin se puede
estimar usando mtricas obtenidas de medidas de Halstead. Usando la definicin del
volumen de un programa, V, y nivel de programa, NP, el esfuerzo de la ciencia del software,
e, puede calcularse como:
El porcentaje del esfuerzo global de pruebas a asignar a un mdulo k se puede estimar usando
la siguiente relacin:
A medida que se van haciendo las pruebas, tres medidas diferentes proporcionan una
indicacin de la complecin de las pruebas. Una medida de la amplitud de las pruebas
proporciona una indicacin de cuantos requisitos (del nmero total de ellos) se han probado.
Esto proporciona una indicacin de la complecin del plan de pruebas. La profundidad de las
pruebas es una medida del porcentaje de los caminos bsicos independientes probados en
relacin al nmero total de estos caminos en el programa. Se puede calcular una
estimacin razonablemente exacta del nmero de caminos bsicos sumando la complejidad
ciclomtica de todos los mdulos del programa. Finalmente, a medida que se van haciendo las
pruebas y se recogen los datos de los errores, se pueden emplear los perfiles de fallos para
dar prioridad y categorizar los errores descubiertos. La prioridad indica la severidad del
problema. Las categoras de los fallos proporcionan una descripcin de un error, de manera
que se puedan llevar a cabo anlisis estadsticos de errores.
El estndar EEE 982.1-1988 sugiere un ndice de madurez del software (IMS) que proporciona
una indicacin de la estabilidad de un producto software (basada en los cambios que ocurren
con cada versin del producto). Se determina la siguiente informacin:
Los casos de prueba quedarn determinados por los valores a asignar a las entradas en su
ejecucin El objetivo es disear casos de prueba que, sistemticamente, saquen a la luz
diferentes clases de errores, hacindolo con la menor cantidad de tiempo y de
esfuerzo.
Pruebas de caja blanca: Desarrollar pruebas de forma que se asegure que la operacin interna
se ajusta a las especificaciones, y que todos los componentes internos se han probado de
forma adecuada. El criterio de seleccin de casos de prueba buscar cierta cobertura caminos
independientes valores de las condiciones bucles dentro y fuera de sus lmites operacionales
estructuras de datos
los errores se esconden en los rincones y se acumulan en las fronteras Permiten detectar:
funcionamiento incorrecto o incompleto errores interface errores accesos estructuras de datos
externas problemas de rendimiento errores de inicio y terminacin
La prueba es un proceso de ejecucin de un programa con la intencin de descubrir un error.
Un buen caso de prueba es aquel que tiene una alta probabilidad de mostrar un error no
descubierto hasta entonces.
Las pruebas de caja blanca (tambin conocidas como pruebas de caja de cristal o pruebas
estructurales) se centran en los detalles procedimentales del software, por lo que su diseo
est fuertemente ligado al cdigo fuente. El testeador escoge distintos valores de entrada para
examinar cada uno de los posibles flujos de ejecucin del programa y cerciorarse de que se
devuelven los valores de salida adecuados.
En teora de sistemas y fsica, se denomina Caja Negra a aquel elemento que es estudiado
desde el punto de vista de las entradas que recibe y las salidas o respuestas que produce, sin
tener en cuenta su funcionamiento interno. En otras palabras, de una caja negra nos interesar
su forma de interactuar con el medio que le rodea (en ocasiones, otros elementos que tambin
podran ser cajas negras) entendiendo qu es lo que hace, pero sin dar importancia a cmo
lo hace. Por tanto, de una caja negra deben estar muy bien definidas sus entradas y salidas,
es decir, su interfaz; en cambio, no se precisa definir ni conocer los detalles internos de su
funcionamiento.
Particin Equivalente
La particin equivalente es un mtodo de prueba de caja negra que divide el campo de entrada
de un programa en clases de datos de los que se pueden derivar casos de prueba.. Un caso
de prueba ideal descubre de forma inmediata una clase de errores, que de otro modo
requeriran la ejecucin de muchos casos antes de detectar el error genrico.
El diseo de casos de preba para la particin equivalente se basa en una evaluacin de las
clases de equivalencia para una condicin de entrada. Una clase de equivalencia representa
un conjunto de estados vlidos o invlidos para condiciones de de entrada.
1. Si una condicin de entrada especifica un rango, se define una clase de equivalencia vlida
y dos invlidas
2. Si una condicin de entrada requiere un valor especfico, se define una clase de equivalencia
vlida y dos invlidas.
3. Si una condicin de entrada especifica un miembro de un conjunto, se define una clase de
equivalencia vlida y una invlida.
4. Si una condicin de entrada es lgica, se define una clase vlida y una invlida.
Los casos de prueba se seleccionan de manera que se ejercite el mayor nmero de atributos
de cada clase de equivalencia a la vez.
3. Aplicar las directrices 1 y 2 a las condiciones de salida. Por ej. supongamos que se requiere
una tabla como salida deun programa, entonces se deben disear casos de prueba que creen
un informe de salida que produzca el mximo ( y el mnimo) nmero permitido de entradas en
la tabla.
4. Si las estructuras de datos internas tienen lmites preestablecidos ( p. Ej. Un arreglo de 100
entradas) hay que asegurarse de disear un caso de prueba que ejercite la estructura de datos
en sus lmites.
Una estrategia de prueba del software integra las tcnicas de diseo de casos de prueba en
una serie de pasos bien planificados que dan como resultado una correcta construccin del
software. Y lo que es ms importante, una estrategia de prueba del software proporciona un
mapa a seguir para el responsable del desarrollo del software, a la organizacin de control de
calidad y al cliente: un mapa que describe los pasos que hay que llevar a cabo como parte de
la prueba, cundo se deben planificar y realizar esos pasos, y cunto esfuerzo, tiempo y
recursos se van a requerir. Por tanto, cualquier estrategia de prueba debe incorporar la
planificacin de la prueba, el diseo de casos de prueba, la ejecucin de las pruebas y la
agrupacin y evaluacin de los datos resultantes.
Una estrategia de prueba del software debe ser suficientemente flexible para promover la
creatividad y la adaptabilidad necesarias para adecuar la prueba a todos los grandes sistemas
basados en software. Al mismo tiempo, la estrategia debe ser suficientemente rgida para
promover un seguimiento razonable de la planificacin y la gestin a medida que progresa el
proyecto. Shooman trata estos puntos:
PRUEBA DE UNIDAD
La prueba de unidad centra el proceso de verificacin en la menor unidad del diseo del
software: el mdulo. Usando la descripcin del diseo procedimental como gua, se prueban
los caminos de control importantes, con el fin de descubrir errores dentro del lmite del mdulo.
La complejidad relativa de las pruebas y de los errores descubiertos est limitada por el alcance
estricto establecido por la prueba de unidad.
Las pruebas que se dan como parte de la prueba de unidad estn esquemticamente
ilustradas en la Figura 10.4. Se prueba la interfaz del mdulo para asegurar que la informacin
fluye de forma adecuada hacia y desde la unidad de programa que est siendo probada. Se
examinan las estructuras de datos locales para asegurar que los datos que se mantienen
temporalmente conservan su integridad durante todos los pasos de ejecucin del algoritmo.
Se prueban las condiciones lmite para asegurar que el mdulo funciona correctamente en los
lmites establecidos como restricciones de procesamiento. Se ejercitan todos los caminos
independientes (caminos bsicos) de la estructura de control con el fin de asegurar que todas
las sentencias del mdulo se ejecutan por lo menos una vez. Y, finalmente, se prueban todos
los caminos de manejo de errores.
Antes de iniciar cualquier otra prueba es preciso probar el flujo de datos de la interfaz del
mdulo. Si los datos no entran correctamente, todas las dems pruebas no tienen sentido.
Myers, en su libro sobre prueba del software, propone una lista de comprobaciones para la
prueba de interfaces:
Cuando un mdulo lleve a cabo E/S externa, se deben llevar a cabo pruebas de interfaz
adicionales. Nuevamente, de Myers:
1. Son correctos los atributos de los archivos?
2. Son correctas las sentencias ABRIR/CERRAR?
3. Coinciden las especificaciones de formato con las sentencias de E/S?
4. Coincide el tamao del buffer con el tamao del registro?
5. Se abren los archivos antes de usarlos?
6. Se tienen en cuenta las condiciones de fin-de-archivo?
7. Se manejan los errores de E/S?
8. Hay algn error textual en la informacin de salida?
Las estructuras de datos locales de cada mdulo son una fuente potencial de errores. Se deben
disear casos de prueba para descubrir errores de las siguientes categoras:
1. Tipificacin impropia o inconsistente.
2. Inicializacin o valores implcitos errneos.
3. Nombres de variables incorrectos (mal escritos o truncados).
4. Tipos de datos inconsistentes.
5. Excepciones de desbordamiento por arriba o por abajo, o de
direccionamiento.
Adems de las estructuras de datos locales, durante la prueba de unidad se debe comprobar
(en la medida de lo posible) el impacto de los datos globales sobre el mdulo.
Entre los errores ms comunes en los clculos estn: (1) precedencia aritmtica incorrecta o
mal interpretada; (2) operaciones de modo mezcladas; (3) inicializaciones incorrectas; (4) falta
de precisin; (5) incorrecta representacin simblica de una expresin. Las comparaciones y
el flujo de control estn fuertemente emparejadas (p. ej.: el flujo de control cambia
frecuentemente tras una comparacin).
Los casos de prueba deben descubrir errores como: (1) comparaciones ente tipos de datos
distintos; (2) operadores lgicos o de precedencia incorrectos; (3) igualdad esperada cuando
los errores de precisin la hacen poco probable; (4) variables o comparaciones incorrectas; (5)
terminacin de bucles inapropiada o inexistente; (6) fallo de salida cuando se encuentra una
iteracin divergente y (7) bucles que manejan variables modificadas de forma inapropiada.
Un buen diseo exige que las condiciones de error sean previstas de antemano y que se
dispongan unos caminos de manejo de errores que redirijan o terminen de una forma limpia el
proceso cuando se d un error. Yourdon llama a este
enfoque antipurgado. Desgraciadamente, existe una tendencia a incorporar la manipulacin
de errores en el software y as no probarlo nunca. Como ejemplo, sirve una historia real:
Entre los errores potenciales que se deben comprobar cuando se evala la manipulacin de
errores estn:
1. Descripcin ininteligible del error.
2. El error sealado no se corresponde con el error encontrado
3. La condicin de error hace que intervenga el sistema antes que el mecanismo
de manejo de errores
4. El proceso de la condicin excepcional es incorrecto
5. La descripcin del error no proporciona suficiente informacin para ayudar en
la localizacin de la causa del error.
PRUEBA DE INTEGRACIN
Un nefito del mundo del software podra, una vez que se les ha hecho la prueba de unidad a
todos los mdulos, cuestionar de forma aparentemente legtima lo siguiente: Si todos
funcionan bien por separado, por qu dudar de que funcionen todos juntos?. Por supuesto,
el problema es ponerlos juntos (interaccin). Los datos se pueden perder en una interfaz;
un mdulo puede tener un efecto adverso e inadvertido sobre otro; las subfunciones, cuando
se combinan, pueden no producir la funcin principal deseada; la imprecisin aceptada
individualmente puede crecer hasta niveles inaceptables; y las estructuras de datos globales
pueden presentar problemas; desgraciadamente, la lista sigue y sigue.
La prueba de integracin es una tcnica sistemtica para construir la estructura del programa
mientras que, al mismo tiempo, se llevan a cabo pruebas para detectar errores asociados con
la interaccin. El objetivo es coger los mdulos probados en unidad y construir una estructura
de programa que est de acuerdo con lo que dicta el diseo.
A menudo hay una tendencia a intentar una integracin no incremental; es decir, a construir el
programa mediante un enfoque de big bang. Se combinan todos los mdulos por anticipado.
Se prueba todo el programa en conjunto. Normalmente se llega al caos! Se encuentra un gran
conjunto de errores. La correccin se hace difcil, puesto que es complicado aislar las causas
al tener delante el programa entero en toda su extensin. Una vez que se corrigen esos errores
aparecen otros nuevos y el proceso contina en lo que parece ser un ciclo sin fin.
Integracin ascendente
3. Se prueba el grupo.
La integracin sigue el esquema ilustrado en la Figura 8. Se combinan los mdulos para formar
los grupos 1, 2 y 3. Cada uno de los grupos se somete a prueba mediante un controlador
(mostrado como un bloque punteado). Los mdulos de los grupos 1 y 2 son subordinados de
Ma. Los controladores D1 y D2 se eliminan y los grupos interaccionan directamente con Ma. De
forma similar, se elimina el controlador D3 del grupo 3 antes de la integracin con el mdulo
Mb Tanto Ma como Mb se integrarn finalmente con el mdulo Mc y as sucesivamente. En la
Figura 9 se muestran diferentes categoras de controladores.
Integracin descendente
El proceso contina desde el paso 2 hasta que se haya construido la estructura del programa
entero.
El primer enfoque (retrasar pruebas hasta reemplazar los resguardos por los mdulos reales)
hace que perdamos cierto control sobre la correspondencia de ciertas pruebas especficas con
la incorporacin de determinados mdulos. Esto puede dificultar la determinacin de las
causas del error y tiende a violar la naturaleza altamente restrictiva del enfoque descendente.
El segundo enfoque es factible pero puede llevar a un significativo incremento del esfuerzo a
medida que los resguardos se hagan ms complejos. El tercer enfoque, denominado prueba
ascendente, se estudia a continuacin.
PRUEBA DE VALIDACIN
Prueba de recuperacin
En otros casos, se debe corregir un fallo del sistema en un determinado periodo de tiempo
para que no se produzca un serio dao econmico.
La prueba de recuperacin es una prueba del sistema que fuerza el fallo del software de
muchas formas y verifica que la recuperacin se lleva a cabo apropiadamente. Si la
recuperacin es automtica (llevada a cabo por el propio sistema) hay que evaluar la
correccin de la inicializacin, de los mecanismos de recuperacin del estado del sistema, de
la recuperacin de datos y del proceso rearranque. Si la recuperacin requiere la intervencin
humana, hay que evaluar los tiempos medios de reparacin para determinar si estn dentro
de unos lmites aceptables.
Prueba de seguridad
Cualquier sistema basado en computadora que maneje informacin sensible o lleve a cabo
acciones que puedan perjudicar (o beneficiar) impropiamente a las personas es un posible
objetivo para entradas al sistema impropias o ilegales. Este acceso al sistema incluye un
amplio rango de actividades: piratas informticos que intentan entrar en los sistemas por
deporte, empleados disgustados que intentan penetrar por venganza e individuos deshonestos
que intentan penetrar para obtener ganancias personales ilcitas.
Con tiempo y recursos suficientes, una buena prueba de seguridad terminar por acceder en
el sistema. El papel del diseador del sistema es hacer que el coste de la entrada ilegal sea
mayor que el valor de la informacin obtenida.
Prueba de resistencia
Las pruebas de resistencia estn diseadas para enfrentar a los programas con situaciones
anormales. En esencia, el sujeto que realiza la prueba de resistencia se pregunta: A qu
potencia puedo ponerlo a funcionar antes de que falle?
Prueba de rendimiento
Las pruebas de rendimiento, a menudo, van emparejadas con las pruebas de resistencia y,
frecuentemente, requieren instrumentacin tanto de software como de hardware. Es decir,
muchas veces es necesario medir la utilizacin de recursos (p. ej.: ciclos de procesador), de
un modo exacto. La instrumentacin externa puede monitorizar los intervalos de ejecucin, los
sucesos ocurridos (p. ej.: interrupciones) y muestras de los estados de la mquina en un
funcionamiento normal. Instrumentando un sistema, el encargado de la prueba puede
descubrir situaciones que lleven a degradaciones y posibles fallos del sistema.
EL ARTE DE LA DEPURACIN
La prueba del software es un proceso que puede planificarse y especificarse sistemticamente.
Se puede llevar a cabo el diseo de casos de prueba, se puede definir una estrategia y se
pueden evaluar los resultados en comparacin con las expectativas prescritas.
La depuracin ocurre como consecuencia de una prueba efectiva. Es decir, cuando un caso
de prueba descubre un error, la depuracin es el proceso que provoca la eliminacin del error.
Aunque la depuracin puede y debe ser un proceso ordenado, sigue teniendo mucho de arte.
Un ingeniero del software, al evaluar los resultados de una prueba, se encuentra
frecuentemente con una indicacin sintomtica de un problema en el software. Es decir, la
manifestacin externa de un error, y la causa interna del error pueden no estar relacionados
de una forma obvia. El proceso mental, apenas comprendido, que conecta un sntoma con una
causa es la depuracin.
El proceso de depuracin
La depuracin no es una prueba, pero siempre ocurre como consecuencia de la prueba. Como
se muestra en la Figura 10.9, el proceso de depuracin comienza con la ejecucin de un caso
de prueba. Se evalan los resultados y aparece una falta de correspondencia entre los
esperados y los encontrados realmente. En muchos casos, los datos que no concuerdan son
un sntoma de una causa subyacente que todava permanece oculta. El proceso de depuracin
intenta hacer corresponder el sntoma con una causa, llevando as a la correccin del error.
El proceso de depuracin siempre tiene uno de los dos resultados siguientes: (1) se encuentra
la causa, se corrige y se elimina; o (2) no se encuentra la causa. En este ltimo caso, la persona
que realiza la depuracin debe sospechar la causa, disear un caso de prueba que ayude a
confirmar sus sospechas y el trabajo vuelve hacia atrs a la correccin del error de una forma
iterativa.
Por qu es tan difcil la depuracin? Todo parece indicar que la respuesta tiene ms que ver
con la psicologa humana que con la tecnologa del software. Sin embargo, varias
caractersticas de los errores nos dan algunas pistas:
Las pruebas de software (en ingls software testing) son las investigaciones empricas y
tcnicas cuyo objetivo es proporcionar informacin objetiva e independiente sobre la calidad
del producto a la parte interesada o stakeholder. Es una actividad ms en el proceso de control
de calidad.
Las pruebas son bsicamente un conjunto de actividades dentro del desarrollo de software.
Dependiendo del tipo de pruebas, estas actividades podrn ser implementadas en cualquier
momento de dicho proceso de desarrollo. Existen distintos modelos de desarrollo de software,
as como modelos de pruebas. A cada uno corresponde un nivel distinto de involucramiento
en las actividades de desarrollo.