|
CONSIDERACIONES
ADICIONALES
De
acuerdo a la experiencia de AVATAR, en la
industria nacional se carece mucho de los
siguientes dos factores críticos de éxito
en el proceso de desarrollo de software
(independientemente de la tecnología que
se utilice): La Gestión de la Calidad y
la Disciplina de Pruebas de Software.
Gestión de la Calidad
La gestión de la calidad es responsabilidad
de todos los miembros del proyecto y de
la empresa, y se lleva a cabo en cada una
de las actividades que se emprenden. La
gestión de la calidad se enfoca principalmente
en el proceso de desarrollo de software,
como garantía de un adecuado producto. Adicionalmente
a las tareas internas de control, resaltamos
a continuación aquellas tareas que se llevan
a cabo con la participación de un Analista
del área de Calidad de Avatar
Tareas de Prevención
ü Prevención
contra Entregables no adecuados para el
Proyecto.- El Analista de Calidad revisa
la estructura y el tipo de contenido de
cada entregable con los miembros del proyecto
involucrados en su elaboración. Resultado
de esta tarea se revisa y complementa la
Lista de Verificación (checklist).
ü Prevención
contra Entregables poco claros para el Cliente.-
El Jefe de Proyecto envía una copia de ejemplo
de cada entregable con la intención de mostrarle
un mayor detalle a lo descrito en la propuesta,
y confirmar su aprobación respecto a la
estructura y el tipo de contenido. Resultado
de esta tarea se oficializa la Lista de
Verificación (checklist).
Tareas de Control
ü Control
de un adecuado seguimiento del avance del
proyecto.- El Analista de Calidad revisa
la documentación de seguimiento del avance
del proyecto (carta gantt, reporte de estado,
reporte de pendientes, actas de reunión),
visita el ambiente de trabajo periódicamente
y conversa con los miembros del proyecto,
con la finalidad de:
- Verificar que la documentación de seguimiento
señale, de manera explícita, entregables,
plazos y responsables.
- Verificar que se estén cumpliendo los
plazos del proyecto y el alcance establecido
por cada entregable.
- Verificar que el proceso de desarrollo
de software sea fluido y no se generen desperdicios
o retrabados.
ü Control
de la Lista de Verificación por Entregable.-
El Analista de Calidad acompaña al Jefe
de Proyecto en la tarea de revisar la Lista
de Verificación contra un Entregable, desde
el inicio de su elaboración hasta antes
de la entrega al cliente.
Disciplina de Pruebas de Software
Esta disciplina complementa a la gestión
de la calidad, toda vez que tiene como propósito
principal el aseguramiento y el control
de la calidad del producto final, el software.
Las actividades de esta disciplina se llevan
a cabo a lo largo de las cuatro fases, sin
embargo consideramos crítico establecer
con el Cliente el alcance de las pruebas
necesarias para cada proyecto, por lo que
a continuación exponemos brevemente las
principales formas como se puede probar
un sistema, cada una de las cuales tiene
un objetivo específico y una técnica que
lo soporta.
ü Prueba
de Estructura Web.- Es el tipo de prueba
que se enfoca en certificar que todos los
enlaces del sitio web estén conectados a
la página web que le corresponde, y que
no hay contenido que no pueda ser consultado
de ninguna manera (contenido huérfano).
ü Prueba
de Funcionalidad.- Es el tipo de prueba
que se enfoca en certificar que el funcionamiento
del sistema esté acorde a lo descrito en
el documento de especificaciones funcionales,
esto es que provea los casos de uso que
ahí se indican, y de la manera como ahí
se especifica.
ü Prueba
de Seguridad Funcional.- Es el tipo
de prueba que se enfoca en certificar que
los datos y las funciones del sistema solo
son accesibles por los actores debidamente
autorizados, acorde a lo descrito en el
documento de especificaciones funcionales.
ü Prueba
de Volumen Funcional.- Es el tipo de
prueba que se enfoca en certificar la capacidad
del sistema de manejar volúmenes de datos
extremos, acorde a lo descrito en el documento
de especificaciones funcionales.
ü Prueba
de Robustez.- Es el tipo de prueba que
se enfoca en certificar la capacidad de
resistencia a fallar que tiene el sistema,
acorde a lo descrito en el documento de
especificaciones técnicas.
ü Prueba
de Estructura de Programas.- Es el tipo
de prueba que se enfoca en comprobar que
los programas han sido codificados de acuerdo
a los estándares de programación establecidos.
ü Prueba
de Resistencia (Stress).- Es el tipo
de prueba que se enfoca en comprobar cuál
es el comportamiento del sistema bajo condiciones
anormales, por ejemplo carencia de recursos
de memoria, procesador, sistemas externos
con los que interactúa y carga excesiva
de trabajo. El objetivo de estas pruebas
es identificar las partes débiles del sistema,
de modo que se puedan establecer los planes
de contingencia adecuados y se puedan presupuestar
los planes de adquisición correspondientes.
ü Prueba
de Concurrencia.- Es el tipo de prueba
que se enfoca en certificar la capacidad
del sistema de atender múltiples solicitudes
departe de los actores que acceden a un
mismo recurso (un dato que esté almacenado
en memoria, un conjunto de registros en
base de datos o una interfaz con un dispositivo
de hardware o un sistema externo). Este
tipo de pruebas también reciben el nombre
de pruebas de contención.
ü Prueba
de Rendimiento.- Es el tipo de prueba
que se enfoca en comprobar los tiempos de
respuesta del sistema en una cantidad limitada
de escenarios de trabajo (a nivel de número
de usuarios y número de transacciones),
bajo una configuración de hardware y software
constante. Este tipo de pruebas también
reciben el nombre de pruebas de carga. Los
resultados de este tipo de pruebas permitirán
establecer los planes de contingencia apropiados
y presupuestar los planes de adquisición
necesarios.
ü Prueba
de Instalación.- Es el tipo de prueba
que se enfoca en certificar que el sistema
está operativo y listo para ser utilizado
después de ser instalado sobre la configuración
de hardware y software establecida en el
manual de instalación.
ü Prueba
de Vulnerabilidad.- Es el tipo de prueba
que se enfoca en comprobar las vulnerabilidades
del entorno de comunicaciones donde el sistema
va a funcionar (la red), con la finalidad
de establecer los planes de contingencia
adecuados y de presupuestar los planes de
adquisición correspondientes.
|