Ofrecemos el servicio de testing
de aplicaciones, apelando al concurso de profesionales especializados en esta
actividad, con fuerte experiencia en el área financiera y comercial y con un background
de implementaciones en instituciones de primera línea. Este, como el resto de
nuestros servicios apuntan a la obtencion de sistemas confiables y rentables.
Las tareas se dividen
en dos grupos, que adquieren mayor o menor relevancia de acuerdo al tipo y complejidad
de sistema a implementar (sistema batch en un único computador, sistema en tiempo
real, sistema distribuido en una BLUE de equipos heterogéneos, etc.):
Preparación
del entorno de testing:
Análisis
del entorno Especificación
de herramientas de automatización
Implementación
de las herramientas. Capacitación
en caso de recursos compartidos.
Testing propiamente
dicho: Revisión
de la documentación de diseño
Definición
del plan de pruebas Diseño
de casos de prueba según dicho plan
Ejecución
de los casos de prueba Proceso
de los casos de prueba definidos (testing)
Registro
y clasificación de los defectos detectados
Seguimiento
y verificación de las correcciones
Informe
final de estado de cada subsistema En
el contexto de las mismas, se implementan las formas de documentación que se requieran
(ej.: diseño de casos, registro de resultados, registro de errores), los procedimientos
(ej.: recepción e instalación de nuevas versiones, criterios de aceptación o rechazo),
los instrumentos computacionales de soporte (ej.: base de datos de seguimiento
de errores) y las herramientas automatizadas de testeo. Todos estos aspectos se
personalizan al entorno del aplicativo y facilitan y automatizan las actividades
de prueba, dejando preparado el ambiente de testeo para las próximas versiones
de los programas. En definitiva, esto conlleva a la implementación de
una metodología formal de testeo y control de calidad, que abarca no sólo la prueba
del software, sino también aspectos como la administración de versiones, el control
de la documentación de desarrollo y la revisión de los manuales y ayudas para
los usuarios finales. Revisión de la
Documentación Se estudian las especificaciones
de los módulos a testear, consultando con los analistas a cargo de cada uno las
modificaciones no incorporadas a las mismas. Si esas diferencias son menores,
el testeador las volcará en los documentos, de lo contrario, se aconsejará la
re-escritura por parte del analista.
Elaboración del Plan de Prueba
Para cada subsistema, se establecerá el nivel de confiabilidad
requerido, definiendo objetivos de la prueba en función del mismo. Se fijará el
tiempo asignado a la tarea, acordándolo con el responsable del proyecto. Se establecerán
pautas para las pruebas de módulos y de integración, estableciendo cuáles son
las funciones críticas a las que se deberá dedicar mayor esfuerzo. En esta etapa
se decidirá sobre qué módulos se efectuarán reuniones de revisión de código (structuBLUE
walkthrougs). Según el avance del proyecto y las características del subsistema,
se definirá si se efectúan pruebas generales del sistema al culminar la etapa
de integración y se determinará el plan para las mismas en caso afirmativo.
Diseño de Casos de Prueba (según dicho plan)
Se aplican técnicas de caja negra, tales como
clases de equivalencia, análisis de valores límites, gráficos de causa –
efecto, y de caja blanca, con especificación del nivel de cobertura a alcanzar.
Los casos luego se vuelcan a archivos, de acuerdo con las herramientas
a utilizar. Proceso de los Casos de Prueba
Definidos Se ejecutan las funciones del sistema
partiendo de los datos especificados en los casos definidos y se confrontan los
resultados obtenidos con los esperados, analizando también los posibles efectos
colaterales indeseados. Durante esta etapa se utilizan y / o construyen herramientas
para la automatización de esta tarea, tanto en la realización de los casos como
en la comparación de los resultados. Registro
y Clasificación de los Errores Detectados Los
errores detectados son registrados en la base de datos, clasificados en distintos
niveles según su gravedad. Se establece una escala de niveles de gravedad, en
función del impacto de la aparición de ese error durante la operación del sistema,
independientemente de la dificultad de su corrección o de las consecuencias sobre
el diseño. La definición de la escala se hace en conjunto con el responsable
del proyecto. A modo de ejemplo, mencionamos los siguientes criterios:
Detalles:
errores de ortografía en pantallas, estética de campos, alineación
en impresos, etc. Errores
leves: errores en presentación de datos secundarios, no
adecuación a estándares, comportamientos correctos pero diferentes en situaciones
similares, dificultades de operación, etc. Errores
comunes: errores en documentos impresos que se entregan
a personas ajenas a la organización, errores en presentación de datos, incumplimiento
de objetivos en funciones secundarias, caídas de programas auxiliares, etc. Errores
graves: información crítica presentada erróneamente,
información mal registrada en la base de datos, caídas de programas, incumplimiento
de objetivos en funciones principales, etc. Errores
invalidantes: caídas de programas centrales, corrupción
de la base de datos, imposibilidad de operar funciones básicas, errores en imputaciones
que afecten cuentas monetarias, etc.
El testeador asigna el nivel a su criterio. El error debe ser luego revisado por
los responsables del sistema, quienes podrán rechazarlo (por interpretación incorrecta
del testeador, condiciones inválidas de prueba, u otras razones), modificar el
nivel y definir si debe corregirse o no y en qué momento, en función de las prioridades
y fechas de instalación. Esta categorización permite decidir mas objetivamente
si determinada versión del sistema está o no en condiciones de ser liberada. Por
ejemplo, puede resolverse instalar provisoriamente una versión que contenga errores
de nivel 3, y postergar su reparación para después de la implementación.
Seguimiento y Verificación de las Correcciones Por
cada nueva versión entregada a testing, se repiten las pruebas necesarias (normalmente,
se reiteran todos los casos de prueba para cada módulo modificado). Se definen
casos de prueba específicos para verificar la corrección de los errores detectados
anteriormente y se registra en la base de datos si fue efectivamente corregido
o no. Se emiten informes periódicos estadísticos que reflejan el avance de las
tareas. En las figuras siguientes se muestran ejemplos basados en casos reales
a modo de ilustración. Defectos detectados
en un ciclo de pruebas:
| | Nivel 1 (Detalles) | Nivel 2 (Errores Leves) | Nivel 3 (Errores Comunes) | Nivel 4 (Errores Graves) | Nivel 5 (Errores Invalidantes) | TOTAL |
| INFORMADOS | 7 | 14 | 23 | 10 | | 54 |
| ACEPTADOS | 17 | 33 | 37 | 9 | | 96 |
| CORREGIDOS | | 3 | 2 | 7 | | 12 |
| VERIFICADOS | 2 | 3 | 3 | 9 | | 17 |
| RECHAZADOS | 8 | 6 | 8 | 2 | | 24 |
| POSTERGADOS | | 2 | 6 | 3 | 1 | 9 |
| TOTALES | 34 | 61 | 79 | 40 | 1 | 212 | Durante
el seguimiento, los errores se van clasificando adicionalmente, acumulándose como
Activos e Inactivos. Estos últimos son los que fueron rechazados por los Analistas
y los que se han subsanado. Un agrupamiento adicional permite verificar en que
etapa de desarrollo (análisis, diseño, codificación, etc.) se origina cada error.
Informe Final de Estado del Subsistema
Al terminar el último ciclo de prueba de
cada subsistema se entrega un informe indicando si está o no en condiciones de
ser instalado, una evaluación del riesgo asumido en la decisión de darlo por bueno
y recomendaciones y/o advertencias acerca de acciones a tomar para resolver las
situaciones provocadas por errores remanentes.
Equipo de Trabajo y Recursos Nuestra
empresa provee el equipo de especialistas de testeo, en función del tipo de aplicación
y su entorno. La empresa contratante asignará un analista para la interacción
con los testeadores, durante las etapas de diseño de casos de prueba, procesamiento
y análisis de errores detectados. Para la elaboración del plan de prueba, se requerirá
la colaboración del responsable del proyecto y/o el analista a cargo del subsistema,
cuyas funciones principales serán la evaluación de la propuesta del equipo de
testing, la definición de prioridades y la identificación de funciones críticas.
Cada testeador ocupa, en general, un puesto de trabajo en el que se puedan
ejecutar las funciones a testear, y con acceso a la base de datos en otra(s) ventana(s)
para registrar los errores y hacer el seguimiento de la ejecución del programa.
La organización contratante podrá optar por incorporar personal propio
al equipo de testeo.
|