El documento proporciona información sobre pruebas y mantenimiento de sistemas. Explica que las pruebas de sistemas buscan encontrar errores ejecutando o validando el sistema. Describe métodos como caja negra, caja de cristal, de abajo hacia arriba y de arriba hacia abajo. También cubre tipos de pruebas, casos de prueba, depuración, implantación de sistemas e incluye información sobre adiestramiento de usuarios y tipos de mantenimiento de sistemas.
2. Prueba de Sistemas
Probar un sistema es el proceso de
ejecutarlo o validarlo con el fin de encontrar
errores. El objetivo de una prueba es
detectar problemas y errores.
Consideraciones importantes acerca
de la prueba de
sistemas
• Es difícil saber cuando uno debe terminar el proceso
de prueba.
• La prueba debe ser hecha con perversidad y ganas de
destruir, por lo que, el sistema debe ser probado por
alguien diferente al programador.
• Debe evitarse la prueba espontánea, ya que si se
encontrase algún error sería difícil localizar su origen.
• Los resultados de cada prueba deben ser revisados a
fondo.
• Si en un sistema se han encontrado muchos errores es
probable que hayan otros errores que aún no han sido
detectados.
Estrategias de pruebas
Existen dos estrategias opuestas para encarar las pruebas
de software:
1.Caja Negra: Probar que se cumplan las especificaciones
sin hacer caso alguno al código interno de los programas.
2.Caja de Cristal: Probar cada rutina y cada instrucción sin
tomar en cuenta las especificaciones.
3. Métodos de prueba
Existen tres métodos básicos para probar sistemas:
De Abajo hacia Arriba (Bottom-
Up): En este método se comienza
probando individualmente cada
módulo del nivel inferior (que no
invocan a otros módulos). Una vez
que estos módulos han sido
probados, se añaden los módulos
que los invocan y así
sucesivamente hasta incluir el
módulo principal o de más alto
nivel.
De Arriba hacia Abajo (Top-Down):
En este método el único que se prueba
individualmente es el módulo principal.
A este se le van añadiendo los módulos
que invoca, uno por uno, hasta que
cada combinación de ellos haya sido
probada parcial o totalmente. En forma
análoga, los módulos de los siguientes
niveles van siendo añadidos hasta
completar todo el programa.
Prueba Total: Se le llama
“usando fuerza bruta” y permite
probar programas de poca
complejidad o complementar la
prueba de los módulos,
ahorrándose la construcción de
Drivers o Stub.
4. Tipos de Prueba
Pruebas Dinámicas: son aquellas
que implican ejecución de los
programas y puede adoptar
cualquiera de los métodos y
estrategias descritas
anteriormente.
Pruebas Estáticas: son aquellas
que centran su atención en la
estructura de los programas o en
su lógica, no en los resultados
Clases de Prueba
1- prueba unitaria
2- prueba de integración
3- prueba funcional
4- prueba de sistema
5- prueba de aceptación técnica
6- prueba de aceptación funcional
7- prueba de instalaciónCasos de Prueba
Son un conjunto de situaciones o condiciones
ante las cuales un programa debe responder
satisfactoriamente para que pueda afirmarse que
cumple con sus especificaciones u objetivos.
5. Características de los casos de prueba
• Un buen caso de prueba es el
que tiene alta probabilidades
de detectar errores, no el que
simplemente demuestra que
los programas funcionan.
• Al preparar un caso de prueba
deben ser especificados los
resultados que se esperan.
• Deben ser preparados tanto
para condiciones válidas como
inválidas.
Datos de prueba
Grupo de valores que se asignarán a
cada uno de los casos formulados, de
acuerdo a los rangos o condiciones
que cada uno de ellos tipifique; y
normalmente serán los registros
requeridos en la base de datos de
entrada al programa que se prueba.
Proceso de Conversión
Es el proceso mediante el cual
se realiza el cambio del sistema
actual al sistema nuevo. Incluye
los métodos para llevarla a
cabo y la verificación de que la
conversión se haya efectuado
correctamente.
6. Tipos o Métodos
de Conversión
1. Conversión en paralelo
2. Conversión directa
3. Conversión piloto
4. Conversión por etapas
Depuración del Sistema
Cuando un caso de prueba descubre un
error, la depuración es el proceso que
resulta en la eliminación del error.
Características de los errores
El síntoma y la causa pueden estar localizados
remotamente. El síntoma puede aparecer en una
parte del programa, mientras que la causa está en
otra parte muy alejada.
El síntoma puede desaparecer (temporalmente) al
corregir otro error.
El síntoma puede realmente estar producido por
algo que no es un error (Ej.: Inexactitud de
redondeos)
El síntoma puede ser resultado de problemas de tiempo
en lugar de problemas de
procesamiento.
El síntoma puede estar causado por un error humano
que no sea fácilmente detectado.
Puede ser difícil reproducir de forma precisa las
condiciones de entrada.
El síntoma puede aparecer en forma intermitente.
7. Enfoque de la depuración
El objetivo de la depuración es encontrar
y corregir la causa de un error en el
software. Existen tres enfoques:
1. Fuerza Bruta: “Dejar que la computadora encuentre el error”; se
confía que en algún lugar de la gran cantidad de información
generada encontremos la causa del error. Este enfoque es el
más común y el menos eficiente.
2. Vuelta Atrás: Partiendo del lugar donde se descubre el síntoma
se recorre hacia atrás (manualmente) el código fuente hasta que
se llega a la posición del error. Este enfoque se puede usar con
éxito para programas pequeños.
3. Eliminación de la causa: Los datos relacionados con la
ocurrencia del error son organizados para aislar las posibles
causas. Se llega a una hipótesis de causa y se usan los datos
anteriores para probar o revocar la hipótesis. Alternativamente,
se desarrolla una lista de todas las posibles causas y se llevan a
cabo pruebas para eliminar cada una
Debugging
Significa identificar un error cuyos
síntomas han sido detectados
durante la ejecución de un
programa.
8. Pasos del Debugging:
1. Entender el problema.
2. Establecer la hipótesis.
3. Comprobar la hipótesis.
4. Corregir el error.
Métodos del Debugging:
1. Por Fuerza Bruta: consiste en “Mirar sin meditar”
información acerca del comportamiento de un
programa, para tratar de encontrar alguna pista que
revele la causa del problema.
2. Inductivo: consiste en organizar y analizar todos los
hechos correspondientes a un error con el fin de
establecer las interrelaciones y los aspectos comunes
que permitan acotarlo.
3. Deductivo: comienza con la elaboración de una lista
de todas las causas posibles(hipótesis), para
analizarlas, con el fin de corroborar o descartar las
diferentes hipótesis.
Implantación de Sistemas
La implantación incluye todas aquellas
actividades que tienen lugar para convertir del
sistema que se está utilizando actualmente
(manual o automatizado) al nuevo sistema. El
nuevo sistema puede ser un sistema
totalmente nuevo o puede ser una
modificación importante del mismo
(upgrade).
9. Fases de la implantación
1. Preparar el plan de pruebas
2. Preparar el plan de adiestramiento de los usuarios
3. Preparar el plan de conversión e instalación del sistema
4. Integrar planes de trabajo para el sistema
5. Coordinar la instalación de facilidades para los usuarios
6. Realizar la prueba funcional
7. Realizar la prueba del sistema
8. Realizar la prueba de integración
9. Integrar la documentación del sistema
10. Ensamblar los instructivos
11. Realizar pruebas de aceptación técnica
12. Negociar los niveles de servicios
13. Adiestrar a los usuarios
14. Migrar los componentes al ambiente de operaciones
15. Realizar el proceso de conversión
16. Realizar al proceso de prueba de aceptación
Adiestramiento a Usuarios
La calidad de capacitación recibida por el personal relacionado con el
sistema ayuda o puede llegar a impedir la implantación exitosa de un
sistema de información, por esto es necesario que tanto los
operadores como los usuarios del sistema reciban capacitación.
Métodos de Capacitación
• Capacitación por el proveedor: Es una
capacitación directa y es dictada por la
empresa o persona que desarrolló o
comercializa el sistema.
• Capacitación en casa: Se ofrece la
capacitación en la misma empresa.
También se puede ofrecer por medio de
material instruccional.
10. Mantenimiento de Sistemas
Es la tarea de modificar, corregir o
mejorar los sistemas existentes.
Una vez que el sistema pasa a formar parte
de la vida diaria de la empresa cada
programa, procedimiento y estructura de
datos pasa a ser una pieza del negocio que
como tal debe funcionar en forma constante,
exacta y confiable, por esta razón una vez
que el sistema entra en operación se hace
necesario mantenerlo para ajustar las
funciones que puedan requerir cambios o
para corregir errores que se le hallan pasado
por alto al desarrollador y mejorarlo para
apoyar de mejor manera los objetivos
estratégicos de la empresa.
Tipos de Mantenimiento
Correctivo: Es aquel que se ocupa de la reparación una vez
que se ha producido un fallo o el paro súbito de la máquina
o del sistema.
Preventivo: Surge de la necesidad de rebajar el correctivo y
todo lo que representa. Pretende reducir la reparación
mediante una rutina de inspecciones periódicas y la
renovación de los elementos averiados.
Predictivo: Se basa en predecir la avería antes de que esta
se produzca, se trata de adelantarse a la avería antes de que
esta se produzca o al momento en que el sistema deja de
trabajar en condiciones óptimas.
Perfectivo: Es aquel que se basa en la adición de nuevas
funciones o mejoras al sistema.
Adaptivo: Es aquel que consiste en la modificación de
algunas funciones o módulos para adaptar al sistema a
cambios producidos en su entorno.